Menerapkan ComputeClass ke Pod secara default

Dokumen ini menunjukkan cara menerapkan ComputeClass secara default ke Pod Google Kubernetes Engine (GKE) yang tidak secara eksplisit memilih ComputeClass. Anda dapat menetapkan ComputeClass sebagai default untuk namespace atau untuk seluruh cluster. Dokumen ini ditujukan bagi administrator cluster yang ingin mengurangi overhead manual yang disebabkan oleh konfigurasi workload dan node individual.

Anda seharusnya sudah memahami ComputeClass kustom.

Tentang ComputeClass default

Anda dapat mengonfigurasi cluster GKE atau namespace tertentu agar memiliki ComputeClass default. Class default yang Anda konfigurasi berlaku untuk Pod apa pun di cluster atau namespace tersebut yang tidak memilih ComputeClass lain. Saat Anda men-deploy Pod yang tidak memilih ComputeClass, GKE akan menerapkan ComputeClass default dalam urutan berikut:

  1. Jika namespace memiliki ComputeClass default, GKE akan mengubah spesifikasi Pod untuk memilih ComputeClass tersebut.
  2. Jika namespace tidak memiliki ComputeClass default, class default tingkat cluster akan diterapkan. GKE tidak mengubah spesifikasi Pod.

Saat Anda menetapkan ComputeClass default untuk cluster atau namespace, perubahan Anda hanya berlaku untuk Pod baru. Pod yang ada tidak akan terpengaruh hingga Pod dibuat ulang. Perilaku ini berlaku meskipun ComputeClass Anda mengaktifkan migrasi aktif.

Jika ComputeClass default Anda memiliki kolom activeMigration.optimizeRulePriority yang ditetapkan ke true, setelan ini dapat memengaruhi workload di cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Migrasi aktif di ComputeClass default.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang dijalankan dalam dokumen ini.
  • Memiliki cluster GKE Autopilot atau Standard yang menjalankan versi yang mendukung penetapan ComputeClass default di tingkat cluster atau namespace. Untuk mengetahui informasi selengkapnya, lihat bagian Persyaratan.
  • Jika Anda menggunakan cluster mode Standard, pastikan Anda memenuhi salah satu persyaratan berikut:

  • Jika Anda ingin menetapkan ComputeClass kustom sebagai default untuk namespace, deploy ComputeClass kustom.

Persyaratan

  • Untuk menetapkan ComputeClass sebagai default tingkat cluster, cluster harus menjalankan GKE versi 1.33.1-gke.1744000 atau yang lebih baru.
  • Untuk menetapkan ComputeClass sebagai default tingkat namespace hanya untuk Pod non-DaemonSet, cluster harus menjalankan GKE versi 1.33.1-gke.1788000 atau yang lebih baru.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi ComputeClass default tingkat cluster atau namespace, minta administrator Anda untuk memberikan peran IAM berikut pada Cloud de Confiance project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi ComputeClass default tingkat cluster atau namespace. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengonfigurasi ComputeClass default tingkat cluster atau namespace:

  • 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
  • Menambahkan label ke namespace: container.namespaces.update
  • Mengaktifkan ComputeClass default tingkat cluster: container.clusters.update

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Mengonfigurasi ComputeClass default untuk namespace

Anda dapat memberi anotasi pada namespace Kubernetes apa pun di cluster Anda dengan nama ComputeClass yang akan digunakan sebagai default. Jika Pod yang di-deploy ke namespace tersebut belum memilih ComputeClass, GKE akan mengubah spesifikasi Pod untuk memilih class default di namespace. Anda dapat menetapkan ComputeClass kustom atau bawaan apa pun sebagai default.

  • Untuk menerapkan ComputeClass ke semua Pod di namespace secara default, tambahkan label cloud.google.com/default-compute-class ke namespace tersebut:

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

    Ganti kode berikut:

    • NAMESPACE_NAME: nama namespace yang akan diperbarui.
    • COMPUTECLASS_NAME: nama ComputeClass yang akan ditetapkan sebagai default untuk namespace.

    Jika perintah gagal dengan pesan error berikut, namespace sudah memiliki ComputeClass default:

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

    Untuk mengatasi error ini, perbarui ComputeClass default untuk namespace.

  • Untuk menerapkan ComputeClass ke semua Pod non-DaemonSet di namespace secara default, tambahkan label cloud.google.com/default-compute-class-non-daemonset ke namespace tersebut:

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

    Jika perintah gagal dengan pesan error berikut, namespace sudah memiliki ComputeClass default untuk Pod non-DaemonSet:

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

    Untuk mengatasi error ini, perbarui ComputeClass default untuk namespace.

Perubahan Anda berlaku untuk Pod baru di namespace tersebut. Pod yang ada tidak akan terpengaruh.

