10.2. 자동 볼륨 분리를 위해 서비스 외부 테인트 추가
사전 요구 사항
- cluster-admin 권한으로 클러스터에 액세스합니다.
프로세스
비정상적인 노드 종료 후 노드에서 볼륨을 자동으로 분리할 수 있도록 하려면 다음을 수행합니다.
- 노드가 비정상으로 감지되면 작업자 노드를 종료합니다.
다음 명령을 실행하고 상태를 확인하여 노드가 종료되었는지 확인합니다.
$ oc get node <node_name>1 - 1
- <node_name> = 정상적으로 종료되지 않은 노드의 이름
중요노드가 완전히 종료되지 않으면 노드에 테인트를 진행하지 마십시오. 노드가 계속 작동 중이고 테인트가 적용되면 파일 시스템 손상이 발생할 수 있습니다.
다음 명령을 실행하여 해당 노드 오브젝트를 테인트합니다.
중요이렇게 하면 노드를 테인트하면 해당 노드의 모든 Pod가 삭제됩니다. 이로 인해 상태 저장 세트에서 지원하는 모든 Pod가 제거되고 다른 노드에서 Pod 교체도 생성됩니다.
$ oc adm taint node <node_name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute1 - 1
- <node_name> = 정상적으로 종료되지 않은 노드의 이름
테인트를 적용한 후 볼륨이 종료 노드에서 분리되므로 디스크를 다른 노드에 연결할 수 있습니다.
예제
결과 YAML 파일은 다음과 유사합니다.
spec: taints: - effect: NoExecute key: node.kubernetes.io/out-of-service value: nodeshutdown- 노드를 재시작합니다.
다음 명령을 실행하여 해당 노드 오브젝트에서 테인트를 제거합니다.
$ oc adm taint node <node_name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute-1 - 1
- <node_name> = 정상적으로 종료되지 않은 노드의 이름