【发布时间】:2018-07-02 05:28:54
【问题描述】:
- 我在 GKE 上运行了多个 kubernetes 集群(比如说 clusterA 和 clusterB)
- 我想在其中一个集群中运行的应用程序中从客户端访问这两个集群(例如,从在 clusterA 上运行的应用程序访问 clusterB)
我一般从 client-go 使用 kubernetes 集群进行身份验证,我发现我有两个选择:
- InCluster 配置
- 或来自 kube 配置文件
所以很容易从 clusterA 访问 clusterA 而不是从 clusterA 访问 clusterB。
我在这里有什么选择?看来我只是无法通过GOOGLE_APPLICATION_CREDENTIALS 并希望client-go 能照顾好自己。
所以我的想法:
- 创建专用 IAM 服务帐号
- 通过
gcloud container clusters get-credentials clusterA和gcloud container clusters get-credentials clusterB为两个集群创建带有令牌的 kube 配置 - 通过 clusterA 上的
BuildConfigFromFlags在 client-go 中使用该 kube 配置文件
这是正确的方法,还是有更简单的方法?我看到令牌有过期日期?
更新:
看来我也可以使用CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True gcloud beta container clusters get-credentials clusterB --zone。这会将证书添加到我可以使用的 kube conf 中。但是AFAIK这些证书不能被撤销
【问题讨论】:
标签: kubernetes google-kubernetes-engine