課題:
Kubernetes プログラムを拡張して、以下を使用して既存のポッドにラベルを追加します
解決策:
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>
パッチ操作を実行します:
Kubernetes クライアントを使用して、ターゲット Pod でパッチ操作を実行します:
<code class="go">_, updateErr = api.Pods(pod.GetNamespace()).Patch( pod.GetName(), types.JSONPatchType, payloadBytes, )</code>
updateErr の値をチェックして、操作が成功したことを確認します。成功した場合は、成功メッセージを出力します。
以上がGo クライアントを使用して Kubernetes のポッドにラベルを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。