我目前正在通过获取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
来获取当前身份验证用户的访问令牌(您也可以使用服务帐户,请参阅下文(。
问题中包含的KUBECONFIG
是kubectl
如何使用config-helper
获取gcloud
(当前已验证(用户的访问令牌。如果您想要使用gcloud
的好处,没有更好的方法来验证用户身份,但您可以在KUEBCONFIG
之外复制此功能。
请参阅对Kubernetes进行身份验证,以获得一组有充分文档记录的替代方法。其中包括带有|但不带gcloud
的环境、使用服务帐户并在谷歌云上运行的环境(在这里,您可以使用谷歌的元数据服务轻松获得服务帐户访问令牌(以及在谷歌云下运行的环境。这些替代方案中的任何一个都可以满足您的需求。