기본적으로 포드에 ComputeClass 적용

이 문서에서는 ComputeClass를 명시적으로 선택하지 않는 Google Kubernetes Engine (GKE) 포드에 기본적으로 ComputeClass를 적용하는 방법을 보여줍니다. 이 페이지에는 네임스페이스 및 전체 클러스터에서 ComputeClass를 기본값으로 설정하는 방법이 나와 있습니다. 이 문서는 개별 워크로드 및 노드 구성으로 인해 발생하는 수동 오버헤드를 줄이려는 클러스터 관리자를 대상으로 합니다.

커스텀 ComputeClass에 이미 익숙해야 합니다.

기본 ComputeClass 정보

기본 ComputeClass를 갖도록 GKE 클러스터 또는 특정 네임스페이스를 구성할 수 있습니다. 구성한 기본 클래스는 다른 ComputeClass를 선택하지 않는 해당 클러스터 또는 네임스페이스의 모든 포드에 적용됩니다. ComputeClass를 선택하지 않는 포드를 배포하면 GKE는 다음 순서로 기본 ComputeClass를 적용합니다.

  1. 네임스페이스에 기본 ComputeClass가 있는 경우 GKE는 해당 ComputeClass를 선택하도록 포드 사양을 수정합니다.
  2. 네임스페이스에 기본 ComputeClass가 없으면 클러스터 수준 기본 클래스가 적용됩니다. GKE는 포드 사양을 수정하지 않습니다.

클러스터 또는 네임스페이스의 기본 ComputeClass를 설정하면 변경사항이 새 포드에만 적용됩니다. 기존 포드는 포드가 다시 생성될 때까지 영향을 받지 않습니다. 이 동작은 ComputeClass에 활성 마이그레이션이 사용 설정된 경우에도 적용됩니다.

기본 ComputeClass의 activeMigration.optimizeRulePriority 필드가 true로 설정되어 있으면 이 설정이 클러스터의 워크로드에 영향을 줄 수 있습니다. 자세한 내용은 기본 ComputeClass의 활성 마이그레이션을 참고하세요.

시작하기 전에

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

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치했으면 gcloud components update 명령어를 실행하여 최신 버전을 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.
  • 클러스터 또는 네임스페이스 수준에서 기본 ComputeClass 설정을 지원하는 버전을 실행하는 GKE Autopilot 또는 Standard 클러스터가 있어야 합니다. 자세한 내용은 요구사항 섹션을 참고하세요.
  • Standard 모드 클러스터를 사용하는 경우 다음 요구사항 중 하나를 충족하는지 확인합니다.

  • 커스텀 ComputeClass를 네임스페이스의 기본값으로 설정하려면 커스텀 ComputeClass를 배포하세요.

요구사항

  • ComputeClass를 클러스터 수준 기본값으로 설정하려면 클러스터가 GKE 버전 1.33.1-gke.1744000 이상을 실행해야 합니다.
  • DaemonSet이 아닌 Pod에만 ComputeClass를 네임스페이스 수준 기본값으로 설정하려면 클러스터가 GKE 버전 1.33.1-gke.1788000 이상을 실행해야 합니다.

필수 역할 및 권한

클러스터 또는 네임스페이스 수준 기본 ComputeClass를 구성하는 데 필요한 권한을 얻으려면 관리자에게 Google Cloud 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 클러스터 또는 네임스페이스 수준 기본 ComputeClass를 구성하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

클러스터 또는 네임스페이스 수준 기본 ComputeClass를 구성하려면 다음 권한이 필요합니다.

  • container.customResourceDefinitions.create
  • container.customResourceDefinitions.update
  • container.customResourceDefinitions.get
  • container.customResourceDefinitions.list
  • container.namespaces.get
  • container.namespaces.list
  • container.pods.get
  • container.nodes.get
  • container.nodes.list
  • container.deployments.create
  • container.deployments.get
  • 네임스페이스에 라벨을 추가합니다. container.namespaces.update
  • 클러스터 수준 기본 ComputeClass를 사용 설정합니다. container.clusters.update

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

