워커 노드 추가 및 삭제
Control plane 노드와 worker 노드를 추가/삭제 할 수 있습니다. 모든 추가/삭제는 동시에 진행할 수 있습니다.
주의사항
추가/삭제 작업은 노드 drain 작업이 필수 입니다. drain 작업이 실패하지 않게 사전에 노드 및 pod 설정을 학인해야 합니다.
affinity, node selector, statefulset 등은 drain 작업시 실패 원인이 될 수 있으니 사전에 확인 및 설정이 필요 합니다.
Control Plane 삭제시 cluster-info 컨피그맵의 server url이 실제 마스터 정보 인지 확인하고 다르면 올바른 마스터 노드 ip로 직접 수정해야 합니다.
## step_1. 마스터 정보 확인
$ kubectl -n kube-public get cm cluster-info -o yaml | grep server
Control plane 노드 추가/삭제
Control plane 개별 노드를 추가/삭제 또는 모든 노드를 추가/삭제 할 수 있습니다.
아래 표와 같이 기존의 클러스터는 컨트롤 플레인 노드 1대, 워커 노드 2대가 설치되어있다고 가정합니다.
기존의 클러스터에 Control plane 노드 2대를 추가 방법을 설명합니다.
노드 삭제 역시 노드 추가와 동일한 방식으로 삭제하고 싶은 노드 IP를
cubectl.toml
에서 제거합니다.
control-plane node (기존)
192.168.11.1
172.16.11.1
control-plane node (추가)
192.168.11.10
172.16.11.10
control-plane node (추가)
192.168.11.11
172.16.11.11
1번 worker node
192.168.11.2
172.16.11.2
2번 worker node
192.168.11.3
172.16.11.3
cubectl config sync
명령을 통해 클러스터 정보를 동기화 합니다.cubectl.toml
파일이 존재한다면 생략 가능합니다.
$ bin/cubectl config sync -p <ssh key> -u <username>
cubectl update-kubeconfig
명령을 통해 KUBECONFIG 파일을 다운로드 받습니다.acloud-client-kubeconfig
파일이 존재한다면 생략 가능합니다.
$ bin/cubectl update-kubeconfig -p <ssh key> -u <username>
cubectl.toml
수정 - 추가할 노드의 IP를 추가로 입력합니다.$ vi config/cubectl.toml
cubectl update
실행합니다.
$ bin/cubectl update -p <ssh key> -u <username> --kubeconfig $(pwd)/config/acloud-client-kubeconfig
Worker 노드 추가/삭제
아래 표와 같이 기존의 클러스터는 컨트롤 플레인 노드 1대, 워커 노드 2대가 설치되어있다고 가정합니다.
기존의 클러스터에 워커 노드 1대를 추가 방법을 설명합니다.
노드 삭제 역시 노드 추가와 동일한 방식으로 삭제하고 싶은 노드 IP를
cubectl.toml
에서 제거합니다.
control-plane node
192.168.11.1
172.16.11.1
1번 worker node
192.168.11.2
172.16.11.2
2번 worker node
192.168.11.3
172.16.11.3
3번 worker node(추가할 노드)
192.168.11.4
172.16.11.4
cubectl config sync
명령을 통해 클러스터 정보를 동기화 합니다.cubectl.toml
파일이 존재한다면 생략 가능합니다.
$ bin/cubectl config sync -p <ssh key> -u <username>
cubectl update-kubeconfig
명령을 통해 KUBECONFIG 파일을 다운로드 받습니다.acloud-client-kubeconfig
파일이 존재한다면 생략 가능합니다.
$ bin/cubectl update-kubeconfig -p <ssh key> -u <username>
cubectl.toml
수정 - 추가할 노드의 IP를 추가로 입력합니다.$ vi config/cubectl.toml
cubectl update
실행합니다.
$ bin/cubectl update -p <ssh key> -u <username> --kubeconfig $(pwd)/config/acloud-client-kubeconfig
Last updated