Memperbarui ComputeClass default yang ada di namespace

Untuk mengganti ComputeClass default yang ada untuk namespace, jalankan salah satu perintah berikut:

  • Memperbarui ComputeClass default untuk semua Pod di namespace:

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

    Ganti kode berikut:

    • NAMESPACE_NAME: nama namespace yang akan diperbarui.
    • COMPUTECLASS_NAME: nama ComputeClass yang akan ditetapkan sebagai default baru untuk namespace.
  • Mengganti ComputeClass default untuk Pod non-DaemonSet di namespace:

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

Mengonfigurasi ComputeClass default untuk namespace sistem

GKE menggunakan namespace sistem untuk menjalankan berbagai workload terkelola, seperti agen pemantauan. Beberapa workload terkelola ini adalah DaemonSet, yang harus berjalan di setiap node dalam cluster untuk menyediakan fungsi penting. Namun, Anda dapat menentukan ComputeClass default untuk Pod non-DaemonSet di namespace sistem, sehingga Pod tersebut berjalan terpisah dari workload Anda.

Untuk menetapkan ComputeClass default untuk namespace sistem, ikuti langkah-langkah berikut:

  1. Simpan skrip berikut sebagai apply-system-cc.sh. Skrip ini memungkinkan Anda menerapkan ComputeClass yang direkomendasikan atau ComputeClass yang sudah ada ke namespace sistem.

    #!/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."

    Skrip ini menggunakan label cloud.google.com/default-compute-class-non-daemonset, yang hanya memengaruhi Pod non-DaemonSet di namespace sistem.

  2. Jalankan skrip:

    ./apply-system-cc.sh
    

Setelah skrip selesai, semua Pod sistem non-DaemonSet baru akan menggunakan ComputeClass yang ditentukan secara default, kecuali jika sudah memiliki ComputeClass. Pod yang ada di namespace tersebut tidak akan terpengaruh. Jika GKE menambahkan namespace sistem baru, jalankan skrip ini lagi untuk menerapkan perubahan pada namespace tersebut.

Untuk membatalkan penetapan ComputeClass default untuk namespace sistem, ikuti langkah-langkah berikut:

  1. Simpan skrip berikut sebagai 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. Jalankan skrip:

    ./unset-system-cc.sh
    

Mengonfigurasi ComputeClass default untuk cluster

Anda dapat menetapkan ComputeClass kustom apa pun sebagai default untuk seluruh cluster. Proses ini melibatkan pengaktifan ComputeClass default tingkat cluster di cluster Anda, lalu membuat ComputeClass yang diberi nama default. Anda bahkan dapat memperoleh perilaku ComputeClass Autopilot bawaan dengan menentukan aturan prioritas yang sama di ComputeClass yang diberi nama default.

Anda harus melakukan kedua langkah berikut untuk menggunakan ComputeClass default dengan benar di cluster Anda:

  1. Untuk mengaktifkan penetapan ComputeClass default tingkat cluster, gunakan flag --enable-default-compute-class saat Anda membuat atau memperbarui cluster:

    • Membuat cluster:

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

      Ganti kode berikut:

      • CLUSTER_NAME: nama untuk cluster Anda.
      • CONTROL_PLANE_LOCATION: lokasi bidang kontrol cluster Anda, seperti us-central1.
    • Memperbarui cluster:

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

      Ganti kode berikut:

      • CLUSTER_NAME: nama cluster Anda.
      • CONTROL_PLANE_LOCATION: lokasi bidang kontrol cluster Anda, seperti us-central1.

    Setelah Anda menyelesaikan langkah ini, GKE akan mencari ComputeClass bernama default di cluster Anda. Anda tidak akan melihat perubahan apa pun pada workload hingga Anda menyiapkan ComputeClass default.

  2. Buat ComputeClass yang diberi nama default, seperti dalam contoh berikut:

    • ComputeClass berikut meminta seri mesin tertentu:

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

      ComputeClass ini meminta node yang menggunakan instance N4. Jika instance N4 tidak tersedia, ComputeClass akan meminta instance N2 sebagai gantinya. Anda dapat mengonfigurasi ComputeClass defaultdengan salah satu kolom yang tersedia di dalam ComputeClass CustomResourceDefinition.

    • ComputeClass berikut meminta platform komputasi yang dioptimalkan untuk container Autopilot:

      apiVersion: cloud.google.com/v1
      kind: ComputeClass
      metadata:
        name: default
      spec:
        autopilot:
          enabled: true
        priorities:
        - podFamily: general-purpose
        whenUnsatisfiable: ScaleUpAnyway
      

      ComputeClass ini cocok dengan perilaku ComputeClass bawaan autopilot, kecuali kolom whenUnsatisfiable, yang memiliki nilai ScaleUpAnyway, bukan DoNotScaleUp. Modifikasi ini membantu mencegah situasi saat Pod yang menggunakan pemilih node untuk hardware tertentu tetap dalam status tertunda karena ComputeClass default tingkat cluster diterapkan ke Pod tersebut.

      Aturan prioritas podFamily menempatkan Pod di platform komputasi yang dioptimalkan untuk container Autopilot. Aturan prioritas ini memerlukan GKE versi 1.35.2-gke.1485000 atau yang lebih baru.

  3. Buat ComputeClass default di cluster Anda:

    kubectl apply -f PATH_TO_MANIFEST
    

    Ganti PATH_TO_MANIFEST dengan jalur ke manifes untuk ComputeClass.

  4. Opsional: Jika cluster Standard Anda sudah memiliki node pool yang dibuat secara manual dan Anda gunakan sebagai default untuk workload tujuan umum, Anda dapat memindahkan workload tersebut untuk dijalankan dalam mode Autopilot setelah Anda menetapkan ComputeClass Autopilot sebagai default tingkat cluster. Untuk memindahkan workload tersebut, cordon dan kosongkan semua node di node pool. GKE menggunakan ComputeClass default tingkat cluster untuk menjadwalkan Pod tertunda yang baru.

