我按照给定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的最后一个答案中提到它,但没有帮助。请帮忙。
答案 0 :(得分:2)
您是否有理由不使用GKE(Google Kubernetes Engine)提供开箱即用的仪表板插件?
在您的情况下,只需:
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。
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