访问K8S仪表板的正确方法是什么?

mon*_*mon 5 https dashboard kubernetes

目前尚不清楚如何使用HTTPS访问仪表板,也找不到清晰的文档(只是告诉您使用kubectl代理)。那么用HTTPS访问仪表板的方式是什么?

Kubernetes Dashboard GitHub告诉:

不建议使用快捷方式http:// localhost:8001 / ui。使用上面显示的完整代理URL。

“ K8S仪表板推荐设置”或“ K8S仪表板常见问题解答”没有说明如何在没有代理的情况下访问仪表板。

我正在通过HTTPS访问仪表板

/ ui重定向不适用于HTTPS的原因是尚未在核心存储库中对其进行更新。您可以跟踪https://github.com/kubernetes/kubernetes/pull/53046#discussion_r145338754找出何时将其合并。可能直到K8S 1.8.3+才可用。

我们的文档中提供了可用于访问仪表板的正确链接。选中访问仪表板以了解更多信息。


但是,kubernetes-dashboard.yaml清单定义了仪表板的服务端点,如下所示:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)

分配的群集IP(在我的环境中)如下。

# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   ClusterIP   10.101.199.14   <none>        443/TCP         4h
Run Code Online (Sandbox Code Playgroud)

只需创建到10.101.199.14:443的SSH隧道,并访问它(https:// localhost:8001)即可显示仪表板。

在此处输入图片说明

因此,基本上不需要使用kubectl代理并直接访问clusterIP:443是使用HTTPS访问仪表板的方法吗?

请建议有关如何使用K8S仪表板的最新,准确的文档在哪里。

环境

# kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T20:55:30Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)

Sur*_*noi 2

据我所知,您不会希望将您的 k8s 仪表板暴露给外部世界,因为这是一种访问 k8s 集群的图形方式,这就是为什么 k8s-dashboard 的服务类型是 clusterIP 而不是 LoadBalancer 或 NodePort(Minikube 使用它) )。

现在,如果您想访问仪表板而不将其暴露给外部世界。您在问题中描述了两种方法。

  • Kubectl 代理(它创建到 kube-api 服务器的 HTTP 代理)
  • Kubectl port-forward(它为 k8s-dashboard pod 创建 TCP 代理)