Autopilot 개요


이 페이지에서는 Google Kubernetes Engine(GKE)의 Autopilot 작업 모드를 설명하고 클러스터를 계획, 설정, 관리하는 데 사용할 수 있는 리소스를 제공합니다.

Autopilot이란?

GKE Autopilot은 Google에서 노드, 확장, 보안, 기타 사전 구성된 설정을 포함한 클러스터 구성을 관리하는 GKE의 작동 모드입니다. Autopilot 클러스터는 대부분의 프로덕션 워크로드를 실행하고Kubernetes 매니페스트에 따라 컴퓨팅 리소스를 프로비저닝하도록 최적화되어 있습니다. 간소화된 구성은 클러스터 및 워크로드 설정, 확장성, 보안에 대한 GKE 권장사항을 따릅니다. 기본 제공되는 설정 목록은 Autopilot 및 표준 비교 표를 참조하세요.

가격 책정

GKE Autopilot에서 실행하는 동안 워크로드에서 요청하는 CPU, 메모리, 스토리지에 대한 비용만 지불하면 됩니다.

GKE에서 노드를 관리하므로 사용하지 않은 노드 용량에 대한 비용은 청구되지 않습니다. 시스템 포드, 운영체제 비용 또는 예약되지 않은 워크로드에 대한 비용도 청구되지 않습니다. 자세한 가격 책정 정보는 Autopilot 가격 책정을 참조하세요.

이점

  • 앱에 집중: Google에서 인프라를 관리하므로 애플리케이션 빌드와 배포에 집중할 수 있습니다.
  • 보안: 클러스터에는 기본 강화 구성이 있으며 기본적으로 여러 보안 설정이 사용 설정되어 있습니다. GKE는 사용 가능한 경우 구성된 유지보수 일정을 준수하여 노드에 보안 패치를 자동으로 적용합니다.
  • 가격 책정: Autopilot 가격 책정 모델은 포드에서 요청한 리소스를 기반으로 청구 예측과 기여 분석을 간소화합니다.
  • 노드 관리: Google에서 워커 노드를 관리하므로 워크로드를 수용하기 위해 새 노드를 만들거나 자동 업그레이드와 복구를 구성할 필요가 없습니다.
  • 확장: 워크로드에서 로드가 많이 발생하고 Kubernetes 수평형 포드 자동 확장과 같이 트래픽을 수용하기 위해 포드를 더 추가하면 GKE는 해당 포드의 새 노드를 자동으로 프로비저닝하며 필요에 따라 기존 노드의 리소스를 자동으로 확장합니다.
  • 예약: Autopilot에서 자동으로 포드 빈 패킹을 관리하므로 각 노드에서 실행 중인 포드 수를 고려할 필요가 없습니다. 어피니티 및 포드 분산 토폴로지와 같은 Kubernetes 메커니즘을 사용하여 포드 배치를 추가로 제어할 수 있습니다.
  • 리소스 관리: CPU 및 메모리와 같은 리소스 값을 설정하지 않고 워크로드를 배포하면 Autopilot에서 사전 구성된 기본값을 자동으로 설정하고 워크로드 수준에서 리소스 요청을 수정합니다.
  • 네트워킹: Autopilot은 트래픽이 클러스터의 다른 포드로 이동하더라도 모든 포드 네트워크 트래픽이 Virtual Private Cloud 방화벽 규칙을 통과하도록 하는 등 기본적으로 일부 네트워킹 보안 기능을 사용 설정합니다.
  • 출시 관리: 모든 Autopilot 클러스터는 GKE 출시 채널에 등록되므로 제어 영역과 노드가 해당 채널의 최신 검증 버전에서 실행됩니다.
  • 관리형 유연성: 워크로드에 높은 CPU 또는 메모리와 같은 특정 하드웨어 요구사항이나 리소스 요구사항이 있으면 Autopilot에서 해당 워크로드에 빌드된 사전 구성된 컴퓨팅 클래스를 제공합니다. 맞춤설정된 머신 유형과 하드웨어에서 지원하는 새 노드를 수동으로 만들 필요 없이 배포에서 컴퓨팅 클래스를 요청합니다. 또한 GPU를 선택하여 일괄 또는 AI/ML 애플리케이션과 같은 워크로드를 가속화할 수 있습니다.
  • 운영 복잡성 감소: Autopilot은 노드, 확장, 예약 작업을 지속적으로 모니터링할 필요성을 제거하여 플랫폼 관리 오버헤드를 줄입니다.

