워커 노드 추가 및 삭제

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에서 제거합니다.

Node Type
Public ip
Private ip

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에서 제거합니다.

Node Type
Public ip
Private ip

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