【问题标题】:kubectl: error You must be logged in to the server (Unauthorized)kubectl: error You must be logged in to the server (Unauthorized)
【发布时间】:2020-09-06 02:39:12
【问题描述】:

我已为 CI 目的创建了一个服务帐户并正在对其进行测试。在尝试任何 kubectl 命令时,我收到错误:

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

下面是我的.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>

服务帐户存在并具有集群角色:编辑并附加集群角色绑定。

我做错了什么?

【问题讨论】:

  • 我可以知道您的集群在 Prem 还是 Cloud 上运行在哪里?如果是“云”,请选择哪一个?
  • @hariK 已准备就绪
  • 您在使用前是否对令牌进行了解码? @熊
  • 我显然错过了@hoque

标签: kubernetes


【解决方案1】:

如果我直接复制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

所以,我认为这可能是你的情况。

【讨论】:

    猜你喜欢
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2013-09-22
    • 2022-12-29
    • 1970-01-01
    • 2022-12-17
    • 2021-10-27
    相关资源
    最近更新 更多