我对kubernetes
的想法很陌生。 我在网上找到了一些很好的教程来启动和运行我的kubernetes
集群。 现在我想向我的集群添加一个kubernetes
仪表板,这样我就可以有一个页面来观察我的 Pod 和节点的反应(即使我更像是一个 CLI 的人,一些 GUI 还不错)。 我已经下载了仪表板窗格,它已启动并运行。因为 kubernetes 集群在 Raspberry Pi 集群上运行,所以我设置了一个 NodePort 来从我的集群外部访问它。但是我遇到了一些问题,我在网上找不到任何问题。
- 我可以访问 kubernetes 仪表板,但不知何故,在我的 Linux 机器中,我的浏览器不会添加证书异常。
- 网上有些人认为NodePort不够安全。所以我对其他可能性做了一些研究。我对用于连接仪表板的入口控制器非常感兴趣。但是我没有找到任何关于设置入口控制器的良好和完整的文档(更重要的是正在发生的事情,因为网上有很多yaml文件,他们说只是运行这个,但我不知道他在做什么)。
有人可以将我引导到正确的文档/教程/或为我的 Kube 仪表板提供任何帮助吗?
其他论坛中的某个人向我发送了本教程,这非常有帮助。我也会在这里分享给所有带着同样问题来到这篇文章的人。
https://akomljen.com/kubernetes-nginx-ingress-controller/
在部署中需要使用的第一件事是入口,所以让我们从它开始。
首先,您应该创建一个入口控制器,您可以在此处找到安装指南
最相关的是第一部分 - 通用部署,其中包括以下内容:
入口控制器安装的命名空间:
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/namespace.yaml | kubectl apply -f -
入口控制器的默认后端:
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/default-backend.yaml | kubectl apply -f -
和配置图:
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/configmap.yaml | kubectl apply -f -
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/tcp-services-configmap.yaml | kubectl apply -f -
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/udp-services-configmap.yaml | kubectl apply -f -
由于您在 Raspberry Pi 上部署了集群,因此所有这些都需要手动创建。
安装入口控制器后,可以使用规则为入口部署特定配置,以将流量路由到服务。
下面是入口 yaml 文件的示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: endpoint-to-the-world
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: your-external-address-for-the-cluster
http:
paths:
- path: /console
backend:
serviceName: kubernetes-dashboard
servicePort: 443
- path: /some-other-path
backend:
serviceName: different-service
servicePort: 22
这将充当群集的外部代理,您可以将所有流量路由到任何服务。更多细节可以阅读 这里.
这应该足以公开 Kubernetes Dashboard。