Autopilot은 포드에서 사용하는 제어 영역과 컴퓨팅 용량을 모두 포함하는 SLA와 함께 제공됩니다.

네트워킹

공개 네트워킹으로 Autopilot 클러스터를 만들면 클러스터의 워크로드가 서로 그리고 인터넷과 통신할 수 있습니다. 이는 기본 네트워킹 모드입니다. Google Cloud 및 Kubernetes는 사용 사례에 따라 활용할 수 있는 다양한 추가 네트워킹 기능(예: 비공개 네트워킹이 있는 클러스터)을 제공합니다.

Kubernetes 및 클라우드의 네트워킹은 복잡합니다. Google Cloud에서 자동으로 설정된 기본값을 변경하기 전에 네트워킹의 기본 개념을 이해해야 합니다. 다음 표에서는 사용 사례에 따른 GKE의 네트워킹을 자세히 알아볼 수 있는 리소스를 제공합니다.

사용 사례 리소스
Kubernetes 및 GKE에서 네트워킹의 작동 방식 이해

네트워킹 모델을 학습한 후에는 조직의 네트워킹 및 네트워크 보안 요구사항을 고려합니다. 이러한 기준을 충족하는 GKE 및 Google Cloud 네트워킹 기능을 선택합니다.

GKE 네트워킹 구성 계획

서비스당 엔드포인트 및 API 요청 한도와 같은 GKE의 네트워킹 할당량을 이해하는 것이 좋습니다. 다음 리소스는 네트워킹 설정의 특정 측면을 계획하는 데 도움이 됩니다.

워크로드 노출
  • 앱을 인터넷에 노출하려면 포드 그룹에서 실행되는 앱을 단일 네트워크 서비스로 노출할 수 있는 서비스를 사용합니다.
  • 워크로드가 Google Cloud API와 안전하게 통신하도록 구성하려면 워크로드 아이덴티티를 사용합니다.
여러 클러스터에서 가용성이 높은 연결된 서비스 실행 멀티 클러스터 서비스(MCS)를 사용합니다.
수신 트래픽 부하 분산
  • URI 및 경로에 따라 외부 HTTP(S) 트래픽을 여러 서비스로 부하 분산하려면(예: 복잡한 웹 애플리케이션) 외부 HTTP(S) 부하 분산기용 인그레스를 사용합니다.
  • 공개 이메일 서버를 실행하는 배포와 같은 단일 서비스로 외부 트래픽의 부하를 분산하려면 LoadBalancer 서비스를 사용하여 네트워크 부하 분산기를 만듭니다.
  • 회사 인트라넷의 웹 애플리케이션과 마찬가지로 URI 및 경로에 따라 내부 HTTP(S) 트래픽을 여러 서비스로 부하 분산하려면 내부 HTTP(S) 부하 분산기용 인그레스를 사용합니다.
  • 회사 이메일 서버와 마찬가지로 단일 서비스에 내부 트래픽을 부하 분산하려면 내부 TCP/UDP 부하 분산기를 사용합니다.
클러스터 네트워크 보안 구성
  • 공개 인터넷에서 클러스터에 대한 액세스를 제어하거나 방지하려면 비공개 클러스터를 만듭니다.
  • 특정 IP 주소 범위로 제어 영역 액세스를 제한하려면 제어 영역 승인 네트워크를 사용합니다.
  • IP 주소 또는 포트 수준에서 포드 트래픽을 제어하려면 네트워크 정책을 사용합니다. Autopilot 클러스터는 GKE Dataplane V2를 사용하여 eBPF를 통해 지연 시간이 짧은 패킷을 라우팅합니다.

