繁体   English   中英

如何在不使用 gcloud CLI 的情况下向 GKE 集群进行身份验证

[英]How to authenticate to a GKE cluster without using the gcloud CLI

我在 GKE 集群中有一个容器,我希望它能够与另一个 GKE 集群的 Kube.netes API 对话,以列出那里的一些资源。

如果在单独的容器中运行以下命令来为我代理连接,则效果很好:

gcloud container clusters get-credentials MY_CLUSTER --region MY_REGION --project MY_PROJECT; kubectl --context MY_CONTEXT proxy --port=8001 --v=10

但这需要我运行一个单独的容器,因为gcloud cli的大小超过 1GB。

理想情况下,我想直接从我的主容器与另一个 GKE 集群对话。 但我不知道如何找出 IP 地址并设置连接所需的身份验证。

我看到了几个问题:

但我仍然不清楚这是否/如何与 Java 库一起工作,如果可能的话。

理想情况下,我会写这样的东西。

var info = gkeClient.GetClusterInformation(...);
var auth = gkeClient.getAuthentication(info);
...

// using the io.fabric8.kubernetes.client.ConfigBuilder / DefaultKubernetesClient
var config = new ConfigBuilder().withMasterUrl(inf.url())
            .withNamespace(null)
            // certificate or other autentication mechanishm
            .build();

return new DefaultKubernetesClient(config);

这有意义吗,这样的事情可能吗?

有多种方法可以在不使用 gcloud cli 的情况下连接到您的集群,因为您正尝试从云中的另一个集群访问该集群,您可以使用工作负载身份验证机制。 Workload Identity 是在 Google Kube.netes Engine (GKE) 上运行的工作负载以安全且可管理的方式访问 Google Cloud 服务的推荐方式。 有关详细信息,请参阅此官方文档 在这里,他们详细介绍了配置工作负载身份的分步过程,并提供了代码库的参考链接。

这是根据 google 官方文档中提供的信息起草的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM