无需 kubectl 代理即可访问 Kubernetes 仪表板

Eke*_*voo 5 kubernetes kubectl kube-proxy kubernetes-dashboard kube-apiserver

如果我移动一个相关的配置文件并运行kubectl proxy它,它将允许我通过这个 URL 访问 Kubernetes 仪表板:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试直接访问节点,而没有kubectl proxy,则会收到 403 Forbidden。

http://dev-master:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Run Code Online (Sandbox Code Playgroud)

我们的 kubernetes 集群隐藏在用户需要 VPN 的私有网络中;此外,在对 VPN 进行身份验证后,只有我们中的一些人可以与我们每个集群的主节点交谈。因此,运行kubectl proxy是一个多余的步骤,为每个集群选择合适的配置文件是一个额外的痛苦,尤其是当我们想要比较不同集群的状态时。

需要更改哪些内容以允许“匿名”HTTP 访问这些已受保护的 kubernetes 主节点的仪表板?

cod*_*ger 3

您可能需要为仪表板 Pod 设置一个服务(NodePort 或 LoadBalancer),以将其暴露给外部世界(好吧,从集群的 PoV 外部,这对您来说仍然是内部网络)。