5.8. 비정상적인 노드 종료 후 CSI 볼륨 분리
이 기능을 사용하면 노드가 비정상적으로 중단될 때 CSI(Container Storage Interface) 드라이버에서 볼륨을 자동으로 분리할 수 있습니다.
비정상적인 노드 종료 후 CSI 볼륨을 분리하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
5.8.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
kubelet의 노드 종료 관리자가 향후 노드 종료 작업을 탐지할 때 정상 노드 종료가 발생합니다. 비정상적인 종료는 kubelet에서 노드 종료 작업을 감지하지 못하면 시스템 또는 하드웨어 오류로 인해 발생할 수 있습니다. 또한 shutdown 명령이 Linux에서 사용하는 Inhibitor Locks 메커니즘을 트리거하지 않거나 사용자 오류(예: shutdownGracePeriod 및 shutdownGracePeriodCriticalPods 세부 정보가 해당 노드에 대해 올바르게 구성되어 있지 않은 경우) 노드 종료 작업을 탐지할 수 없습니다.
이 기능을 사용하면 비정상적인 노드 종료가 발생하면 노드에 out-of-service
테인트를 수동으로 추가하여 볼륨에서 자동으로 노드에서 분리할 수 있습니다.
5.8.2. 자동 볼륨 분리를 위한 서비스 외 테인트를 수동으로 추가 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- cluster-admin 권한을 사용하여 클러스터에 액세스합니다.
절차
비정상적인 노드 종료 후 볼륨을 노드에서 자동으로 분리할 수 있도록 하려면 다음을 수행합니다.
- 노드가 비정상으로 감지되면 작업자 노드를 종료합니다.
다음 명령을 실행하고 상태를 확인하여 노드가 종료되었는지 확인합니다.
oc get node <node name>
oc get node <node name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <node name> = 비정상적으로 종료되지 않은 노드의 이름입니다.
중요노드가 완전히 종료되지 않으면 노드 테인트를 진행하지 마십시오. 노드가 계속 작동 중이고 테인트가 적용되면 파일 시스템 손상이 발생할 수 있습니다.
다음 명령을 실행하여 해당 노드 오브젝트를 테인트합니다.
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <node name> = 비정상적으로 종료되지 않은 노드의 이름입니다.
테인트가 적용된 후 종료 노드에서 볼륨을 분리하여 디스크를 다른 노드에 연결할 수 있습니다.
예제
결과 YAML 파일은 다음과 유사합니다.
spec: taints: - effect: NoExecute key: node.kubernetes.io/out-of-service value: nodeshutdown
spec: taints: - effect: NoExecute key: node.kubernetes.io/out-of-service value: nodeshutdown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 노드를 재시작합니다.
- 테인트를 제거합니다.