在GKE kubeconfig中获取硬编码凭据



我目前正在通过获取GKE集群的kubeconfig文件

export KUBECONFIG=<config-path>
gcloud container clusters get-credentials cluster-name --region=region-name

现在我得到了配置文件,可以使用它们了。

然而,对于某些应用程序来说,有硬编码的凭据会很有帮助,而不是出现在这里的

...
users:
- name: user-name
user:
auth-provider:
config:
access-token: <access-token>
cmd-args: config config-helper --format=json
cmd-path: /Users/user-name/google-cloud-sdk/bin/gcloud
expiry: "2022-08-13T18:27:44Z"
expiry-key: '{.credential.token_expiry}'
token-key: '{.credential.access_token}'
name: gcp

有优雅的方法吗?也可以通过服务帐户或其他什么方式,我愿意接受任何想法。对我来说,唯一重要的是拥有一个可以共享的kubeconfig文件,一旦用户掌握了它,每个人都可以使用它。

有关KUBECONFIG文件向GKE集群进行身份验证的方式的更改,请参阅GKE v1.25中Google发布的kubectl身份验证更改。您的KUBECONFIG使用现有机制,您可能需要考虑迁移。

Google使用OAuth对GKE Kubernetes集群进行身份验证。默认情况下,配置使用gcloud来获取当前身份验证用户的访问令牌(您也可以使用服务帐户,请参阅下文(。

问题中包含的KUBECONFIGkubectl如何使用config-helper获取gcloud(当前已验证(用户的访问令牌。如果您想要使用gcloud的好处,没有更好的方法来验证用户身份,但您可以在KUEBCONFIG之外复制此功能。

请参阅对Kubernetes进行身份验证,以获得一组有充分文档记录的替代方法。其中包括带有|但不带gcloud的环境、使用服务帐户并在谷歌云上运行的环境(在这里,您可以使用谷歌的元数据服务轻松获得服务帐户访问令牌(以及在谷歌云下运行的环境。这些替代方案中的任何一个都可以满足您的需求。

最新更新