簡介
Kubernetes 提供了交互的接口透過Go 應用程式使用Kubernetes。它支援使用不同的上下文連接到多個 Kubernetes 叢集。本文探討如何利用指定的上下文來設定 client-go 進行 Kubernetes 操作。
上下文配置的程式碼範例
問題中提供的程式碼範例示範如何取得指定上下文的用戶端設定和 Kubernetes 用戶端。不過,最初遇到了 API 伺服器設定不正確的問題,導致嘗試連線到預設主機 localhost:8080。
解決方案:使用 NewNonInteractiveDeferredLoadingClientConfig
BuildConfigFromFlags的來源程式碼顯示,它本質上是使用空參數呼叫NewNonInteractiveDeferredNonInteractiveDeferfLoadingClientDeferredLoadingClientDeferredNonInteractiveDeferred。要指定上下文,需要直接使用 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中文網其他相關文章!