구성 컨트롤러에 타사 워크로드 배포

이 페이지에서는 구성 컨트롤러 클러스터에 자체 워크로드를 배포하는 방법을 설명합니다.

이 페이지는 기본 기술 인프라의 수명 주기를 관리하고 용량을 계획하며 앱과 서비스를 프로덕션에 배포하는 IT 관리자 및 운영자를 위해 작성되었습니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할 및 예시 작업에 대해 자세히 알아보려면 일반 GKE Enterprise 사용자 역할 및 작업을 참조하세요.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  1. 구성 컨트롤러를 설정합니다.
  2. 구성 컨트롤러 클러스터가 버전 1.27 이전의 GKE 버전에 있으면 버전 1.27 이상으로 클러스터를 업그레이드합니다.

표준 클러스터에서 노드 자동 프로비저닝 사용 설정

구성 컨트롤러 클러스터에서 자체 워크로드를 배포하려면 노드 자동 프로비저닝을 사용 설정해야 합니다. 이렇게 하면 구성 컨트롤러 클러스터에 기본적으로 설치되는 Google 관리 워크로드와 사용자의 워크로드 사이에 워크로드를 분리할 수 있습니다

Autopilot 클러스터를 사용하는 경우 GKE가 노드 확장 및 프로비저닝을 자동으로 관리하기 때문에 노드 자동 프로비저닝을 사용 설정할 필요가 없습니다.

gcloud

노드 자동 프로비저닝을 사용 설정하려면 다음 명령어를 실행하세요.

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --min-cpu MINIMUM_CPU \
    --min-memory MIMIMUM_MEMORY \
    --max-cpu MAXIMUM_CPU \
    --max-memory MAXIMUM_MEMORY \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/devstorage.read_only

다음을 바꿉니다.

  • CLUSTER_NAME: 구성 컨트롤러 클러스터 이름입니다.
  • MINIMUM_CPU: 클러스터의 최소 코어 수입니다.
  • MINIMUM_MEMORY: 클러스터의 최소 메모리 용량(GB)입니다.
  • MAXIMUM_CPU: 클러스터의 최대 코어 수입니다.
  • MAXIMUM_MEMORY: 클러스터의 최대 메모리 용량(GB)입니다.

콘솔

노드 자동 프로비저닝을 사용 설정하려면 다음 단계를 수행합니다.

  1. Google Cloud Console에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 이름을 클릭합니다.

  3. 자동화 섹션의 노드 자동 프로비저닝에서 수정을 클릭합니다.

  4. 노드 자동 프로비저닝 사용 설정 체크박스를 선택합니다.

  5. 클러스터의 최소 및 최대 CPU 및 메모리 사용량을 설정합니다.

  6. 변경사항 저장을 클릭합니다.

기본값 설정과 같은 노드 자동 프로비저닝 구성에 대한 자세한 내용은 노드 자동 프로비저닝 구성을 참조하세요.

워크로드 배포

사용자가 워크로드를 배포할 때 구성 컨트롤러는 GKE Sandbox를 자동으로 사용 설정해서 신뢰할 수 없는 코드가 클러스터 노드의 호스트 커널에 영향을 주지 않도록 추가적인 보안 레이어를 제공합니다. 자세한 내용은 GKE Sandbox 정보를 참조하세요.

워크로드 매니페스트 파일을 작성한 후 다음 명령어를 실행하여 워크로드를 배포할 수 있습니다.

kubectl apply -f WORKLOAD_FILE

WORKLOAD_FILEmy-app.yaml과 같이 매니페스트 파일로 바꿉니다.

워크로드가 자동 프로비저닝된 노드에서 실행 중인지 확인합니다.

  1. 워크로드에 대해 생성된 노드 목록을 가져옵니다.

    kubectl get nodes
  2. 특정 노드를 검사합니다.

    kubectl get nodes NODE_NAME -o yaml

    NODE_NAME을 검사하려는 노드 이름으로 바꿉니다.

제한사항

  • GKE Sandbox: GKE Sandbox는 많은 애플리케이션에서 잘 작동하지만 그렇지 않은 경우도 있습니다. 자세한 내용은 GKE Sandbox 제한사항을 참조하세요.
  • 컨트롤 플레인 보안: 워크로드에 대해 권한을 부여할 때는 최소 권한의 원칙에 따라 필요한 권한만 부여합니다. 워크로드가 손상된 경우 워크로드는 과도하게 부여된 권한을 이용해서 Kubernetes 리소스를 변경하거나 삭제할 수 있습니다.
  • 컨트롤 플레인 가용성: 워크로드로 인해 단기간에 트래픽이 증가하면 트래픽이 감소할 때까지 클러스터 컨트롤 플레인을 사용하지 못할 수 있습니다.
  • 컨트롤 플레인 크기 조절: GKE는 필요에 따라 컨트롤 플레인 크기를 자동으로 조절합니다. 워크로드로 인해 부하가 크게 증가하면(예: 수천 개의 CRD 객체 설치), GKE의 자동 크기 조절 기능이 이러한 부하 증가를 지원하지 못할 수 있습니다.
  • 할당량: 워크로드를 배포할 때는 GKE 할당량 및 한도를 인식하고 이를 초과하지 않아야 합니다.
  • 컨트롤 플레인 및 노드에 대한 네트워크 액세스: 구성 컨트롤러는 마스터 승인 네트워크가 사용 설정되었고, 비공개 엔드포인트가 사용 설정되었고, 공개 액세스가 사용 중지된 비공개 노드를 사용합니다. 자세한 내용은 GKE 네트워크 보안을 참조하세요.

다음 단계