Halaman ini menyediakan ringkasan label cluster dan label node pool di Google Kubernetes Engine (GKE).
Label node pool dan cluster GKE serta label Kubernetes
Label cluster GKE dan node pool berbeda dengan label di Kubernetes. Kedua sistem pelabelan bekerja secara independen dan tidak mewarisi atau berbagi label.
Label cluster GKE dan node pool adalah metadata arbitrer yang dilampirkan ke resource Anda, yang dapat digunakan untuk melacak informasi penggunaan dan penagihan.
Secara terpisah, di Kubernetes, sistem menggunakan label secara internal untuk mengaitkan komponen cluster dan resource (misalnya, Pod dan node) satu sama lain dan mengelola siklus proses resource. Anda dapat mengedit label Kubernetes dengan Kubernetes API. Anda juga dapat menggunakan GKE API untuk mengedit label Kubernetes pada node Anda dengan pembuatan cluster atau dengan update cluster.
Apa itu label cluster?
Label cluster adalah pasangan nilai kunci yang dapat Anda tetapkan ke cluster Google Cloud. Label membantu Anda mengatur resource ini dan mengelola biaya dalam skala besar, dengan perincian yang Anda butuhkan. Anda dapat melampirkan label ke setiap resource, lalu memfilter resource berdasarkan labelnya. Informasi tentang label diteruskan ke sistem penagihan, sehingga Anda dapat mengelompokkan tagihan biaya berdasarkan label. Dengan laporan penagihan bawaan, Anda dapat memfilter dan mengelompokkan biaya berdasarkan label resource. Anda juga dapat menggunakan label untuk membuat kueri ekspor data penagihan.
Persyaratan untuk label cluster
Label cluster yang diterapkan ke resource harus memenuhi persyaratan berikut:
- Setiap resource dapat memiliki hingga 64 label cluster.
- Setiap label cluster harus berupa pasangan nilai kunci.
- Kunci memiliki panjang minimum 1 karakter dan panjang maksimum 63 karakter, serta tidak boleh kosong. Nilai boleh kosong dan memiliki panjang maksimum 63 karakter.
- Kunci dan nilai hanya boleh berisi huruf kecil, karakter numerik, garis bawah, dan tanda pisah. Semua karakter harus menggunakan encoding UTF-8, dan boleh menggunakan karakter internasional. Kunci harus diawali dengan huruf kecil atau karakter internasional.
- Bagian kunci dari label cluster harus unik dalam satu resource. Namun, Anda dapat menggunakan kunci yang sama dengan beberapa resource.
Batasan ini berlaku untuk kunci dan nilai untuk setiap label cluster, serta untuk setiap resource Google Cloud yang memiliki label cluster. Tidak ada batasan jumlah label cluster yang dapat Anda terapkan di semua resource dalam sebuah project.
Penggunaan umum label cluster
Berikut adalah beberapa kasus penggunaan umum untuk label cluster:
Label cluster pusat biaya atau tim: Tambahkan label berdasarkan tim atau pusat biaya untuk membedakan cluster yang dimiliki oleh tim yang berbeda (misalnya,
team:research
danteam:analytics
). Anda dapat menggunakan jenis label ini untuk akuntansi atau penganggaran biaya.Label cluster komponen: Misalnya,
component:redis
,component:frontend
,component:ingest
, dancomponent:dashboard
.Label cluster lingkungan atau tahap: Misalnya,
environment:production
danenvironment:test
.Label cluster status: Misalnya,
state:active
,state:readytodelete
, danstate:archive
.Label cluster kepemilikan: Digunakan untuk mengidentifikasi tim yang bertanggung jawab atas operasi, misalnya:
team:shopping-cart
.
- Perincian penagihan: Gunakan label node pool untuk mengelompokkan biaya yang ditagih berdasarkan node pool. Untuk informasi lebih lanjut, baca bagian Melihat perincian mendetail tentang biaya cluster.
Sebaiknya Anda tidak membuat label unik dalam jumlah besar, seperti untuk stempel waktu atau nilai individual bagi setiap panggilan API. Masalah dari pendekatan ini adalah ketika nilai sering berubah atau dengan kunci yang mengacaukan katalog, ini akan menyulitkan pemfilteran dan pelaporan resource secara efektif.
Label dan tag
Label dapat digunakan sebagai anotasi yang dapat dikueri untuk resource, tetapi tidak dapat digunakan untuk menetapkan kondisi pada kebijakan. Tag menyediakan cara untuk mengizinkan atau menolak kebijakan secara bersyarat berdasarkan apakah resource memiliki tag tertentu, dengan memberikan kontrol terperinci atas kebijakan. Untuk informasi selengkapnya, lihat Ringkasan tag.
Label yang diterapkan secara otomatis
GKE secara otomatis menerapkan beberapa label ke resource cluster.
Misalnya, GKE menerapkan label ke instance Compute Engine, persistent disk, dan akselerator (TPU).
Tabel berikut mencantumkan label yang otomatis diterapkan GKE ke resource:
Label | Referensi yang Diterapkan |
---|---|
goog-gke-node |
Instance VM Compute Engine yang mendasari node GKE. |
goog-gke-volume |
Persistent disk Compute Engine yang dipasang ke instance VM yang mendasari node GKE. |
goog-gke-tpu |
Cloud TPU di GKE. |
goog-k8s-cluster-name |
Instance VM Compute Engine dan persistent disk yang dipasang ke instance VM yang mendasari node GKE. |
goog-k8s-cluster-location |
Instance VM Compute Engine dan persistent disk yang dipasang ke instance VM yang mendasari node GKE. |
goog-k8s-node-pool-name |
Instance VM Compute Engine dan boot disk-nya yang mendasari node GKE. |
goog-fleet-project |
Instance VM Compute Engine dan persistent disk yang dipasang ke instance VM yang mendasari node GKE, jika cluster didaftarkan ke fleet. |
Jangan mengedit atau menghapus label yang dicadangkan. Setiap perubahan yang Anda buat pada label yang dicadangkan akan direkonsiliasi secara otomatis.
Penyebaran label
Di GKE, Anda dapat menerapkan label ke cluster dan ke node pool Mode standar. Saat Anda memberi label pada sebuah cluster, label tersebut akan diterapkan ke semua resource individual cluster seperti node, instance, dan persistent disk. Saat Anda memberi label pada node pool, label akan diterapkan ke semua resource individual node pool seperti instance dan persistent disk. Di cluster Standar, jika label cluster bertentangan dengan label node pool, seperti saat kunci label sama tetapi nilainya berbeda, label node pool akan menggantikan label cluster.
Setiap label yang Anda terapkan ke cluster atau node pool akan disebarkan melalui proses latar belakang yang berjalan setiap jam. Diperlukan waktu hingga satu jam agar label muncul di semua resource yang terkait dengan cluster tertentu. Selain itu, label hanya disebarkan ke instance Compute Engine dan Persistent Disk yang terpasang ke instance Compute Engine. Resource lain seperti beban kerja, aturan penerusan, alamat IP, dan Persistent Disk yang tidak terpasang tidak diberi label.
Untuk cluster Standar, saat label cluster dan node pool diterapkan ke resource Compute Engine, Anda dapat mengubah label resource secara manual tanpa merekonsiliasi perubahan tersebut oleh GKE. Dalam cluster Autopilot, Anda tidak dapat mengubah label secara manual pada resource Compute Engine karena GKE mengelola node untuk Anda. Namun, sebaiknya kelola label ini melalui GKE. Label yang sudah ada di resource Compute Engine tersebut tidak akan dihapus oleh GKE kecuali jika label tersebut bertentangan dengan label yang diterapkan secara otomatis.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan 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
gcloud components update
.
Mendapatkan sidik jari label untuk permintaan API
Langkah ini dapat dilewati jika Anda menggunakan Google Cloud Console atau gcloud CLI.
Saat mengupdate atau menambahkan label cluster menggunakan GKE API, Anda harus memberikan sidik jari label cluster terbaru dengan permintaan Anda untuk mencegah konflik dengan permintaan lainnya.
Untuk mendapatkan sidik jari label cluster terbaru, jalankan permintaan GET
untuk cluster yang sesuai. Contoh:
GET https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster
Outputnya mirip dengan hal berikut ini:
200 OK
{
"name": "mycluster",
"description": "production-cluster",
"initialNodeCount": 3,
...
"resourceLabels": {
"environment": "production",
...
},
"labelFingerprint": "p1ty_9HoBk0="
}
Dalam output ini, properti labelFingerprint
adalah sidik jari label cluster.
Membuat cluster dengan label
Anda dapat membuat cluster Autopilot dan Standar dengan label menggunakan gcloud CLI, konsol Google Cloud, GKE API, atau Terraform.
gcloud
Jalankan perintah berikut untuk membuat cluster Autopilot dengan label:
gcloud container clusters create-auto CLUSTER_NAME \
--labels=KEY=VALUE
Atau, jalankan perintah berikut untuk membuat cluster Standard dengan label:
gcloud container clusters create CLUSTER_NAME \
--labels=KEY=VALUE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.KEY
: kunci untuk pasangan nilai kunci label.VALUE
: nilai untuk pasangan nilai kunci label.
Konsol
Untuk menambahkan label saat membuat cluster, lakukan hal berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Buat.
Konfigurasikan cluster Anda.
Dari panel navigasi, pada Cluster, klik Metadata.
Klik add Add label.
Tambahkan label.
Klik Create.
API
Untuk menyertakan label saat membuat cluster, tentukan objek resourceLabels
dalam objek cluster
yang Anda berikan ke projects.zones.clusters.create.
Terraform
Untuk membuat cluster Autopilot dengan label menggunakan Terraform, lihat contoh berikut:
Untuk membuat cluster Standard dengan label menggunakan Terraform, lihat contoh berikut:
Untuk mempelajari lebih lanjut cara menggunakan Terraform, lihat Dukungan Terraform untuk GKE.
Menambahkan atau memperbarui label untuk cluster yang ada
Anda dapat menambahkan atau memperbarui label untuk cluster Autopilot dan Standar yang ada menggunakan gcloud CLI, konsol Google Cloud, atau GKE API.
gcloud
Jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--update-labels=KEY=VALUE
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.COMPUTE_REGION
: region Compute Engine untuk cluster baru. Untuk cluster Standar zona, gunakan--zone=COMPUTE_ZONE
.KEY
: kunci untuk pasangan nilai kunci label.VALUE
: nilai untuk pasangan nilai kunci label.
Pembaruan label akan menimpa label yang ada di cluster. Jika cluster memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut bersama dengan label baru yang ingin ditambahkan.
Konsol
Untuk menambahkan atau memperbarui label, lakukan langkah-langkah berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di halaman Cluster details, pilih kotak centang untuk satu atau beberapa cluster yang ingin diubah.
Klik
Labels.Tambahkan atau perbarui label.
Klik Save.
API
Buat permintaan POST
ke metode resourceLabels
cluster dengan sidik jari terbaru dan daftar lengkap label yang akan diterapkan singkat ini.
Serupa dengan metadata dan tag, jika cluster memiliki label yang ingin dipertahankan, Anda harus menyertakan label tersebut dalam permintaan beserta label aru yang ingin ditambahkan.
Misalnya, cuplikan berikut membuat permintaan ke metode resourceLabels
:
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": {
"environment": "production",
"an-existing-tag": ""
},
"labelFingerprint": "42WmSpB8rSM="
}
Menghapus label cluster
Anda dapat menghapus label dari cluster Autopilot dan Standar menggunakan gcloud CLI, Google Cloud Console, atau GKE API.
gcloud
Jalankan perintah update
dengan flag --remove-labels
:
gcloud container clusters update CLUSTER_NAME \
--remove-labels=KEYS
Ganti kode berikut:
CLUSTER_NAME
: nama cluster.KEYS
: daftar kunci yang dipisahkan koma untuk label yang ingin Anda hapus.
Konsol
Untuk menghapus label, lakukan langkah-langkah berikut:
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Dalam daftar cluster, pilih kotak centang untuk satu atau beberapa cluster yang ingin diubah.
Klik
Labels.Klik delete Delete item di samping kolom Value untuk label yang ingin Anda hapus.
Klik Save.
API
Buat permintaan POST
ke metode resourceLabels
untuk cluster yang sesuai. Berikan labelsFingerprint
saat ini dan daftar label kosong untuk menghapus semua label, atau berikan daftar label yang ingin Anda pertahankan, dengan menghilangkan label yang ingin Anda hapus. Contoh:
Request
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": { },
"labelFingerprint": "42WmSpB8rSM="
}
Membuat node pool Standar dengan label
Anda dapat membuat node pool dengan label dalam cluster Standar menggunakan gcloud CLI, Google Cloud Console, atau GKE API.
gcloud
Jalankan perintah berikut:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Ganti kode berikut:
NODE_POOL_NAME
: nama node pool.CLUSTER_NAME
: nama cluster.COMPUTE_REGION
: region Compute Engine untuk cluster Anda. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.KEY
: kunci untuk pasangan nilai kunci label.VALUE
: nilai untuk pasangan nilai kunci label.
API
Untuk menyertakan label saat membuat node pool, tentukan objek resourceLabels
dalam objek node pool yang Anda berikan ke projects.zones.clusters.nodePools.create
.
Konsol
Untuk menambahkan label ke node pool baru, lakukan langkah berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di halaman Cluster details, klik nama cluster yang ingin diubah.
Klik add_box Add Node Pool.
Konfigurasikan node pool baru.
Dari panel navigasi, klik Metadata.
Klik add Add label.
Tambahkan label.
Klik Create.
Menambahkan atau memperbarui label untuk node pool yang ada
Anda dapat menambahkan atau memperbarui label untuk node pool yang ada menggunakan gcloud CLI, Google Cloud Console, atau GKE API.
Perubahan ini memerlukan pembuatan ulang node, yang dapat menyebabkan gangguan pada workload yang sedang berjalan. Untuk mengetahui detail tentang perubahan spesifik ini, temukan baris yang sesuai dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node tanpa mengikuti kebijakan pemeliharaan. Untuk mempelajari update node lebih lanjut, lihat Merencanakan gangguan update node.
gcloud
Jalankan perintah berikut:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Ganti kode berikut:
NODE_POOL_NAME
: nama node poolCLUSTER_NAME
: nama cluster.COMPUTE_REGION
: region Compute Engine untuk cluster Anda. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.KEY
: kunci untuk pasangan nilai kunci label.VALUE
: nilai untuk pasangan nilai kunci label.
Pembaruan label akan menimpa label yang ada di node pool. Jika node pool sudah memiliki label yang ingin Anda pertahankan, Anda harus menyertakan label tersebut bersama dengan label baru yang ingin Anda tambahkan.
API
Untuk menyertakan label saat mengubah node pool, tentukan objek resourceLabels
dalam objek node pool yang Anda berikan ke projects.zones.clusters.nodePools.update
.
Konsol
Untuk menambahkan atau memperbarui label, lakukan langkah-langkah berikut:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Dalam daftar cluster, klik nama cluster yang berisi node pool yang ingin diubah.
Di bagian Node Pools, klik nama node pool yang ingin Anda ubah.
Klik editEdit
Di bagian Label, tambahkan atau perbarui label.
Klik Save.
Menghapus label node pool
Anda dapat menghapus label dari node pool menggunakan gcloud CLI, Google Cloud Console, atau GKE API.
gcloud
Jalankan perintah berikut:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Ganti kode berikut:
NODE_POOL_NAME
: nama node pool.CLUSTER_NAME
: nama cluster.COMPUTE_REGION
: region Compute Engine untuk cluster Anda. Untuk cluster zona, gunakan--zone=COMPUTE_ZONE
.KEY
: kunci untuk pasangan nilai kunci label.VALUE
: nilai untuk pasangan nilai kunci label.
Pembaruan label akan menimpa label yang ada di node pool. Jika node pool memiliki label yang ingin Anda pertahankan, Anda harus mengecualikan setiap label yang ingin Anda hapus. Jika Anda ingin menghapus semua label, gunakan --labels=
tanpa pasangan nilai kunci apa pun.
API
Untuk menyertakan label saat mengubah node pool, tentukan objek resourceLabels
dalam objek node pool yang Anda berikan ke projects.zones.clusters.nodePools.update
.
Berikan daftar label kosong untuk menghapus semua label, atau berikan daftar label yang ingin Anda pertahankan. Hilangkan label yang ingin Anda hapus.
Konsol
Untuk menghapus label dari node pool, lakukan tindakan berikut
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Dalam daftar cluster, klik nama cluster yang berisi node pool yang ingin diubah.
Di bagian Node Pools, klik nama node pool yang ingin Anda ubah.
Klik delete Delete item di samping kolom Value untuk label yang ingin Anda hapus.
Klik Save.