gpt4 book ai didi

kubernetes - 使用 token 通过服务帐户登录 GKE

转载 作者:行者123 更新时间:2023-12-04 21:32:10 24 4
gpt4 key购买 nike

我正在尝试使用服务帐户访问 google cloud 上的 Kubernetes 集群,但我无法使其正常工作。我有一个正在运行的系统,其中包含一些 Pod 和入口。我希望能够更新部署的图像。

我想使用这样的东西(远程):

kubectl config set-cluster cluster --server="<IP>" --insecure-skip-tls-verify=true
kubectl config set-credentials foo --token="<TOKEN>"
kubectl config set-context my-context --cluster=cluster --user=foo --namespace=default
kubectl config use-context cluster
kubectl set image deployment/my-deployment boo=eu.gcr.io/project-123456/image:v1

所以我创建了服务帐户,然后获取了 secret token :
kubectl create serviceaccount foo
kubectl get secret foo-token-gqvgn -o yaml

但是,当我尝试在任何部署中更新镜像时,我收到:

error: You must be logged in to the server (Unauthorized)



API 的 IP 地址我使用该地址,该地址在 GKE 管理中显示为集群端点 IP。
有什么建议?谢谢。

最佳答案

我试图重现你的问题。
我遵循的步骤

  • kubectl create serviceaccount foo
  • kubectl get secret foo-token-* -o yaml

  • 然后,我试着做你做过的事
    我用过的因为 token 是 base64解码 token 。
    然后我尝试了这个:
    $ kubectl get pods

    Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:default:foo" cannot list pods in the namespace "default": Unknown user "system:serviceaccount:default:foo"


    这给了我预期的错误。因为,我需要向这个 ServiceAccount 授予权限。
    我如何授予权限 到这个 ServiceAccount?我需要在必要的权限下创建 ClusterRole 和 ClusterRoleBinding。
    阅读更多了解更多 role-based-access-control
    我可以做另一件事
    $ kubectl config set-credentials foo --username="admin" --password="$PASSWORD"
    这将授予您管理员权限。
    您需要提供集群凭据。
    Username: admin
    Password: -----
    您将在 GKE -> Kubernetes Engine -> {cluster} -> Show credential 中获得此信息

    关于kubernetes - 使用 token 通过服务帐户登录 GKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531688/

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