我已经为 CI 目的创建了一个服务帐户并正在对其进行测试。尝试任何 kubectl 命令后,我收到错误:
error: You must be logged in to the server (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
下面是我的.kube/config文件
apiVersion: v1
clusters:
- cluster:
server: <redacted>
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: bamboo
name: default
current-context: 'default'
kind: Config
preferences: {}
users:
- name: bamboo
user:
token: <redacted>
Run Code Online (Sandbox Code Playgroud)
该服务帐户存在并具有集群角色:编辑和附加的集群角色绑定。
我究竟做错了什么?
如果我直接复制而不解码,我会重现错误token。然后应用以下步骤来解码和设置令牌,它按预期工作。
$ TOKENNAME=`kubectl -n <namespace> get serviceaccount/<serviceaccount-name> -o jsonpath='{.secrets[0].name}'`
$ TOKEN=`kubectl -n <namespace> get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
$ kubectl config set-credentials <service-account-name> --token=$TOKEN
Run Code Online (Sandbox Code Playgroud)
所以,我认为这可能是你的情况。
| 归档时间: |
|
| 查看次数: |
9637 次 |
| 最近记录: |