노드 폐기(Decommission)하기
self-managed Calico 클러스터에서 노드를 제거할 때는 데이터스토어에 남는 Node 리소스를 정리해야 해요. 이 문서에서는 calicoctl로 노드를 폐기하고 IP 할당과 BGP 피어 정보를 깨끗하게 정리하는 방법을 소개합니다. 단일 노드와 여러 노드 삭제 절차를 함께 살펴봐요.
출처: 문서
본문
노드 폐기에 대하여
node 컨트롤러를 실행 중이거나 policy-only 모드로 Kubernetes API 데이터스토어를 사용 중이라면 노드를 수동으로 폐기할 필요가 없어요.
그 외 구성에서는 다음 이유 중 하나로 노드를 수동으로 폐기해야 할 수 있습니다.
calico/node를 실행하던 호스트를 폐기하거나 클러스터에서 제거하는 경우- 노드 이름을 바꾸는 경우
- 이미 사용 중인 IP 주소에 대한 오류가 발생하는 경우
- 더 이상 클러스터에 없는 도달 불가능한 피어 때문에 Readiness 검사가 실패하는 경우
- 호스트가 클러스터에서 자주 추가되고 제거되는 경우
이 페이지의 목적
Calico 클러스터의 일부인 호스트를 제거하고 관련 노드 리소스 참조 정보를 정리하는 방법을 안내해요.
사전 준비
- 데이터스토어에서 Node 리소스를 제거하기 전에 해당 호스트의
calico/node컨테이너를 중지하고 다시 시작되지 않도록 보장해야 해요. - 여기 나열된 명령을 실행하려면 calicoctl이 구성되어 동작하는 상태여야 합니다.
노드 리소스 제거하기
Node 리소스를 제거하면 그 Node와 연관된 Workload Endpoint, Host Endpoint, IP Address 리소스 및 기타 하위 구성 항목도 함께 제거돼요.
참고:
- 호스트가 아직 서비스 중이라면 Node 리소스를 삭제하는 일이 서비스에 영향을 줄 수 있어요. Node 리소스를 삭제하기 전에 호스트가 더 이상 서비스 중이 아닌지 확인하세요.
- 노드 전용 구성은 모두 제거됩니다. 노드 BGP 피어링이나 커스텀 Felix 설정 같은 구성이 이에 해당해요.
단일 노드 리소스 제거하기
calicoctl 명령으로 노드를 제거하는 방법은 아래 예제를 참고하세요.
위의 노드 리소스 제거하기를 참고하세요.
calicoctl delete node <nodeName>
여러 노드 리소스 제거하기
여러 Node를 제거하려면 Node 리소스 여러 개를 담은 파일을 만든 다음 -f 플래그로 calicoctl delete 명령에 넘기면 돼요. 아래는 Node 파일을 만들고 삭제하는 예제입니다.
-
제거해야 할 Node 리소스를 담은 파일을 만듭니다. 예를 들면:
- apiVersion: projectcalico.org/v3 kind: Node metadata: name: node-02 - apiVersion: projectcalico.org/v3 kind: Node metadata: name: node-03 -
파일에 나열된 노드를 삭제하려면 아래처럼 파일을 넘깁니다.
경고: 위의 노드 리소스 제거하기를 참고하세요.
calicoctl delete -f nodes_to_delete.yaml
더 알아보기 (Learn more)
Node 리소스를 삭제하면 엔드포인트와 IP 할당이 함께 정리되므로 강력하지만 위험한 작업이에요. 실행 전에 calico/node가 중지됐는지, 노드가 서비스 중이 아닌지 꼭 확인하세요.