Cabaran:
Melanjutkan program Kubernetes untuk menambah label pada Pod sedia ada menggunakan the go-client.
Penyelesaian:
Untuk menambah label pada Pods menggunakan go-client, pertimbangkan langkah berikut:
Import Modul yang Diperlukan:
<code class="go">import ( "encoding/json" "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" )</code>
Tentukan Struktur Muatan Tampalan:
Untuk membina muatan tampung, tentukan struct tersuai untuk mewakili kemas kini nilai label:
<code class="go">type patchStringValue struct { Op string `json:"op"` Path string `json:"path"` Value string `json:"value"` }</code>
Isi Muatan Patch:
Buat sekeping objek patchStringValue untuk mewakili label khusus yang ditambahkan:
<code class="go">payload := []patchStringValue{{ Op: "replace", Path: "/metadata/labels/sent_alert_emailed", Value: time.Now().Format("2006-01-02_15.04.05"), }}</code>
Marshall the Patch Payload:
Tukar kepingan muatan ke dalam format JSON:
<code class="go">payloadBytes, _ := json.Marshal(payload)</code>
Melaksanakan Operasi Tampalan:
Menggunakan klien Kubernetes, laksanakan operasi tampalan pada Pod sasaran:
<code class="go">_, updateErr = api.Pods(pod.GetNamespace()).Patch( pod.GetName(), types.JSONPatchType, payloadBytes, )</code>
Semak nilai updateErr untuk memastikan operasi berjaya. Jika berjaya, keluarkan mesej kejayaan.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Label pada Pod dalam Kubernetes Menggunakan Go-client?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!