Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan cara menyesuaikan komponen sistem milik Google di cluster terlampir GKE dengan menerapkan toleransi dan label kustom. Saat menyesuaikan komponen ini, Anda dapat mengelola secara lebih tepat di mana dan bagaimana komponen ini beroperasi dalam lingkungan Anda.
Ringkasan
Saat Anda melampirkan cluster ke Google Cloud, secara default, komponen sistem milik Google tidak menyertakan kolom yang dapat disesuaikan seperti toleransi. Akibatnya, Anda mungkin mengalami masalah seperti Pod yang gagal dijadwalkan di node yang tersedia, yang memengaruhi keseluruhan lampiran dan fungsi cluster. Selain itu, Anda mungkin memerlukan
kontrol atas penempatan dan pengelolaan komponen pada node tertentu yang mencakup
kemampuan untuk menerapkan label kustom untuk tujuan organisasi dan operasional.
Menyesuaikan komponen sistem akan menyelesaikan masalah ini dan memungkinkan Anda memiliki kontrol dan fleksibilitas yang lebih besar atas cara pengoperasian komponen ini di cluster Anda. Anda
dapat menerapkan toleransi dan label kustom ke komponen sistem milik Google:
Toleransi memberikan kemampuan bagi komponen Google untuk menjadwalkan ke node yang memiliki taint Kubernetes tertentu, yang memungkinkan Anda menerapkan pemisahan workload atau menggunakan node pool khusus. Toleransi kustom secara langsung menyelesaikan masalah saat taint yang tidak dapat diubah mencegah penempatan komponen yang tepat.
Label menawarkan cara yang fleksibel bagi Anda untuk mengategorikan dan mengidentifikasi komponen sistem Google sesuai dengan standar operasional Anda sendiri. Label kustom memungkinkan integrasi yang lebih baik dengan alat pemantauan, logging, dan penerapan kebijakan yang ada.
Batas dan pembatasan
Batasan dan batasan berikut berlaku:
Anda hanya dapat menambahkan toleransi dan label kustom saat mendaftarkan cluster.
Anda dapat menambahkan hingga 10 toleransi kustom dan 10 label kustom ke cluster Anda.
Anda tidak dapat menggunakan label berikut:
name
component
app
Label apa pun yang menyertakan k8s.io atau kubernetes.io karena termasuk dalam
label yang dicadangkan di Kubernetes
Label apa pun yang menyertakan google
Label apa pun yang menyertakan gke.io
Menambahkan toleransi kustom
Pod komponen sistem milik Google selalu menyertakan toleransi berikut:
GOOGLE_CLOUD_REGION: Google Cloud region untuk mengelola cluster Anda.
COMPONENT_TOLERATION: daftar toleransi yang dipisahkan koma yang ingin Anda tambahkan. Anda dapat memberikan kunci, nilai, operator, dan
efek dalam format berikut:
Untuk operator Equal: gunakan format key=value:operator:effect, misalnya, workload=hpc:Equal:NoSchedule. Setelan ini berarti Pod
mentoleransi taint hanya jika taint memiliki kunci dan nilai yang sama persis dengan
workload=hpc.
Untuk operator Exists: gunakan format key:operator:effect, misalnya, workload:Exists:NoSchedule. Setelan ini berarti Pod
mentoleransi taint apa pun dengan kunci workload pada node, terlepas dari
nilainya.
Untuk penjadwalan di node mana pun: gunakan format :operator:effect, misalnya, :Exists:NoSchedule. Setelan ini berarti Pod mentoleransi
taint apa pun pada node yang memiliki efek NoSchedule, dan
mengabaikan kunci atau nilai taint.
Untuk mengetahui daftar operator dan efek yang dapat Anda gunakan, lihat Taint dan Toleransi dalam dokumentasi Kubernetes.
Menambahkan label khusus
Untuk menentukan label kustom, tambahkan tanda --system-component-labels ke perintah
gcloud container attached clusters register:
GOOGLE_CLOUD_REGION: Google Cloud region untuk mengelola cluster Anda.
COMPONENT_LABEL: daftar yang dipisahkan koma dari satu atau beberapa
label yang ingin Anda tambahkan. Anda memberikan label dan nilai dalam format
key=value. Misalnya, env=production,region=us-east-1. Meskipun setiap label harus memiliki kunci, nilai yang terkait dengan kunci tersebut dapat kosong. Contoh,
backend="".
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-14 UTC."],[],[],null,["# Customize system components on AKS clusters\n\n| **Preview**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nThis page describes how to customize Google-owned system components in your\nGKE attached clusters by applying custom tolerations and labels. When you\ncustomize these components, you have more precise management of where and how\nthese components operate within your environment.\n\nOverview\n--------\n\nWhen you attach a cluster to Google Cloud, by default, Google-owned system\ncomponents don't include customizable fields such as tolerations. As a result,\nyou might experience issues such as Pods failing to schedule on available nodes, which\nimpact overall cluster attachment and functionality. Additionally, you might require\ncontrol over placing and managing components on specific nodes that include the\nability to apply custom labels for organizational and operational purposes.\n\nCustomizing system components resolves these issues and lets you have more\ncontrol and flexibility over how these components operate in your cluster. You\ncan apply custom *tolerations* and *labels* to Google-owned system components:\n\n- **Tolerations** provide the ability for Google's components to schedule onto\n nodes that have specific Kubernetes taints, which lets you enforce workload\n separation or use specialized node pools. Custom tolerations directly resolve\n issues where unmodifiable taints prevent proper component placement.\n\n- **Labels** offer a flexible way for you to categorize and identify Google's\n system components according to your own operational standards. Custom labels\n enable better integration with your existing monitoring, logging, and policy\n enforcement tools.\n\nRestrictions and limitations\n----------------------------\n\nThe following restrictions and limitations apply:\n\n- You can only add custom tolerations and labels when you [register your cluster](/kubernetes-engine/multi-cloud/docs/attached/aks/how-to/attach-cluster#attach_your_aks_cluster).\n- You can add up to 10 custom tolerations and 10 custom labels to your cluster.\n- You *can't* use the following labels:\n\n - `name`\n - `component`\n - `app`\n - Any label which includes `k8s.io` or `kubernetes.io` since they belong to reserved labels in Kubernetes\n - Any label which includes `google`\n - Any label which includes `gke.io`\n\nAdd custom tolerations\n----------------------\n\nGoogle-owned system component Pods always include the following toleration: \n\n - key: components.gke.io/gke-managed-components\n operator: Exists\n\nTo specify custom tolerations, add the `--system-component-tolerations` flag to the\n[`gcloud container attached clusters register`](/sdk/gcloud/reference/container/attached/clusters/register) command: \n\n gcloud container attached clusters register \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --location=\u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_REGION\u003c/var\u003e \\\n ...\n --system-component-tolerations=\u003cvar translate=\"no\"\u003eCOMPONENT_TOLERATION\u003c/var\u003e \\\\\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of your cluster.\n- \u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_REGION\u003c/var\u003e: the Google Cloud region to administer your cluster from.\n- \u003cvar translate=\"no\"\u003eCOMPONENT_TOLERATION\u003c/var\u003e: the comma-separated list of the\n tolerations that you want to add. You can provide a key, value, operator, and\n effect in the following formats:\n\n - **For the `Equal` operator** : use the format `key=value:operator:effect`, for example, `workload=hpc:Equal:NoSchedule`. This setting means that the Pod tolerates a taint only if the taint has the exact key and value of `workload=hpc`.\n - **For the `Exists` operator** : use the format `key:operator:effect`, for example, `workload:Exists:NoSchedule`. This setting means that the Pod tolerates any taint with the `workload` key on the node, regardless of the value.\n - **For scheduling on any node** : use the format `:operator:effect`, for example, `:Exists:NoSchedule`. This setting means that the Pod tolerates any taint on the node that has the effect `NoSchedule`, and ignores the key or value of the taint.\n\n For a list of operators and effects that you\n can use, see [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/)\n in the Kubernetes documentation.\n\nAdd custom labels\n-----------------\n\nTo specify custom labels, add the `--system-component-labels` flag to the\n`gcloud container attached clusters register` command: \n\n gcloud container attached clusters register \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --location=\u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_REGION\u003c/var\u003e \\\n ...\n --system-component-labels=\u003cvar translate=\"no\"\u003eCOMPONENT_LABEL\u003c/var\u003e \\\\\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of your cluster.\n- \u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_REGION\u003c/var\u003e: the Google Cloud region to administer your cluster from.\n- \u003cvar translate=\"no\"\u003eCOMPONENT_LABEL\u003c/var\u003e: the comma-separated list of one or more labels that you want to add. You provide a label and value in the format of `key=value`. For example, `env=production,region=us-east-1`. Although every label must have a key, the value associated with that key can be empty. For example, `backend=\"\"`.\n\nWhat's next\n-----------\n\n- Learn more about [Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) in the Kubernetes documentation.\n- Learn how to [attach your AKS cluster](/kubernetes-engine/multi-cloud/docs/attached/aks/how-to/attach-cluster)."]]