Herausforderung:
Erweitern Sie ein Kubernetes-Programm, um Beschriftungen zu vorhandenen Pods hinzuzufügen der Go-Client.
Lösung:
Um Beschriftungen zu Pods mithilfe des Go-Clients hinzuzufügen, beachten Sie die folgenden Schritte:
Notwendige Module importieren:
<code class="go">import ( "encoding/json" "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" )</code>
Patch-Nutzlaststruktur definieren:
Um die Patch-Nutzlast zu erstellen, definieren Sie eine benutzerdefinierte Struktur um Etikettenwertaktualisierungen darzustellen:
<code class="go">type patchStringValue struct { Op string `json:"op"` Path string `json:"path"` Value string `json:"value"` }</code>
Patch-Payload füllen:
Erstellen Sie ein Segment von patchStringValue-Objekten, um das spezifische hinzugefügte Etikett darzustellen:
<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:
Konvertieren Sie den Payload-Slice in das JSON-Format:
<code class="go">payloadBytes, _ := json.Marshal(payload)</code>
Führen Sie den Patch-Vorgang aus:
Führen Sie mit dem Kubernetes-Client den Patch-Vorgang auf dem Ziel-Pod aus:
<code class="go">_, updateErr = api.Pods(pod.GetNamespace()).Patch( pod.GetName(), types.JSONPatchType, payloadBytes, )</code>
Überprüfen Sie den Wert von updateErr, um sicherzustellen, dass der Vorgang erfolgreich war. Bei Erfolg wird eine Erfolgsmeldung ausgegeben.
Das obige ist der detaillierte Inhalt vonWie füge ich Pods in Kubernetes mit dem Go-Client Labels hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!