无法访问gcloud中的kubernetes仪表板

时间:2017-06-13 14:34:02

标签: kubernetes dashboard gcloud google-kubernetes-engine

我按照给定here

的说明进行操作

我使用该命令来获取正在运行的集群,在gcloud控制台中我输入了curl -sS https://get.k8s.io | bash,如链接中所述,之后我运行了命令kubectl cluster-info

kubernetes-dashboard is running at https://35.188.109.36/api/v1/proxy/namespaces/kube-
system/services/kubernetes-dashboard

但是当我从firefox访问该网址时,出现的信息是:

User "system:anonymous" cannot proxy services in the namespace 
"kube-system".: "No policy matched."

预期行为:应要求输入管理员名称和密码以连接到仪表板。

我不明白为什么它甚至难以访问谷歌计算引擎中的kubernetes dashboad。我也看到过其他问题,但没有太大的帮助。我还删除了仪表板的整个服务(默认情况下是集群ip类型)并使其成为NodePort类型,以便在Unable to access Kubernetes Dashboard的最后一个答案中提到它,但没有帮助。请帮忙。

4 个答案:

答案 0 :(得分:2)

您是否有理由不使用GKE(Google Kubernetes Engine)提供开箱即用的仪表板插件?

在您的情况下,只需:

  • 可能没有安装kubernetes-dashboard插件(但是日志说的是,所以我认为这不是问题)
  • 使kubectl proxy工作的网络配置可能不存在
  • 您使用的curl .. | sh脚本可能无法正确配置身份验证。

我建议使用GKE,因为这是开箱即用的。您可以在此处找到文档:https://cloud.google.com/kubernetes-engine/docs/oss-ui

如果您仍想使用GCE,我建议您在工作站上运行kubectl proxy(而不是kubernetes节点),并在浏览器上访问http://127.0.0.1:8001/ui以查看它是否有效。

如果您收到有关没有足够权限的错误,您可能正在使用足够新的Kubernetes版本,以便对访问API的信息中心等pod执行RBAC策略。您可以通过运行以下方式授予这些权限:

kubectl create clusterrolebinding add-on-cluster-admin  \
  --clusterrole=cluster-admin  \
  --serviceaccount=kube-system:default

我还建议您在Google云端控制台中试用GKE用户界面:https://console.cloud.google.com/kubernetes

答案 1 :(得分:0)

您正在寻找的东西已被弃用。我们需要使用Cloud Console仪表板here

Official Message

GKE上的集群不建议使用开源Kubernetes Dashboard插件,并且在版本1.15中将作为选项将其删除。建议使用this page中所述的备用Cloud Console仪表板。

答案 2 :(得分:0)

如果您选择在Google Compute Engine上部署k8,则仍然可以访问仪表板。如果遵循kubernetes.io/docs/setup/中的说明,则为true,您将收到描述的403。

首先,您需要部署“仪表板部署”,运行此命令;

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

一旦创建(在kube系统名称空间btw中),请使用此命令创建clusterrolebinding;

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

运行以下命令以获得令牌; kubectl config view | grep token

接下来使用命令运行kubectl代理; kubectl proxy

您现在可以在下面的uri访问仪表板。 您将需要从上方传递令牌进行身份验证,仅此而已...

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

答案 3 :(得分:-4)

您可以在本地运行kubectl proxy并在http://localhost:8001/ui

访问它