Kubernetes仪表板服务器上的错误(“未知”)阻止了请求成功
在我的k8s集群启动并运行之后,我忠实地部署了以下WebUI仪表板 使用命令:Kubernetes仪表板服务器上的错误(“未知”)阻止了请求成功,kubernetes,kubernetes-ingress,kubernetes-pod,kubernetes-dashboard,Kubernetes,Kubernetes Ingress,Kubernetes Pod,Kubernetes Dashboard,在我的k8s集群启动并运行之后,我忠实地部署了以下WebUI仪表板 使用命令: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml 当我尝试访问它时,会出现以下错误: Metric client health check failed: an error on the server ("unknown") has
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
当我尝试访问它时,会出现以下错误:
Metric client health check failed: an error on the server ("unknown") has prevented the request from succeeding (get services dashboard-metrics-scraper)
如果我得到了我得到的所有服务:
k get services --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 8d
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 8d
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.96.0.65 <none> 8000/TCP 6m10s
kubernetes-dashboard kubernetes-dashboard ClusterIP 10.96.0.173 <none> 443/TCP 6m10s
看起来kubernetes dashboard用户可以访问metrics服务我可能错了看起来kubernetes dashboard的serviceaccount无法访问所有kubernetes资源(特别是,它无法访问metric server服务) 要解决此问题,您应该为仪表板创建一个新的ServiceAccount,并为其授予更多权限 下面是我在另一篇类似文章中发现的一个(请小心,因为它会授予仪表板管理员权限,无论谁使用它,都可以在kubernetes群集上销毁/创建新的或现有的资源)): 如果您没有群集管理服务帐户,请按照此模板创建一个帐户:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kube-system
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
管理员群集角色:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: admin
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
nonResourceURLs: ["*"]
我在问题中添加了更多关于角色的信息,我将尝试这一个。事实证明,我实际上没有群集管理角色。我只是编辑了我的原始答案,添加了一个示例群集管理服务帐户。试着扩展一下,看看它是否适合您我已经有了一个名为“kubernetes dashboard”的服务帐户,我没有具有管理权限的ClusterRole,我还创建了一个由群集CA签名的证书,主题为“/CN=kubernetes dashboard”并将.p12文件加载到浏览器中。我刚刚将管理员ClusterRole yaml添加到我的答案中。
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin
namespace: kube-system
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: admin
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
nonResourceURLs: ["*"]