从S3上的kops配置创建kubernetes go-client配置

时间:2018-10-11 21:18:09

标签: kubernetes kops kubernetes-go-client

我一直使用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所需的详细信息。

我无法弄清楚如何使用相同的模式(或相同的配置文件)来配置kubernetes clientset

我尝试的一种策略是复制仅包含我要定位的群集的本地生成的~/.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。

为了使此操作更容易,更简单和更干净,我是否缺少一些重要的东西?

0 个答案:

没有答案