所以这个想法是 Kubernetes 仪表板访问 Kubernetes API 为我们提供在 Kubernetes 集群中运行的不同“种类”的漂亮可视化,我们访问 Kubernetes 仪表板的方法是通过 Kubernetes API 的代理机制,然后可以将其暴露给公共主机供公众访问。
我的问题是,我们是否有可能通过 Kubernetes Dashboard 的公开地址访问 Kubernetes 集群内的其他服务的 Kubernetes API 代理机制?
所以这个想法是 Kubernetes 仪表板访问 Kubernetes API 为我们提供在 Kubernetes 集群中运行的不同“种类”的漂亮可视化,我们访问 Kubernetes 仪表板的方法是通过 Kubernetes API 的代理机制,然后可以将其暴露给公共主机供公众访问。
我的问题是,我们是否有可能通过 Kubernetes Dashboard 的公开地址访问 Kubernetes 集群内的其他服务的 Kubernetes API 代理机制?
你当然可以。因此,使用 设置代理后kubectl proxy
,您可以使用以下格式访问服务:
http://localhost:8001/api/v1/namespaces/kube-system/services/<service-name>:<port-name>/proxy/
例如对于http-svc
和端口名称http
:
http://localhost:8001/api/v1/namespaces/default/services/http-svc:http/proxy/
注意:它不一定用于公共访问,而是您从公共机器(例如您的笔记本电脑)连接到私有 Kubernetes 集群的代理。
您可以通过将服务更改为NodePort
:
$ kubectl -n kube-system edit service kubernetes-dashboard
您应该看到yaml
服务的表示。更改type: ClusterIP
并type: NodePort
保存文件。
注意:只有当您选择在浏览器中安装用户证书时,才能使用这种访问仪表板的方式。可以使用 kubeconfig 文件用来联系 API Server 的证书。
请查看以下文章和 URL 以获得更好的理解:
希望对您有所帮助!
暴露 Kubernetes Dashboard 根本不安全,但您的答案是关于需要外部服务访问的 K8s API Server。
正确答案因您的平台和基础设施而异,但作为一般要点