네임스페이스의 기본 ComputeClass 구성

클러스터의 Kubernetes 네임스페이스에 기본값으로 사용할 ComputeClass의 이름을 주석으로 달 수 있습니다. 해당 네임스페이스에 배포된 포드가 아직 ComputeClass를 선택하지 않은 경우 GKE는 네임스페이스에서 기본 클래스를 선택하도록 포드 사양을 수정합니다. 맞춤 또는 기본 제공 ComputeClass를 기본값으로 설정할 수 있습니다.

  • 기본적으로 네임스페이스의 모든 포드에 ComputeClass를 적용하려면 해당 네임스페이스에 cloud.google.com/default-compute-class 라벨을 추가하세요.

    kubectl label namespaces NAMESPACE_NAME \
        cloud.google.com/default-compute-class=COMPUTECLASS_NAME
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 업데이트할 네임스페이스의 이름입니다.
    • COMPUTECLASS_NAME: 네임스페이스의 기본값으로 설정할 ComputeClass의 이름입니다.

    다음 오류 메시지와 함께 명령어가 실패하면 네임스페이스에 이미 기본 ComputeClass가 있는 것입니다.

    error: 'cloud.google.com/default-compute-class' already has a value, and --overwrite is false
    

    이 오류를 해결하려면 네임스페이스의 기본 ComputeClass를 업데이트하세요.

  • 네임스페이스의 모든 비 DaemonSet 포드에 기본적으로 ComputeClass를 적용하려면 해당 네임스페이스에 cloud.google.com/default-compute-class-non-daemonset 라벨을 추가하세요.

    kubectl label namespaces NAMESPACE_NAME \
        cloud.google.com/default-compute-class-non-daemonset=COMPUTECLASS_NAME
    

    다음 오류 메시지와 함께 명령어가 실패하면 네임스페이스에 이미 DaemonSet이 아닌 포드의 기본 ComputeClass가 있는 것입니다.

    error: 'cloud.google.com/default-compute-class-non-daemonset' already has a value, and --overwrite is false
    

    이 오류를 해결하려면 네임스페이스의 기본 ComputeClass를 업데이트하세요.

변경사항은 해당 네임스페이스의 새 포드에 적용됩니다. 기존 포드는 영향을 받지 않습니다.

네임스페이스에서 기존 기본 ComputeClass 업데이트

네임스페이스의 기존 기본 ComputeClass를 덮어쓰려면 다음 명령어 중 하나를 실행합니다.

  • 네임스페이스의 모든 포드에 대한 기본 ComputeClass를 업데이트합니다.

    kubectl label namespaces NAMESPACE_NAME   \
        cloud.google.com/default-compute-class=COMPUTECLASS_NAME \
        --overwrite
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 업데이트할 네임스페이스의 이름입니다.
    • COMPUTECLASS_NAME: 네임스페이스의 새 기본값으로 설정할 ComputeClass의 이름입니다.
  • 네임스페이스에서 DaemonSet이 아닌 Pod의 기본 ComputeClass를 덮어씁니다.

    kubectl label namespaces NAMESPACE_NAME \
        cloud.google.com/default-compute-class-non-daemonset=COMPUTECLASS_NAME \
        --overwrite
    

시스템 네임스페이스의 기본 ComputeClass 구성

GKE는 시스템 네임스페이스를 사용하여 모니터링 에이전트와 같은 다양한 관리 워크로드를 실행합니다. 이러한 관리형 워크로드 중 일부는 중요 기능을 제공하기 위해 클러스터의 모든 노드에서 실행되어야 하는 DaemonSet입니다. 하지만 시스템 네임스페이스에서 DaemonSet이 아닌 포드의 기본 ComputeClass를 지정하여 이러한 포드가 워크로드와 별도로 실행되도록 할 수 있습니다.

