9.3. SiteConfig CR을 사용하여 노드 삭제
SiteConfig
CR(사용자 정의 리소스)을 사용하면 노드를 삭제하고 다시 프로비저닝할 수 있습니다. 이 방법은 노드를 수동으로 삭제하는 것보다 효율적입니다.
사전 요구 사항
- 필요한 설치 및 정책 CR을 생성하도록 허브 클러스터를 구성했습니다.
- 사용자 지정 사이트 구성 데이터를 관리할 수 있는 Git 리포지토리를 생성했습니다. 리포지토리는 hub 클러스터에서 액세스할 수 있어야 하며 Argo CD 애플리케이션의 소스 리포지토리로 정의해야 합니다.
프로세스
bmac.agent-install.openshift.io/remove-agent-and-node-on-delete=true
주석을 포함하도록SiteConfig
CR을 업데이트하고 변경 사항을 Git 리포지토리로 내보냅니다.apiVersion: ran.openshift.io/v1 kind: SiteConfig metadata: name: "cnfdf20" namespace: "cnfdf20" spec: clusters: nodes: - hostname: node6 role: "worker" crAnnotations: add: BareMetalHost: bmac.agent-install.openshift.io/remove-agent-and-node-on-delete: true # ...
다음 명령을 실행하여
BareMetalHost
오브젝트에 주석이 추가되었는지 확인합니다.oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'
출력 예
true
crSuppression.BareMetalHost
주석을 포함하도록SiteConfig
CR을 업데이트하여BareMetalHost
CR 생성을 비활성화합니다.apiVersion: ran.openshift.io/v1 kind: SiteConfig metadata: name: "cnfdf20" namespace: "cnfdf20" spec: clusters: - nodes: - hostName: node6 role: "worker" crSuppression: - BareMetalHost # ...
-
변경 사항을 Git 리포지토리로 푸시하고 프로비저닝 해제가 시작될 때까지 기다립니다.
BareMetalHost
CR의 상태는프로비저닝 해제
로 변경되어야 합니다.BareMetalHost
가 프로비저닝 해제가 완료될 때까지 기다린 후 완전히 삭제됩니다.
검증
다음 명령을 실행하여 작업자 노드의
BareMetalHost
및Agent
CR이 hub 클러스터에서 삭제되었는지 확인합니다.$ oc get bmh -n <cluster-ns>
$ oc get agent -n <cluster-ns>
다음 명령을 실행하여 노드 레코드가 spoke 클러스터에서 삭제되었는지 확인합니다.
$ oc get nodes
참고시크릿을 사용하여 작업하는 경우 ArgoCD에는 삭제 후 다시 동기화를 완료하기 위해 시크릿이 필요하므로 시크릿을 너무 빨리 삭제하면 문제가 발생할 수 있습니다. 현재 ArgoCD 동기화가 완료되면 노드 정리 후에만 보안을 삭제합니다.
다음 단계
노드를 다시 프로비저닝하려면 이전에 SiteConfig
에 추가된 변경 사항을 삭제하고, 변경 사항을 Git 리포지토리로 푸시하고 동기화가 완료될 때까지 기다립니다. 이렇게 하면 작업자 노드의 BareMetalHost
CR이 다시 생성되고 노드를 다시 설치합니다.