Kubernetes 错误代码 403

edd*_*dy7 4 kubernetes

我是 Kubernetes 新手,尝试访问时遇到代码错误 403。

kubectl cluster info
Kubernetes master is running at https://x.x.x.x:6443
KubeDNS is running at https://x.x.x.x:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

"status": "Failure",
  "message": "namespaces is forbidden: User \"system:anonymous\" cannot list namespaces at the cluster scope",
  "reason": "Forbidden",
  "details": {
    "kind": "namespaces"
  },
  "code": 403   


kubectl get pods --all-namespaces


kube-system   calico-etcd-6629s                                      1/1       Running   0          10h
kube-system   calico-kube-controllers-675684d4bb-5h28d               1/1       Running   0          10h
kube-system   calico-node-r75wv                                      2/2       Running   0          10h
kube-system   etcd-sp2013a....                                        1/1       Running   0          10h
kube-system   kube-apiserver-sp2013a ...                              1/1       Running   0          10h
kube-system   kube-controller-manager-sp2013a....                     1/1       Running   0          10h
kube-system   kube-dns-6f4....df-fcqvt                               3/3       Running   0          10h
kube-system   kube-proxy-mpf2j                                       1/1       Running   0          10h
kube-system   kube-scheduler-sp2013a......                            1/1       Running   0          10h
Run Code Online (Sandbox Code Playgroud)

一切都在运行..

小智 6

这听起来像是您被集群的 RBAC 策略阻止了。system:anonymous阻止用户列出集群中的命名空间。(沿着 的思路kubectl get namespaces

运行kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous将创建一个clusterrolebindingsystem:anonymous用户添加到cluster-admin角色的角色。

在生产集群中,不建议盲目地将帐户提升为 ,但由于您是新手,这应该可以帮助您启动cluster-admin运行

所有集群在访问 API 服务器(访问kubectl)之前都需要某种形式的授权,例如证书身份验证。RBAC 是一种限制用户(人类用户和服务帐户)集群中可以执行的操作的方法。

可以在这里找到来自 CNCF 的精彩 RBAC 入门知识,官方文档也很棒!祝你好运!