시스템 네임스페이스의 기본 ComputeClass를 설정하려면 다음 단계를 따르세요.

  1. 다음 스크립트를 apply-system-cc.sh로 저장합니다. 이 스크립트를 사용하면 권장 ComputeClass 또는 기존 ComputeClass를 시스템 네임스페이스에 적용할 수 있습니다.

    #!/bin/bash
    
    # The recommended default ComputeClass name for system pods.
    DEFAULT_SYSTEM_CC_NAME="system-default-computeclass"
    
    # The YAML manifest for the recommended default ComputeClass for system pods.
    read -r -d '' DEFAULT_CC_YAML << EOF
    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: ${DEFAULT_SYSTEM_CC_NAME}
    spec:
      nodePoolAutoCreation:
        enabled: true
      whenUnsatisfiable: ScaleUpAnyway
      priorities:
      - machineFamily: t2d
    EOF
    
    # The label key to apply to namespaces.
    LABEL_KEY="cloud.google.com/default-compute-class-non-daemonset"
    
    
    # List of GKE system namespaces.
    SYSTEM_NAMESPACES=(
      "kube-system"
      "gke-gmp-system"
      "gmp-system"
      "gke-managed-cim"
      "gke-managed-volumepopulator"
      "gke-managed-checkpointing"
      "gkebackup"
      "gke-managed-lustrecsi"
    )
    
    
    # 1. Ask the user for their choice.
    echo "This script sets a default ComputeClass for GKE system namespaces."
    echo "--------------------------------------------------------------------"
    echo "The following ComputeClass is recommended for system Pods:"
    echo ""
    echo "$DEFAULT_CC_YAML"
    echo "--------------------------------------------------------------------"
    read -p "Do you want to use the recommended ComputeClass? (y/N): " user_choice
    
    CC_TO_APPLY=""
    
    # 2. Process the user's choice.
    if [[ "$user_choice" =~ ^[Yy]$ ]]; then
      # Path 1: User chose YES.
      echo "Installing the recommended default ComputeClass '${DEFAULT_SYSTEM_CC_NAME}'..."
    
      if ! echo "$DEFAULT_CC_YAML" | kubectl apply -f -; then
          # If kubectl apply fails, print an error and exit.
          echo "❌ Error: Failed to create the default ComputeClass. An internal error occurred."
          echo "Check for kubectl permissions or other cluster issues and re-run the script."
          exit 1
      fi
      # If the command succeeded, set the name to be used for labeling.
      CC_TO_APPLY="$DEFAULT_SYSTEM_CC_NAME"
    
    else
      read -p "Specify the name of an existing ComputeClass to set as the default for system Pods: " custom_cc_name
    
      # Validate that the user entered a name.
      while [[ -z "$custom_cc_name" ]]; do
        echo "Error: Name cannot be empty."
        read -p "Specify the name of an existing ComputeClass: " custom_cc_name
      done
    
      # Check if the specified ComputeClass actually exists in the cluster.
      echo "--> Verifying that ComputeClass '${custom_cc_name}' exists..."
      if kubectl get computeclass "$custom_cc_name" > /dev/null 2>&1; then
        echo "Verified."
        CC_TO_APPLY="$custom_cc_name"
      else
        echo "Error: ComputeClass '${custom_cc_name}' doesn't exist in the cluster."
        echo "Create the ComputeClass, and then then re-run this script."
        exit 1
      fi
    fi
    
    echo ""
    echo "Labelling system namespaces with ComputeClass: '${CC_TO_APPLY}'"
    echo "--------------------------------------------------------------------"
    
    # 3. Apply the label to all system namespaces.
    for ns in "${SYSTEM_NAMESPACES[@]}"; do
      # Gracefully handle namespaces that don't exist on this specific cluster.
      if kubectl get namespace "${ns}" > /dev/null 2>&1; then
        echo "--> Applying label to namespace: ${ns}"
        kubectl label namespace "${ns}" \
          "${LABEL_KEY}=${CC_TO_APPLY}" --overwrite
      else
        echo "--> Skipping namespace ${ns} (does not exist)"
      fi
    done
    
    echo ""
    echo "✅ Script finished successfully."

    이 스크립트는 시스템 네임스페이스의 DaemonSet이 아닌 포드에만 영향을 주는 cloud.google.com/default-compute-class-non-daemonset 라벨을 사용합니다.

  2. 스크립트를 실행합니다.

    ./apply-system-cc.sh
    

