挑戰:
擴充Kubernetes 程式以使用下列指令將現有指令新增至現有Pod標籤
解決方案:
要使用go-client 在Pod上新增標籤,請考慮以下步驟:
導入必要的模組:
<code class="go">import ( "encoding/json" "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" )</code>
定義補丁有效負載結構:
要建構補丁有效負載,請定義一個自訂結構表示標籤值更新:
<code class="go">type patchStringValue struct { Op string `json:"op"` Path string `json:"path"` Value string `json:"value"` }</code>
填充補丁有效負載:
建立patchStringValue 物件的切片來表示要新增的特定標籤:
<code class="go">payload := []patchStringValue{{ Op: "replace", Path: "/metadata/labels/sent_alert_emailed", Value: time.Now().Format("2006-01-02_15.04.05"), }}</code>
編組補丁有效負載:
將有效負載切片轉換為JSON 格式:
<code class="go">payloadBytes, _ := json.Marshal(payload)</code>
<code class="go">_, updateErr = api.Pods(pod.GetNamespace()).Patch( pod.GetName(), types.JSONPatchType, payloadBytes, )</code>
以上是如何使用Go客戶端為Kubernetes中的Pod加上標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!