확장

대규모 플랫폼을 효과적으로 운영하려면 계획과 신중한 고려가 필요합니다. 서비스 수준 목표(SLO) 내에서 클러스터를 확장시킬 수 있도록 설계의 확장성을 고려해야 합니다. 플랫폼 관리자와 개발자 모두를 대상으로 한 자세한 안내는 확장 가능한 클러스터 생성 가이드라인을 참조하세요.

특히 수천 개의 포드가 포함된 대규모 클러스터를 실행하려는 경우 GKE 할당량 및 한도도 고려해야 합니다.

Autopilot 워크로드 확장

Autopilot에서 GKE는 클러스터의 포드 수를 기준으로 노드를 자동으로 확장합니다. 클러스터의 포드 수를 자동으로 확장하려면 기본 제공되는 CPU 또는 메모리 측정항목이나 Cloud Monitoring의 커스텀 측정항목을 기준으로 포드를 확장할 수 있는 Kubernetes 수평형 포드 자동 확장과 같은 메커니즘을 사용하는 것이 좋습니다. 다양한 측정항목을 기반으로 확장을 구성하는 방법은 측정항목을 기준으로 포드 자동 확장 최적화를 참조하세요.

보안

Autopilot 클러스터는 기본적으로 클러스터 보안 강화GKE 보안 개요의 여러 권장사항을 포함한 보안 권장사항과 설정을 사용 설정하고 적용합니다.

Autopilot 강화 조치와 특정 보안 요구사항을 구현하는 방법에 대해 자세히 알아보려면 Autopilot의 보안 조치를 참조하세요.

클러스터 만들기

환경을 계획하고 요구사항을 파악한 후 Autopilot 클러스터를 만듭니다. 새 Autopilot 클러스터는 공개적으로 액세스할 수 있는 IP 주소가 있는 리전 클러스터입니다. 각 클러스터에는 자동 확장 및 기타 기능과 함께 기준 강화 조치가 적용됩니다. 사전 구성된 기능의 전체 목록은 GKE Autopilot과 Standard 비교를 참조하세요.

공개 IP 주소가 없는 클러스터를 만들려면 비공개 클러스터를 만듭니다.

Autopilot에 워크로드 배포

실행 중인 Autopilot 클러스터에 워크로드를 배포하려면 Kubernetes 매니페스트를 작성하고 클러스터에 적용합니다. 기본적으로 Autopilot 클러스터는 대부분의 프로덕션 워크로드를 실행하도록 최적화되어 있습니다.

앱 배포 및 노출을 위한 Google Cloud 콘솔의 대화형 가이드를 보려면 둘러보기를 클릭합니다.

둘러보기

일부 워크로드에는 하드웨어 가속기가 필요한 ML 워크로드 또는 ARM 아키텍처가 필요한 모바일 앱 테스트와 같은 특수한 하드웨어 요구사항이 있을 수 있습니다. Autopilot에는 특수한 컴퓨팅 요구사항이 있는 워크로드를 실행하도록 Google Cloud에서 구성한 컴퓨팅 클래스가 있습니다. 이러한 워크로드를 배포할 때는 매니페스트에서 컴퓨팅 클래스를 요청합니다. Autopilot은 자동으로 특수 머신의 지원을 받는 노드를 프로비저닝하고, 예약을 관리하고, 하드웨어를 할당합니다.

다음 표에서는 몇 가지 일반적인 요구사항 및 사용자에게 요구되는 조치에 관한 권장사항을 설명합니다.