스크립트가 완료되면 이미 ComputeClass가 있는 경우를 제외하고 모든 새 비 DaemonSet 시스템 포드는 기본적으로 지정된 ComputeClass를 사용합니다. 해당 네임스페이스의 기존 포드는 영향을 받지 않습니다. GKE에서 새 시스템 네임스페이스를 추가하는 경우 이 스크립트를 다시 실행하여 해당 네임스페이스에 변경사항을 적용합니다.

시스템 네임스페이스의 기본 ComputeClass를 설정 해제하려면 다음 단계를 따르세요.

  1. 다음 스크립트를 unset-system-cc.sh로 저장합니다.

    #!/bin/bash
    
    # The recommended default ComputeClass name for system pods.
    DEFAULT_SYSTEM_CC_NAME="system-default-computeclass"
    
    # The YAML manifest for the recommended default ComputeClass for system pods.
    read -r -d '' DEFAULT_CC_YAML << EOF
    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: ${DEFAULT_SYSTEM_CC_NAME}
    spec:
      nodePoolAutoCreation:
        enabled: true
      whenUnsatisfiable: ScaleUpAnyway
      priorities:
      - machineFamily: t2d
    EOF
    
    # The label key to apply to namespaces.
    LABEL_KEY="cloud.google.com/default-compute-class-non-daemonset"
    
    
    # List of GKE system namespaces.
    SYSTEM_NAMESPACES=(
      "kube-system"
      "gke-gmp-system"
      "gmp-system"
      "gke-managed-cim"
      "gke-managed-volumepopulator"
      "gke-managed-checkpointing"
      "gkebackup"
      "gke-managed-lustrecsi"
    )
    
    
    # 1. Ask the user for their choice.
    echo "This script sets a default ComputeClass for GKE system namespaces."
    echo "--------------------------------------------------------------------"
    echo "The following ComputeClass is recommended for system Pods:"
    echo ""
    echo "$DEFAULT_CC_YAML"
    echo "--------------------------------------------------------------------"
    read -p "Do you want to use the recommended ComputeClass? (y/N): " user_choice
    
    CC_TO_APPLY=""
    
    # 2. Process the user's choice.
    if [[ "$user_choice" =~ ^[Yy]$ ]]; then
      # Path 1: User chose YES.
      echo "Installing the recommended default ComputeClass '${DEFAULT_SYSTEM_CC_NAME}'..."
    
      if ! echo "$DEFAULT_CC_YAML" | kubectl apply -f -; then
          # If kubectl apply fails, print an error and exit.
          echo "❌ Error: Failed to create the default ComputeClass. An internal error occurred."
          echo "Check for kubectl permissions or other cluster issues and re-run the script."
          exit 1
      fi
      # If the command succeeded, set the name to be used for labeling.
      CC_TO_APPLY="$DEFAULT_SYSTEM_CC_NAME"
    
    else
      read -p "Specify the name of an existing ComputeClass to set as the default for system Pods: " custom_cc_name
    
      # Validate that the user entered a name.
      while [[ -z "$custom_cc_name" ]]; do
        echo "Error: Name cannot be empty."
        read -p "Specify the name of an existing ComputeClass: " custom_cc_name
      done
    
      # Check if the specified ComputeClass actually exists in the cluster.
      echo "--> Verifying that ComputeClass '${custom_cc_name}' exists..."
      if kubectl get computeclass "$custom_cc_name" > /dev/null 2>&1; then
        echo "Verified."
        CC_TO_APPLY="$custom_cc_name"
      else
        echo "Error: ComputeClass '${custom_cc_name}' doesn't exist in the cluster."
        echo "Create the ComputeClass, and then then re-run this script."
        exit 1
      fi
    fi
    
    echo ""
    echo "Labelling system namespaces with ComputeClass: '${CC_TO_APPLY}'"
    echo "--------------------------------------------------------------------"
    
    # 3. Apply the label to all system namespaces.
    for ns in "${SYSTEM_NAMESPACES[@]}"; do
      # Gracefully handle namespaces that don't exist on this specific cluster.
      if kubectl get namespace "${ns}" > /dev/null 2>&1; then
        echo "--> Applying label to namespace: ${ns}"
        kubectl label namespace "${ns}" \
          "${LABEL_KEY}=${CC_TO_APPLY}" --overwrite
      else
        echo "--> Skipping namespace ${ns} (does not exist)"
      fi
    done
    
    echo ""
    echo "✅ Script finished successfully."
  2. 스크립트를 실행합니다.

    ./unset-system-cc.sh
    

