2.2. 컨트롤 플레인 펜싱
이전 릴리스에서는 작업자 노드에서 Self Node Remediation 및 Node Health Check를 활성화할 수 있습니다. 노드 오류가 발생하는 경우 이제 컨트롤 플레인 노드에서 수정 전략을 따를 수 있습니다.
Self Node Remediation은 두 가지 기본 시나리오에서 수행됩니다.
API 서버 연결
- 이 시나리오에서는 수정할 컨트롤 플레인 노드를 분리하지 않습니다. API 서버에 직접 연결하거나 API 서버에 직접 연결된 작업자 노드 또는 컨트롤 플레인 노드를 통해 API 서버에 간접적으로 연결할 수 있습니다.
-
API Server Connectivity가 있는 경우 Node Health Check Operator에서 노드에 대한
SelfNodeRemediationCR(사용자 정의 리소스)을 생성한 경우에만 컨트롤 플레인 노드가 수정됩니다.
API 서버 연결 없음
- 이 시나리오에서는 수정할 컨트롤 플레인 노드가 API 서버와 격리됩니다. 노드는 API 서버에 직접 또는 간접적으로 연결할 수 없습니다.
API Server Connectivity가 없으면 다음 단계에 설명된 대로 컨트롤 플레인 노드가 수정됩니다.
대부분의 피어 작업자 노드가 있는 컨트롤 플레인 노드의 상태를 확인합니다. 대부분의 피어 작업자 노드에 도달할 수 없는 경우 노드가 추가로 분석됩니다.
컨트롤 플레인 노드의 상태 진단
- 자체 진단이 통과되면 작업을 수행하지 않습니다.
- 자체 진단에 실패하면 노드가 펜싱되고 수정됩니다.
-
현재 지원되는 자체 진단에서는
kubelet서비스 상태를 확인하고opt inconfiguration을 사용하여 끝점 가용성을 확인합니다.
- 노드가 대부분의 작업자 피어와 통신할 수 없는 경우 다른 컨트롤 플레인 노드와 컨트롤 플레인 노드의 연결을 확인합니다. 노드가 다른 컨트롤 플레인 피어와 통신할 수 있는 경우 작업을 수행하지 않습니다. 그렇지 않으면 노드가 펜싱되고 수정됩니다.