Kubernetes/설치

Kubernetes 설치 - 온프레미스 환경 2

amelia-suyeon 2023. 6. 7. 21:28

그 전의 게시물과 같이, docker를 성공적으로 설치했다면, 다음으로는 kubernetes를 본격적으로 설치!

아래의 명령어만 잘 복사 붙이기만 한다면...! 어렵지 않을 것임. 하지만, 의문이 가거나, 버전이 바뀐 것을 염두한다면, kubernetes 공식 홈페이지를 보는 것이 Best! 특히, Document 보는 습관을 가진다면, 오류나 그 외 얻을 것이 많을것! 

 

지금 현재 시작하려고 하는 것들은 -> https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 여기에 존재하며, 꾸준히 방문 할 것! (나에게 하는 말)

 

이제부터 시작! 

 

1. docker 설치된 virtualbox에서 master, node1,node2를 켜고 root 계정으로 로그인 한다.

이때 ubuntu가 console(콘솔)/text 모드가 아닐 경우, 변경이 필요하다

(명령어 : sudo systemctl set-default multi-user.target) -> 콘솔 모드로 변환 

참고 url : https://oysu.tistory.com/97

 

Ubuntu 우분투 콘솔(텍스트모드), GUI(그래픽모드) 전환

Console/Text 전환은 터미널에 다음과 같이 입력하고 재부팅하면 적용된다. Console/Text(콘솔/텍스트) 모드 $ sudo systemctl set-default multi-user.target Graphic(그래픽) 모드 모드 $ sudo systemctl set-default graphical.tar

oysu.tistory.com

 

2. 3대 다 로그인 했다면, mobaxterm 으로 돌아와서 마찬가지로 root 암호 입력 후, su - 계정으로 들어간다.

 

3. 로그인 했다면,  이제 환경 설정을 한다. 아래의 명려어를 한줄 씩 잘 입력할 것 (복사 추천) 

$ swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab

cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF

$ sysctl --system

$ systemctl stop firewalld

$ systemctl disable firewalld

 

# firewalld 같은 경우 방화벽 해제 때문! 

 

4.이제 본격적으로 kubeadm, kubectl, kublet 을 설치 하자! 

 

$ apt-get update

$ apt-get install -y apt-transport-https ca-certificates curl

$ curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

$ apt-get update

$ apt-get install -y kubelet kubeadm kubectl

$ apt-mark hold kubelet kubeadm kubectl

$ systemctl start kubelet

$ systemctl enable kubelet

 

5. 설치가 완료 되었다면 master(즉 control-plane을) 구성하자 

즉, master 에서만 해야하는 것들이 있다!

$ kubeadm init 

이때, init을 했다면, kubeadm join ~~~ 이런식으로 token이 발행됨

이 token을 저장하기 위해서 

$ cat > token.txt 

이후, kubeadm join ~ 부터 끝까지를 복사하여, vi 편집기를 통해 붙여넣고 저장함! ( wq! 필수 ) 

-> 여기서 가끔 node1, node2에 kubeadm join ~ token을 붙였지만 오류가 나는 경우가 있다.. 필자도 이 부분 때문에 조금 힘들었다... 이 부분은 여기를 참고 할 것 ! 

https://amelia-suyeon.tistory.com/22

 

kubernetes , kubeadm join 오류 2

 

amelia-suyeon.tistory.com

 

그리고 대망의 kubectl get nodes를 했지만 node1, node2가 notReady로 연결이 되지 않는 경우,,,, 이 경우 필자는 삽질을 통해 고쳤다...! 이 부분도 추가! 

https://amelia-suyeon.tistory.com/13

 

kubeadm join 오류 ([preflight] If you know what you are doing, you can make a check non-fatal with --ignore-pref

 

amelia-suyeon.tistory.com

 

이렇게 하여 kubectl get nodes를 하였을때, master, node1, node2가 Ready가 되었다면 초기 설정 끝!!

처음 시작 하는 사람들에게 재미있기를 바라며! 

본격적으로 kubectl 을 사용하는 방법으로 돌아오겠습니당!