[Kubernetes] kubernetes 노드 추가하는 방법

Joseph's Engineering Blog·2023년 9월 4일
0
post-thumbnail

포스팅 이유

클러스터 확장을 위해 노드를 추가하고자 할 때 명령어를 정리하기 위함



1. 마스터 노드 추가 (Master node join)

노드 추가에 필요한 command들은 모두 Master node에서 실행하면됩니다.

우선 클러스터를 최초 구성할 때 사용한 kubeadm-config.yaml 파일이 필요합니다.

## 예시 yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.178.11
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/crio/crio.sock
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: 1.19.4
controlPlaneEndpoint: 192.168.178.15:6443
imageRepository: k8s.gcr.io
networking:
  serviceSubnet: 10.96.0.0/16
  podSubnet: 10.244.0.0/16
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd

kubeadm command를 통해 Master node join에 필요한 certificate key를 받습니다.

$ kubeadm init phase upload-certs --upload-certs --config=kubeadm-config.yaml

W0904 11:21:55.045028  355026 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
d1bac3c09251f90e64f5a5c94fdf20cec7cf867f543257e102a1c65b1367d77a

출력된 certificate key를 사용하여 join command를 생성합니다.
( { certificate key } 에 위에서 출력된 key를 넣어 실행합니다. )

$ kubeadm token create --certificate-key { certificate key } --print-join-command

W0904 11:23:48.944767  356603 kubelet.go:200] cannot automatically set CgroupDriver when starting the Kubelet: cannot execute 'docker info -f {{.CgroupDriver}}': executable file not found in $PATH
W0904 11:23:48.955201  356603 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
kubeadm join 192.168.178.15:6443 --token t0bzyy.pzwcuxsw10ey98gc     --discovery-token-ca-cert-hash sha256:a9b1827e94c0601dbdadbd9f2f000f9354abf0bcd6adb77e37448eb60ae06bfb     --control-plane --certificate-key d1bac3c09251f90e64f5a5c94fdf20cec7cf867f543257e102a1c65b1367d77a

출력된 kubeadm join ~~ command 부분을 복사하여 추가하고자 하는 node에서 실행하면 됩니다.



2. 워커 노드 추가 (Worker node join)

Worker 노드 추가는 Master 노드에 비해 간단합니다.

$ kubeadm token create --print-join-command

W0904 11:28:00.373584  360563 kubelet.go:200] cannot automatically set CgroupDriver when starting the Kubelet: cannot execute 'docker info -f {{.CgroupDriver}}': executable file not found in $PATH
W0904 11:28:00.383809  360563 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
kubeadm join 192.168.178.15:6443 --token 39ou2v.73t12mm9u0o7ggrq     --discovery-token-ca-cert-hash sha256:a9b1827e94c0601dbdadbd9f2f000f9354abf0bcd6adb77e37448eb60ae06bfb 

출력된 kubeadm join ~~ command 부분을 복사하여 추가하고자 하는 노드에서 실행하면 됩니다.

profile
Kubernetes / DevOps / Git / Network / AWS / Terraform / Opensource / Java / Springboot

0개의 댓글