클러스터의 기본 컴퓨팅 클래스 구성

이 섹션에서는 ComputeClass를 클러스터의 기본값으로 설정하는 방법을 보여줍니다. 클러스터 수준 기본 ComputeClass의 경우 클러스터의 기존 노드 풀에 노드 taint와 노드 라벨을 수동으로 지정하지 마세요. GKE는 ComputeClass의 노드 taint가 있는 노드 풀을 확장하지 않습니다. default ComputeClass의 라벨을 수동으로 추가하면 GKE가 해당 노드 풀을 확장할 수 있습니다. 하지만 기본 클러스터 수준 컴퓨팅 클래스를 사용하는 데 이 수동 구성이 필요한 것은 아닙니다.

  1. 클러스터의 클러스터 수준 기본 ComputeClass를 설정하려면 --enable-default-compute-class 플래그와 함께 gcloud container clusters update 명령어를 실행합니다.

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-default-compute-class
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터 이름입니다.
    • CONTROL_PLANE_LOCATION: 클러스터 컨트롤 플레인의 위치입니다(예: us-central1).

    Autopilot 또는 Standard 클러스터를 만들 때 이 플래그를 지정할 수도 있습니다.

  2. default이라는 ComputeClass를 정의하는 다음 매니페스트를 저장합니다.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: default
    spec:
      priorities:
      - machineFamily: n4
      - machineFamily: n2
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    이 예시 매니페스트는 N4 인스턴스를 사용하는 노드를 요청합니다. N4 인스턴스를 사용할 수 없는 경우 ComputeClass는 대신 N2 인스턴스를 요청합니다. ComputeClass CustomResourceDefinition에서 사용 가능한 필드를 사용하여 default ComputeClass를 구성할 수 있습니다.

  3. 매니페스트를 클러스터에 적용합니다.

    kubectl apply -f PATH_TO_MANIFEST
    

    PATH_TO_MANIFEST을 ComputeClass 매니페스트의 경로로 바꿉니다.

클러스터 수준 기본 ComputeClass를 설정하면 GKE는 다음 요구사항을 모두 충족하는 노드 풀을 확장합니다.

  • 노드 구성은 default ComputeClass의 구성과 동일합니다.
  • 노드 풀에 다른 ComputeClass의 taint 또는 라벨이 없습니다. GKE는 default ComputeClass의 taint와 라벨이 있는 노드 풀을 확장할 수 있습니다.

예를 들어 default ComputeClass가 N4 머신 시리즈를 지정하는 경우 GKE는 N4 인스턴스를 사용하고 다른 ComputeClass의 테인트나 라벨이 없는 기존 노드 풀을 확장할 수 있습니다.

변경사항은 아직 ComputeClass가 없는 클러스터의 모든 새 포드에 적용됩니다. 클러스터 수준 기본 ComputeClass의 활성 마이그레이션 설정에 따라 기존 Pod가 영향을 받을 수 있습니다. 자세한 내용은 기본 ComputeClass의 활성 마이그레이션을 참고하세요.

