How to get current-context from rest.Config

huangapple go评论85阅读模式
英文:

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
}

huangapple
  • 本文由 发表于 2022年5月25日 22:48:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/72379828.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定