gpt4 book ai didi

kubernetes - 将 GKE 服务帐户凭据与 kubectl 结合使用

转载 作者:行者123 更新时间:2023-12-02 11:52:21 26 4
gpt4 key购买 nike

我正在尝试从我的 CI 系统中调用 kubectl。我希望使用谷歌云服务帐户进行身份验证。我有一个 secret 管理系统,可以将 secret 注入(inject)我的 CI 系统。

但是,我的 CI 系统没有安装 gcloud,我不想安装它。它只包含 kubectl。有什么方法可以直接将包含 gcloud 服务帐户(不是 kubernetes 服务帐户)的 credentials.json 文件与 kubectl 一起使用?

最佳答案

跳过 gcloud CLI 的最简单方法可能是使用 --token选项。您可以通过创建服务帐户并将其绑定(bind)到 ClusterRole or Role 来使用 RBAC 获取 token 。使用 ClusterRoleBinding or RoleBinding .

然后从命令行:

$ kubectl --token <token-from-your-service-account> get pods

您的 ~/.kube/config 中仍然需要一个 context:

- context:
cluster: kubernetes
name: kubernetes-token

否则,您将不得不使用:

$ kubectl --insecure-skip-tls-verify --token <token-from-your-service-account> -s https://<address-of-your-kube-api-server>:6443 get pods

请注意,如果您不希望 token 显示在日志中,您可以执行以下操作:

$ kubectl --token $(cat /path/to/a/file/where/the/token/is/stored) get pods

此外,请注意,这不会阻止您在 kubectl 进程的生命周期内在您的盒子上运行 ps -Af 并从那里获取 token (轮换 token 是个好主意)

编辑:

您可以使用 --token-auth-file=/path/to/a/file/where/the/token/is/stored使用 kubectl 以避免通过 $(cat/path/to/a/file/where/the/token/is/stored)

传递它

关于kubernetes - 将 GKE 服务帐户凭据与 kubectl 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53180126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com