스테이트풀(Stateful) 워크로드의 중단 준비 상태 확인


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의 포드 중단에 대한 자세한 내용은 중단을 참조하세요.