Introduction
La bibliothèque Kubernetes client-go fournit une interface pour interagir avec Kubernetes depuis les applications Go. Il prend en charge l'utilisation de différents contextes pour se connecter à plusieurs clusters Kubernetes. Cet article explique comment utiliser un contexte spécifié pour configurer le client-go pour les opérations Kubernetes.
Exemple de code avec configuration du contexte
L'exemple de code fourni dans la question démontre comment obtenir une configuration client et un client Kubernetes pour un contexte spécifié. Cependant, il a initialement rencontré un problème où le serveur API n'était pas configuré correctement, entraînant une tentative de connexion à l'hôte par défaut localhost:8080.
Solution : utilisation de NewNonInteractiveDeferredLoadingClientConfig
Le code source de BuildConfigFromFlags révèle qu'il appelle essentiellement NewNonInteractiveDeferredLoadingClientConfig avec des paramètres vides. Pour spécifier le contexte, il est nécessaire d'utiliser directement NewNonInteractiveDeferredLoadingClientConfig et de lui fournir le contexte souhaité.
<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>
En spécifiant le contexte dans l'objet configOverrides, la config client sera configurée avec le bon contexte, permettant pour les connexions au cluster Kubernetes souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!