英文:
How to get current-context from rest.Config
问题
你可以通过以下方式从config中提取CurrentContext:
currentContext := config.CurrentContext
这将返回当前config中的CurrentContext。
英文:
I'm trying to access the current-context of the current cluster, currently I'm getting rest.Config using:
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
How can I extract the CurrentContext from that config?
答案1
得分: 1
上下文仅适用于 Kubernetes 客户端,也就是您运行 kubectl 命令的位置。在运行在 Kubernetes 集群中的 Pod 中,没有上下文的概念。
在您的本地机器上,上下文是在 .kubeconfig 文件中设置的。在集群中,您需要从 InClusterConfig 中读取,并提供所有必需的详细信息,否则这些信息本应保存在您的本地上下文中。
以下是在集群内获取 Kubernetes clientSet 的示例代码:
func GetK8sClient() *kubernetes.Clientset {
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
// 创建 clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
return clientset
}
英文:
Context applies only to the Kubernetes client-side, that is, to the place from where you run the kubectl command. Pods running in a Kubernetes cluster have no concept of context.
On your local machine, the context is set in the .kubeconfig file. In the cluster, you need to read from InClusterConfig, and provide all the required details, which would otherwise have been saved in your local context.
Example code for getting a Kubernetes clientSet inside cluster:
func GetK8sClient() *kubernetes.Clientset {
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
// creates the clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
return clientset
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论