반응형

 

앞서 Synology VM에 Master Node를 만들었다.

기본적으로는  MasterNode에서는 실제적인 Docker 컨테이너를 제공하지 않는다. (설정을 한다면 Master Node도 컨테이너 사용 가능)

 

애초에 VM의 환경인 만큼 Master Node는 단순 Master 역할에만 집중하게 하고

이 Node에 연결할 Slave 구성을 다음과 같이 진행했다.

 

# Master와 과정이 동일하다. 보기 편하게 하기 위해 내용을 복붙함.


# 기존 설치된 docker가 없으면 아래 명령어는 생략해도 됨
sudo apt-get remove docker docker-engine docker.io containerd runc

# ubuntu package 최신 정보 받아오기
sudo apt-get update
 
# docker 설치를 위한 기본 패키지 설치
sudo apt-get install -y ca-certificates curl gnupg lsb-release


# apt로 내려 받을 수 있게 docker registry 설정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# docker 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# docker 명령어를 편하게 사용하기 위해 sudo 권한 부여 (shell 재시작 필요)
sudo usermod -aG docker $USER 

# 설치하기전 환경 구성
sudo swapoff -a 
sudo sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab

# kubernetes registry 등록 
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# kubernetes 설치
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

 

# master node 설정시 아래의 내용을 잘 기록 해놨다면 다행이지만..

sudo kubeadm join 123.456.678.910:6443 --token nt4zj2.vbtcn33333t19zpzv \
        --discovery-token-ca-cert-hash sha256:0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        
        
        
# 혹시 기록이 안되어 있다면? 걱정할 필요가 없다. 아래 명령을 수행하면 나온다.
# 각각 token과 hash 값을 확인할 수 있는 명령어이다.
kubeadm token list
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

# 만약 token list가 없다면? 걱정하지 말자 다시 만들면 된다
kubeadm token create

# 그리고 다시 hash를 조회하면 된다
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

 

 

 

위 과정을 진행하면 아래와 같은 메시지를 볼 수 있다.

이제 master에서 kubectl get nodes를 치면 다음과 같이 나오게 된다.

 

기본적인 클러스터 구성은 끝났고 이제 네트워크 addon을 추가로 설치하자

curl https://docs.projectcalico.org/manifests/calico.yaml -O --insecure
kubectl apply -f calico.yaml

 

반응형

+ Recent posts