1

我一直在使用https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go#L45作为在我的 go 中创建 Kubernetes 客户端的指南代码。

但是,我习惯于使用 kops ( https://github.com/kubernetes/kops ) 将我的本地配置kubectl为指向我当前正在处理的集群。我使用的过程如下:

$ export KOPS_STATE_STORE=s3://k8s-state-store
$ kops export kubecfg <name-of-my-cluster>

其中 s3 存储桶包含许多目录,每个目录都包含 kops 正确配置所需的详细信息kubectl

我无法弄清楚如何使用相同的模式(或相同的配置文件)在 go.configclientset中配置 kubernetes。

我正在尝试的一种策略是复制本地生成~/.kube/config的仅包含我要定位的集群。然后我的代码如下所示:

serveKubeConfigStr := "<Contents of ~/.kube/config>"
config, err := clientcmd.NewClientConfigFromBytes([]byte(serveKubeConfigStr))
if err != nil {
    return err
}
clientConfig, err := config.ClientConfig()
if err != nil {
    return err
}
clientset, err := kubernetes.NewForConfig(clientConfig)
if err != nil {
    return err
}

然而,这并不是很好。我希望能够指定 kops 配置的 URL。

为了使这更容易,更简单和更清洁,我是否缺少一些重要的东西?

4

0 回答 0