사용 사례 리소스
ARM 워크로드 실행 매니페스트에서 Scale-Out 컴퓨팅 클래스와 arm64 아키텍처를 요청합니다. 자세한 안내는 ARM 아키텍처에 Autopilot 워크로드 배포를 참조하세요.
가속화된 AI/ML 워크로드 실행 매니페스트에서 GPU를 요청합니다. 자세한 내용은 Autopilot에서 GPU 워크로드 배포를 참조하세요.
높은 컴퓨팅 또는 메모리 용량이 필요한 워크로드 실행 Balanced 컴퓨팅 클래스를 요청합니다. 자세한 내용은 Autopilot 포드의 컴퓨팅 클래스 선택을 참조하세요.
더 효율적인 CPU 용량 수평 확장 및 단일 코어당 스레드 컴퓨팅이 필요한 워크로드 실행 Scale-Out 컴퓨팅 클래스를 요청합니다. 자세한 내용은 Autopilot 포드의 컴퓨팅 클래스 선택을 참조하세요.
일괄 작업과 같은 내결함성 워크로드를 저렴한 비용으로 실행 매니페스트에서 Spot 포드를 지정합니다. 자세한 내용은 Spot 포드에서 더 저렴한 비용으로 내결함성 워크로드 실행을 참조하세요. Spot 포드에서 모든 컴퓨팅 클래스 또는 하드웨어 구성을 사용할 수 있습니다.

Autopilot을 사용하면 워크로드의 CPU, 메모리, 임시 스토리지 리소스를 요청할 수 있습니다. 허용되는 범위는 포드를 기본 범용 컴퓨팅 플랫폼에서 실행할지 아니면 컴퓨팅 클래스에서 실행할지에 따라 다릅니다.

기본 컨테이너 리소스 요청과 허용되는 리소스 범위에 대한 자세한 내용은 Autopilot의 리소스 요청을 참조하세요.

워크로드 분리

Autopilot 클러스터는 노드 선택기와 노드 어피니티를 사용하여 워크로드 분리를 구성할 수 있습니다. 워크로드 분리는 GKE가 커스텀 노드 라벨과 같은 특정 기준을 충족하는 노드에 워크로드를 배치하도록 해야 하는 경우에 유용합니다. 예를 들어 game-server 라벨을 사용해서 노드에 게임 서버 포드를 예약하고 해당 노드에 다른 포드가 예약되지 않도록 GKE에 지시할 수 있습니다.

자세한 내용은 GKE에서 워크로드 분리 구성을 참조하세요.

영역 토폴로지를 사용하여 특정 영역에서 포드 예약

영역 Google Compute Engine 영구 디스크의 정보에 액세스해야 하는 경우와 같이 특정 Google Cloud 영역에 포드를 배치해야 하는 경우 nodeSelector 및 topology.kubernetes.io/zone 키를 사용하세요.

포드 어피니티 및 안티어피니티

포드 어피니티 및 안티어피니티를 사용하여 포드를 단일 노드에 함께 배치하거나 일부 포드가 다른 포드를 방지하도록 합니다. 포드 어피니티 및 안티어피니티는 Kubernetes에 특정 리전 또는 영역과 같은 특정 토폴로지 도메인의 노드에서 실행 중인 포드의 라벨을 기준으로 예약 결정을 내립니다. 예를 들어 서비스 중단 발생 시 가용성을 높이기 위해 동일한 노드의 다른 프런트엔드 포드와 함께 프런트엔드 포드를 예약하지 않도록 GKE에 지시할 수 있습니다.

자세한 내용 및 세부정보는 포드 어피니티 및 안티어피니티를 참조하세요.

GKE에서는 topologyKey의 다음 라벨과 함께 포드 어피니티 및 안티어피니티를 사용할 수 있습니다.

  • topology.kubernetes.io/zone
  • kubernetes.io/hostname

포드 토폴로지 분산 제약조건

Kubernetes가 포드 수를 확장하거나 축소할 때 워크로드 가용성을 개선하려면 포드 토폴로지 분산 제약조건을 설정할 수 있습니다. Kubernetes가 리전과 같은 토폴로지 도메인 내의 노드로 포드를 분산하는 방법을 제어합니다. 예를 들어 Kubernetes에 us-central1 리전에 있는 3개의 Google Cloud 영역 각각에 특정 수의 게임 서버 포드를 배치하도록 지시할 수 있습니다.

예시, 상세 내용, 안내는 포드 토폴로지 분산 제약조건을 참조하세요.

문제 해결

문제 해결 단계는 Autopilot 클러스터 문제 해결을 참조하세요.

다음 단계