首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户"system:anonymous“无法获取路径"/”

用户"system:anonymous“无法获取路径"/”
EN

Stack Overflow用户
提问于 2017-07-14 12:31:47
回答 2查看 16.3K关注 0票数 13

我刚刚在这个链接上建立了一个kubenetes集群,我用kubectl get nodes检查了一下,然后主节点就准备好了,但是当我访问链接https://k8s-master-ip:6443/时,它显示了错误: User "system:anonymous“cannot get path "/”。我错过了什么把戏?

EN

回答 2

Stack Overflow用户

发布于 2017-07-14 16:08:52

最新的kubernetes部署工具在集群上启用RBAC。Jenkins在访问https://192.168.70.94:6443/api/v1/...时被降级为通用用户system:anonymous。该用户在kube-apiserver上几乎没有权限。

底线是,Jenkins需要使用kube-apiserver进行身份验证-要么使用持有者令牌,要么使用由k8s集群的CA密钥签名的客户端证书。

方法1.如果Jenkins托管在k8s集群中,则首选此方法:

  1. 在k8s中为插件创建ServiceAccount
  2. 创建一个RBAC配置文件(即Role/RoleBinding或ClusterRole/ClusterRoleBinding)绑定到ServiceAccount
  3. Config插件,以便在访问URL时使用ServiceAccount的标记

方法2.如果Jenkins托管在k8s集群之外,则仍然可以使用上面的步骤。另一种方法是:

  1. 创建与k8s群集的CA绑定的客户端证书。您必须找到保存CA密钥的位置,并使用它来生成客户端证书。
  2. 创建一个RBAC配置文件(即Role/RoleBinding或ClusterRole/ClusterRoleBinding),绑定到客户端证书URL https://192.168.70.94:6443/api/v1/...

配置插件以在访问

  • 时使用客户端证书

这两种方法在任何情况下都有效。我相信方法1对你来说会更简单,因为你不需要摆弄CA密钥。

票数 10
EN

Stack Overflow用户

发布于 2021-04-22 13:21:31

希望你能看到类似这样的东西:

代码语言:javascript
复制
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403
}

这很好,因为不是每个人都应该能够访问集群,如果您希望看到服务运行"kubectl proxy",这应该允许从外部世界访问服务。

代码语言:javascript
复制
C:\dev1> kubectl proxy
Starting to serve on 127.0.0.1:8001

当您点击127.0.0.1:8001时,您应该会看到服务列表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45094665

复制
相关文章

相似问题

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