Setelah Anda menetapkan ComputeClass default tingkat cluster, GKE akan menskalakan node pool yang memenuhi kedua persyaratan berikut:

  • Konfigurasi node sama dengan konfigurasi ComputeClass default.
  • Node pool tidak memiliki taint atau label untuk ComputeClass lain. GKE dapat menskalakan node pool yang memiliki taint dan label untuk ComputeClass default.

Misalnya, jika ComputeClass default menentukan seri mesin N4, GKE dapat menskalakan node pool yang ada yang menggunakan instance N4 dan tidak memiliki taint atau label untuk ComputeClass lain.

Perubahan Anda berlaku untuk semua Pod baru di cluster yang belum memiliki ComputeClass. Pod yang ada mungkin terpengaruh, bergantung pada setelan migrasi aktif ComputeClass default tingkat cluster. Untuk mengetahui informasi selengkapnya, lihat Migrasi aktif di ComputeClass default.

Memverifikasi perilaku ComputeClass default

Untuk memeriksa apakah ComputeClass default yang Anda tetapkan untuk namespace atau untuk cluster berfungsi seperti yang diharapkan, lakukan hal berikut:

  1. Tinjau contoh Deployment berikut:

    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

    Deployment ini tidak secara eksplisit meminta ComputeClass.

  2. Buat Deployment:

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

    Ganti NAMESPACE_NAME dengan salah satu hal berikut, bergantung pada hal yang ingin Anda verifikasi:

    • Nama namespace yang memiliki ComputeClass default.
    • Nama namespace yang tidak memiliki ComputeClass default.

    GKE mungkin memerlukan waktu untuk membuat node baru guna menjalankan Pod.

  3. Identifikasi node yang menjalankan Pod dari contoh Deployment:

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

    Outputnya mirip dengan hal berikut ini:

    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. Dapatkan label node:

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

    Ganti NODE_NAME dengan nama node dari output langkah sebelumnya.

    Outputnya mirip dengan hal berikut ini:

    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
    

    Nilai dalam COMPUTECLASS_NAME adalah salah satu hal berikut:

    • ComputeClass default tingkat cluster: default untuk node yang dibuat oleh GKE Autopilot atau oleh pembuatan otomatis node pool. Node di node pool yang dibuat secara manual mungkin tidak memiliki label cloud.google.com/compute-class.
    • ComputeClass default tingkat namespace: nama ComputeClass yang Anda konfigurasi sebagai default namespace.

Menonaktifkan ComputeClass default

Untuk menonaktifkan ComputeClass default di namespace atau cluster, lakukan salah satu hal berikut:

  • Untuk menonaktifkan ComputeClass default tingkat namespace untuk semua Pod, hapus label cloud.google.com/default-compute-class dari namespace:

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

    Karakter - di akhir kunci label akan menghapus label apa pun dengan kunci tersebut dari objek Namespace di Kubernetes API.

  • Untuk menonaktifkan ComputeClass default tingkat namespace untuk Pod non-DaemonSet, hapus label cloud.google.com/default-compute-class-non-daemonset dari namespace:

    kubectl label namespaces NAMESPACE_NAME \
      cloud.google.com/default-compute-class-non-daemonset-
    
  • Untuk menonaktifkan ComputeClass default tingkat cluster, gunakan perintah gcloud container clusters update dengan flag --no-enable-default-compute-class:

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

Langkah berikutnya