Google Kubernetes Engine(GKE) 클러스터에서 실행되는 애플리케이션은 노드 업그레이드 및 기타 유지보수 이벤트와 같은 중단에 대비해야 합니다. I/O를 완전히 중지하고 스토리지에서 마운트 해제하는 데 시간이 자주 필요한 스테이트풀(Stateful) 애플리케이션은 서비스 중단에 특히 취약합니다. 포드 중단 예산(PDB) 및 준비 프로브와 같은 Kubernetes 기능을 사용하여 업그레이드 중에 애플리케이션을 계속 사용할 수 있습니다.
GKE는 클러스터를 모니터링하고 추천자 서비스를 사용하여 플랫폼 사용량 최적화 방법에 대한 안내를 제공합니다. GKE는 워크로드가 중단에 대비할 수 있도록 기회를 감지하고 워크로드의 복원력을 극대화하기 위해 PDB 또는 준비 프로브를 업데이트하는 방법을 안내합니다. 예를 들어 StatefulSet가 PDB로 보호되지 않으면 노드 업그레이드 중에 클러스터가 모든 포드를 한 번에 삭제할 수 있습니다. 이를 방지하기 위해 GKE는 대부분의 포드가 업그레이드 중에 계속 실행될 수 있도록 PDB를 만드는 방법을 제공합니다.
GKE가 중단 관련 안내를 제공하는 특정 조건을 보려면 GKE에서 중단에 취약한 워크로드를 식별하는 경우를 참조하세요.
통계 및 추천을 관리하는 방법에 대한 자세한 내용은 통계 및 추천으로 GKE 사용 최적화를 참조하세요.
중단에 취약한 워크로드 식별
GKE는 클러스터의 중단에 취약한 워크로드를 식별하는 통계를 생성합니다. 이러한 통계를 가져오려면 Google Cloud CLI 또는 Recommender API를 사용하여 통계 및 권장사항을 확인합니다. 다음 섹션에 나열된 하위 유형을 사용하여 특정 통계를 필터링합니다. Google Cloud 콘솔에서는 이러한 통계를 사용할 수 없습니다.
GKE에서 중단에 취약한 워크로드를 식별하는 경우
GKE가 통계 및 권장사항과 관련 하위유형을 제공하는 시나리오는 다음 표를 참조하세요.
통계 하위유형 | 설명 | 작업 |
---|---|---|
PDB_UNPROTECTED_STATEFULSET |
StatefulSet가 있을 때 기존 PDB 라벨이 StatefulSet의 포드 선택기 라벨과 일치하는 경우 알림을 제공합니다. 즉, 노드 업그레이드와 같은 이벤트 중에 StatefulSet의 모든 포드를 종료할 수 있습니다. | 라벨이 StatefulSet의 포드 선택기 필드에 있는 라벨과 일치하는 PDB를 추가합니다. PDB에서 StatefulSet로 허용할 수 있는 중단 정도를 지정합니다. 이 통계와 연관된 권장사항은 언급된 StatefulSet를 포괄하기 위해 PDB가 설정해야 하는 라벨을 제안합니다. |
PDB_UNPERMISSIVE |
포드와 일치하는 PDB가 노드 업그레이드와 같은 유지보수 활동을 준수할 수 없는 경우 알림을 제공합니다. PDB는 하나 이상의 포드가 중단되도록 허용해야 하므로 GKE는 1시간 후에 필요한 유지보수를 위해 이 PDB를 위반합니다. | PDB의 minAvailable 설정을 총 포드 수보다 적거나 maxUnavailable 설정을 0보다 크게 설정합니다. |
PDB_STATEFULSET_WITHOUT_PROBES |
StatefulSet가 PDB로 구성되었지만 준비 프로브가 없는 경우 알림을 제공하므로 PDB가 애플리케이션 준비 여부를 측정하는 데 효과적이지 않습니다. PDB는 정상 상태로 간주될 수 있는 포드를 확인할 때 준비 프로브를 준수합니다. 따라서 PDB가 적용되는 포드에 준비 프로브가 구성되어 있지 않으면 PDB에서 포드가 정상 상태인지 또는 단순히 실행 중인지에 대한 공개 상태가 제한됩니다. | 통계에 언급된 PDB용 StatefulSet의 포드에 준비 프로브를 추가합니다. 또한 활성 프로브를 추가하는 것이 좋습니다. |
안내를 구현하여 중단 준비 상태 개선
클러스터의 워크로드에 대한 통계와 권장사항을 받았고 중단 준비 상태를 개선하려면 권장사항에 설명된 안내와 이전 섹션과 같이 통계 하위유형에 대한 작업을 구현하세요.
권장사항은 하루에 한 번 평가되므로 변경사항이 구현된 후 처리되는 데 최대 24시간이 걸릴 수 있습니다. 권장사항의 안내를 구현하고 24시간이 지나지 않았으면 권장사항을 해결됨으로 표시할 수 있습니다. 권장사항을 구현하지 않으려면 닫으면 됩니다.
다음 단계
- GKE 클러스터의 안정성 및 업타임 보장에 대한 자세한 내용은 GKE 2일 차 작업 권장사항을 참조하세요.
- Kubernetes의 포드 중단에 대한 자세한 내용은 중단을 참조하세요.