我试图通过服务帐户访问我在谷歌 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
所以我创建了服务帐户,然后获取了秘密令牌:
kubectl create serviceaccount foo
kubectl get secret foo-token-gqvgn -o yaml
但是,当我尝试在任何部署中更新图像时,我收到:
错误:您必须登录服务器(未经授权)
API的IP地址使用地址,该地址在GKE管理中显示为集群 endpoints IP . 有什么建议?谢谢 .
1 回答
我试图重现你的问题 .
我遵循的步骤
kubectl create serviceaccount foo
kubectl get secret foo-token-* -o yaml
然后,我试图做你做过的事情
What I have used 作为令牌是
base64
解码令牌 .然后我尝试了这个:
这给了我预期的错误 . 因为,我需要授予此ServiceAccount的权限 .
How can I grant permission 来这个ServiceAccount?我需要创建具有必要权限的ClusterRole和ClusterRoleBinding .
阅读更多内容以了解更多role-based-access-control
我可以做另一件事
这将授予您管理员授权 .
您需要提供群集凭据 .
您将在GKE - > Kubernetes Engine - > - > Show credential中获得此信息