기본 ComputeClass 동작 확인

네임스페이스 또는 클러스터에 설정한 기본 ComputeClass가 예상대로 작동하는지 확인하려면 다음 단계를 따르세요.

  1. 다음 배포 예를 검토하세요.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
          tier: web
      template:
        metadata:
          labels:
            app: hello
            tier: web
        spec:
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: 200m

    이 배포는 ComputeClass를 명시적으로 요청하지 않습니다.

  2. 배포를 만듭니다.

    kubectl apply --namespace=NAMESPACE_NAME \
        -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/refs/heads/main/quickstarts/hello-app/manifests/helloweb-deployment.yaml
    

    확인하려는 내용에 따라 NAMESPACE_NAME를 다음 중 하나로 바꿉니다.

    • 기본 ComputeClass가 있는 네임스페이스의 이름입니다.
    • 기본 ComputeClass가 없는 네임스페이스의 이름입니다.

    GKE에서 포드를 실행하기 위해 새 노드를 만드는 데 시간이 걸릴 수 있습니다.

  3. 예시 배포에서 포드를 실행하는 노드를 식별합니다.

    kubectl get pods --namespace=NAMESPACE_NAME \
        --selector=app=hello -o=wide
    

    출력은 다음과 비슷합니다.

    NAME                        READY   STATUS    RESTARTS   AGE     IP          NODE                                                  NOMINATED NODE   READINESS GATES
    helloweb-7795fbf856-58n5l   1/1     Running   0          9m21s   10.52.2.3   gke-cluster-1-nap-n2-highcpu-2-3muqi8-f213e529-rx7d   <none>           <none>
    
  4. 노드 라벨을 가져옵니다.

    kubectl get node NODE_NAME --show-labels \
        | grep "cloud.google.com/compute-class"
    

    NODE_NAME을 이전 단계의 출력에 있는 노드 이름으로 바꿉니다.

    출력은 다음과 비슷합니다.

    NODE_NAME   Ready    <none>   22m   v1.32.4-gke.1236007
    # lines are omitted from this output
    cloud.google.com/compute-class=COMPUTECLASS_NAME,cloud.google.com/gke-boot-disk=pd-balanced,cloud.google.com/gke-container-runtime=containerd
    

    COMPUTECLASS_NAME의 값은 다음 중 하나입니다.

    • 클러스터 수준 기본 ComputeClass: GKE Autopilot 또는 노드 풀 자동 생성으로 생성된 노드의 경우 default 기존 수동으로 생성된 노드 풀의 노드에는 cloud.google.com/compute-class 라벨이 없을 수 있습니다.
    • 네임스페이스 수준 기본 ComputeClass: 네임스페이스 기본값으로 구성한 ComputeClass의 이름입니다.

기본 ComputeClass 사용 중지

네임스페이스 또는 클러스터에서 기본 ComputeClass를 사용 중지하려면 다음 중 하나를 실행하세요.

  • 모든 포드의 네임스페이스 수준 기본 ComputeClass를 사용 중지하려면 네임스페이스에서 cloud.google.com/default-compute-class 라벨을 삭제합니다.

    kubectl label namespaces NAMESPACE_NAME \
      cloud.google.com/default-compute-class-
    

    라벨 키 끝에 있는 - 문자는 Kubernetes API의 Namespace 객체에서 해당 키가 있는 라벨을 삭제합니다.

  • DaemonSet이 아닌 포드의 네임스페이스 수준 기본 ComputeClass를 사용 중지하려면 네임스페이스에서 cloud.google.com/default-compute-class-non-daemonset 라벨을 삭제하세요.

    kubectl label namespaces NAMESPACE_NAME \
      cloud.google.com/default-compute-class-non-daemonset-
    
  • 클러스터 수준 기본 ComputeClass를 사용 중지하려면 gcloud container clusters update 명령어를 --no-enable-default-compute-class 플래그와 함께 사용합니다.

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --no-enable-default-compute-class
    

다음 단계