首页 文章

使用控制台在GKE中的第一个集群后无法访问K8S仪表板

提问于
浏览
3

新手设置:

  • 在GCP中创建了第一个项目

  • 创建了具有默认3个节点的群集 . 节点版本1.7.6 . 集群主版本1.7.6-gke.1 .

  • 每个示例在一个pod中部署了一个应用程序 .

  • 能够使用external-ip和端口访问"hello world"和主机名 .

  • 在我的 Cloud 控制台的GCP / GKE网页中,单击"discovery and loadbalancing",我能够以绿色勾选方式查看"kubernetes-dashboard"进程,但无法通过列出的IP访问 . 试过8001,9090,/ ui没什么用的 .

  • 在我的本地笔记本电脑上没有使用任何 Cloud 外壳或gcloud命令 . 一切都在控制台上完成 .

问题:

  • 人们如何访问在控制台中创建的集群的kubernetes-dashboard?

  • docs不清楚,控制台本身是否包含仪表板组件?文档是否与GCP-GKE屏幕不同步?

  • 教程说运行"kubectl proxy"然后打开
    http://localhost:8001/ui”,但它不起作用,为什么?

4 回答

  • 1

    从Google Cloud 端版本1.7.6开始,内部Kubernetes DNS服务似乎存在问题 .

    解决方案是访问此 endpoints 的仪表板:

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

    Github问题链接:

    https://github.com/kubernetes/dashboard/issues/2368 https://github.com/kubernetes/kubernetes/issues/52729

  • 0
    • 仪表板服务的地址只能从群集内部访问 . 如果您ssh到群集中的节点,您应该能够连接到仪表板 . 您可以通过注意该地址在群集的服务CIDR范围内来验证这一点 .

    • 仪表板作为集群内部的一个pod运行,并带有关联的服务 . 如果打开Workloads视图,您将看到 kubernetes-dashboard 部署,并可以看到部署创建的pod . 我'm not sure which docs you are referring to, since you didn' t提供了一个链接 .

    • 运行 kubectl proxy 时,它会创建从本地计算机到群集的安全连接 . 它的工作原理是连接到主服务器,然后通过主服务器上的代理运行到您通过ssh隧道连接的pod / service / host . 它工作是因为ssh隧道没有运行;您应该验证您的项目是否新创建了ssh规则,允许从群集 endpoints IP地址进行访问 . 否则,如果你能解释它失败的原因,这对调试很有用 .

  • 0

    首先: gcloud container clusters get-credentials cluster-1 --zone my-zone --project my-project 然后找到你的kubernetes仪表板 endpoints : kubectl cluster-info

    它会像https://42.42.42.42/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy

  • 0

    如果您使用版本1.9.x或更高版本创建群集,则可以使用令牌进行访问 .

    • 得到秘密 .

    kubectl -n kube-system describe secretskubectl -n kube-system get secrets | awk '/clusterrole-aggregation-controller/ {print $1}'| awk '/token:/ {print $2}'

    • 复制秘密 .

    • kubectl代理 .

    • 使用127.0.0.1:8001/ui打开UI . 这将重定向到登录页面 . 登录时会有两个选项,kubeconfig和token . 选择令牌并粘贴先前复制的秘密 .

    希望这可以帮助

相关问题