概要
Kubernetes client-go ライブラリは、対話用のインターフェイスを提供しますGo アプリケーションから Kubernetes を使用します。さまざまなコンテキストを使用して複数の Kubernetes クラスターに接続することがサポートされています。この記事では、指定されたコンテキストを利用して Kubernetes 操作用に client-go を構成する方法について説明します。
コンテキスト構成のコード例
質問で提供されているコード例は、次のことを示しています。指定されたコンテキストのクライアント構成と Kubernetes クライアントを取得する方法。ただし、最初は API サーバーが正しく設定されていないという問題が発生し、デフォルトのホスト localhost:8080 への接続が試行されました。
解決策: NewNonInteractiveDeferredLoadingClientConfig を使用する
BuildConfigFromFlags のソース コードを見ると、基本的に空のパラメーターを指定して NewNonInteractiveDeferredLoadingClientConfig を呼び出していることがわかります。コンテキストを指定するには、NewNonInteractiveDeferredLoadingClientConfig を直接使用し、目的のコンテキストを指定する必要があります。
<code class="go">// Create a client config loading rules object to specify the kubeconfig file. configLoadingRules := &clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfig} // Create a client config overrides object to specify the context. configOverrides := &clientcmd.ConfigOverrides{CurrentContext: context} // Use NewNonInteractiveDeferredLoadingClientConfig to get the client config. kconf, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(configLoadingRules, configOverrides).ClientConfig()</code>
configOverrides オブジェクトでコンテキストを指定すると、クライアント構成が正しいコンテキストで構成され、目的の Kubernetes クラスターへの接続用。
以上がKubernetes Client-Go で指定されたコンテキストを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。