Google Kubernetes Engine 안정성 가이드

Last reviewed 2023-07-19 UTC

Google Kubernetes Engine(GKE)은 클라우드에서 대규모로 컨테이너화된 애플리케이션을 실행하기 위한 시스템입니다. GKE는 컨테이너화된 애플리케이션의 리소스를 배포, 관리, 프로비저닝합니다. GKE 환경은 모두 함께 클러스터를 형성하도록 그룹화된 Compute Engine 인스턴스들로 구성됩니다.

권장사항

  • 컨테이너 작동을 위한 권장사항 - 로깅 메커니즘을 사용하고, 컨테이너의 스테이트리스(Stateless) 및 변경 불가능성을 보장하고, 애플리케이션을 모니터링하고, 활성 및 준비 프로브를 수행하는 방법
  • 컨테이너 빌드를 위한 권장사항 - 컨테이너별 단일 애플리케이션 패키지 구성, 프로세스 식별자(PID) 처리, Docker 빌드 캐시 최적화, 빠른 업로드 및 다운로드 시간을 위한 더 작은 이미지 빌드를 수행하는 방법
  • Google Kubernetes Engine 네트워킹 권장사항 - 쉬운 확장을 위해 VPC 기반 클러스터를 사용하고, IP 주소를 계획하고, 클러스터 연결을 확장하고, Google Cloud Armor를 사용하여 분산 서비스 거부(DDoS) 공격을 차단하고, 낮은 지연 시간을 위해 컨테이너 기반 부하 분산을 구현하고, 단계적 장애 조치를 위해 외부 애플리케이션 부하 분산기의 상태 점검 기능을 사용하고, 클러스터에서 애플리케이션 가용성 향상을 위해 리전별 클러스터를 사용합니다.
  • 클라우드 기반 Kubernetes 애플리케이션 준비 - 애플리케이션 용량 계획을 위한 권장사항을 학습하고, 수평 또는 수직적으로 애플리케이션을 확장하고, 메모리 대비 CPU에 대한 리소스 요청에 상대적인 리소스 한도를 설정하고, 빠른 애플리케이션 시작을 위해 컨테이너를 최소화하고, Pod Disruption Budget(PDB)을 설정하여 Pod 중단을 제한합니다. 또한 단계적 애플리케이션 시작을 위해 활성 프로브 및 준비 프로브를 설정하는 방법을 확인하고, 무중단 종료를 확인하고, 애플리케이션 과부하를 일으키는 트래픽 급증을 방지하기 위해 재시도 요청에 대해 지수 백오프를 구현합니다.
  • GKE 멀티테넌시 권장사항 - 고가용성 및 안정성을 위해 멀티 테넌트 클러스터 아키텍처를 설계하고, 테넌트별 사용 측정항목을 위해 Google Kubernetes Engine(GKE) 사용 측정을 사용하고, 테넌트별 로그를 제공하고, 테넌트별 모니터링을 제공하는 방법을 알아봅니다.