禁止服务:用户\“ system:anonymous \”无法在名称空间\“ kube-system \\”中列出服务

时间:2018-08-24 08:38:20

标签: linux kubernetes ubuntu-16.04 kubernetes-dashboard

我在VirtualBox上创建了一个新的kubernetes集群。我有一个主节点和两个工作节点。我想使用仪表板,但出现错误。当我运行kubectl proxy时,主服务器开始监听端口8001:

Starting to serve on 127.0.0.1:8001

然后在主机上创建SSH隧道:

ssh user@10.10.10.50 -N -L 8001:127.0.0.1:8001

但是当我在浏览器中键入localhost:8001/ui时,我得到了:

{
  "paths": [
    "/apis",
    "/apis/",
    "/apis/apiextensions.k8s.io",
    "/apis/apiextensions.k8s.io/v1beta1",
    "/healthz",
    "/healthz/etcd",
    "/healthz/ping",
    "/healthz/poststarthook/generic-apiserver-start-informers",
    "/healthz/poststarthook/start-apiextensions-controllers",
    "/healthz/poststarthook/start-apiextensions-informers",
    "/metrics",
    "/openapi/v2",
    "/swagger-2.0.0.json",
    "/swagger-2.0.0.pb-v1",
    "/swagger-2.0.0.pb-v1.gz",
    "/swagger.json",
    "/swaggerapi",
    "/version"
  ]
}

如果我想直接通过api进入仪表板:

https://10.10.10.50:6443/api/v1/namespaces/kube-system/services

我收到此错误:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "services is forbidden: User \"system:anonymous\" cannot list services in the namespace \"kube-system\"",
  "reason": "Forbidden",
  "details": {
    "kind": "services"
  },
  "code": 403
}

我知道这与身份验证有关,但是我不知道如何在群集上定义用户名/密码或在主节点和主机之间共享密钥。或者我应该如何使用.kube / config文件中的密钥。

1 个答案:

答案 0 :(得分:2)

  

我想使用仪表板,但出现错误。

根据the dashboard documentation的摘录,成功成功默认安装了仪表板之后(默认的Dashboard部署包含运行所需的最少的RBAC特权集):

  • 要从本地工作站访问仪表板,必须创建一个通往Kubernetes集群的安全通道。运行以下命令:

    kubectl proxy
    
  • 现在在以下位置访问仪表板:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    

无需进行隧道或其他任何更改。到目前为止,仪表盘的默认安装始终像是一种魅力,如果您单独配置了任何东西,则可能会出现问题...