我刚刚在此链接上设置了kubenetes群集https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#multi-platform 我检查kubectl获取节点,然后主节点就绪,但是当我访问链接https://k8s-master-ip:6443/时 它显示错误:用户"系统:匿名"无法获得路径" /"。 我错过了什么诀窍?
答案 0 :(得分:8)
最新的kubernetes部署工具可在群集上启用RBAC。 Jenkins在访问system:anonymous
时被降级为全能用户https://192.168.70.94:6443/api/v1/...
。此用户几乎没有kube-apiserver的权限。
最重要的是,Jenkins需要使用kube-apiserver进行身份验证 - 使用持有者令牌或由k8s群集的CA密钥签名的客户端证书。
方法1。如果Jenkins托管在k8s群集中,这是首选:
https://192.168.70.94:6443/api/v1/...
方法2。如果Jenkins托管在k8s群集之外,仍可以使用上述步骤。另一种方法是:
https://192.168.70.94:6443/api/v1/...
这两种方法都适用于任何情况。我相信方法1对您来说会更简单,因为您不必使用CA密钥。
答案 1 :(得分:2)
希望你看到这样的:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {
},
"code": 403
}
这很好,因为不是每个人都应该能够访问集群,如果您想看到服务运行 "kubectl proxy"
,这应该允许从外部世界访问服务。
C:\dev1> kubectl proxy
Starting to serve on 127.0.0.1:8001
当您点击 127.0.0.1:8001
时,您应该会看到服务列表。