首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes kubeconfig与服务帐户令牌

Kubernetes kubeconfig与服务帐户令牌
EN

Stack Overflow用户
提问于 2019-04-11 10:06:03
回答 1查看 9.3K关注 0票数 2

我有一个在集群之外调用kubectl -server $server --certificate-authority $ca --token $token get pod --all-namespaces的脚本,其中$token来自服务帐户my-sa (在名称空间my-ns中),在RBAC下具有适当限制的权限。

现在,我想重构它,以便脚本调用kubectl --kubeconfig my-service.conf get pod --all-namespaces,也就是说,它应该引用kubeconfig文件,而不是设置本地参数。这是在遵循库伯内特斯自己的约定围绕它自己的库比孔图在/etc/kubernetes

我尝试了以下kubeconfig my-service.conf<CA_DATA>/etc/kubernetes/pki/ca.crt的same 64编码内容,<SERVER>$server相同,<TOKEN>$token相同

代码语言:javascript
复制
apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority-data: <CA_DATA>
    server: <SERVER>
  name: my-cluster 
contexts:
- context:
  name: default-context
  context:
    cluster: my-cluster
    user: default-user
current-context: default-context
users:
- name: my-service
  user:
    token: <TOKEN>

kubectl --kubeconfig /dev/null --server $server --certificate-authority /etc/kubernetes/pki/ca.crt --token $token get pods --all-namespaces在命令行上工作,但kubectl --kubeconfig my-service.conf get pod --all-namespaces生成以下错误消息:

服务器错误(禁止):禁止使用:用户“system:匿名”不能在集群范围内列出API组中的资源" pods“

所以构造我的kubeconfig文件还是有问题的。为什么客户没有认证为 system:serviceaccount:my-ns:my-sa?有什么不对的?

UPDATE I想知道在集群之外使用服务帐户令牌是否不合适(Kubernetes自己的kubecon图使用客户端证书)。但是,文档明确指出:“服务帐户承载令牌对于在集群之外使用是完全有效的”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 16:31:16

您的上下文配置正在引用一个不存在的凭据.

您的凭据被指定为- name: my-service,因此您的上下文应该是:

代码语言:javascript
复制
- context:
  name: default-context
  context:
    cluster: my-cluster
    user: my-service       # instead of default-user
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55629894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档