ger*_*lus 4 kubernetes google-kubernetes-engine
我一般会从客户端转到kubernetes集群进行身份验证,我看到我有两个选择:
因此,很容易从clusterA访问clusterA,但不能从clusterA访问clusterB。
我在这里有什么选择?看来我只是无法过关GOOGLE_APPLICATION_CREDENTIALS,希望客户去照顾自己。
所以我的想法是:
gcloud container clusters get-credentials clusterA和gcloud container clusters get-credentials clusterBBuildConfigFromFlags上clusteA在这是正确的方法,还是有更简单的方法?我看到代币有有效期吗?
更新:
看来我也可以用CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True gcloud beta container clusters get-credentials clusterB --zone。这将证书添加到我可以使用的kube conf中。但是AFAIK不能撤消那些证书
客户需要了解以下内容:
(如果您使用的是GKE,则可以在$HOME/.kube/config填充gcloud container clusters get-credentials命令中看到这些信息)。
我建议您:
一旦您可以*rest.Config在client-go中创建对象,client-go将使用kubeconfig文件(或您构建的等效内存)中指定的auth插件。在gcpauth插件中,它知道如何检索令牌。
然后,创建一个Cloud IAM服务帐户,并为其授予“容器开发人员”角色。下载其密钥。
现在,您有两个选择:
gcloud auth activate-service-account --key-file=key.json
KUBECONFIG=a.yaml gcloud container clusters get-credentials clusterA
KUBECONFIG=b.yaml gcloud container clusters get-credentials clusterB
Run Code Online (Sandbox Code Playgroud)
然后创建2个不同的*rest.Client对象,一个从中创建a.yaml,而另一个从b.yaml程序中创建。
现在,您的程序将在gcloud每次令牌过期时(每1小时)依靠二进制文件来检索令牌。
*rest.Config为群集A和B 构造两个不同的对象。希望这可以帮助。
PS别忘了import _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"在您的Go程序中。这将加载gcp auth插件!
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |