我是整个Kubernetes社区的新手,目前我正在尝试使用Ingress Nginx公开一个仪表板。我试过几件事,但我找不到一个很好的解释来解释如何用Ingress暴露仪表板。我现在所拥有的只是一个可以通过"kubectl port forward"访问的Dashboard。我还安装了Ingress Nginx,控制器正在运行。我应该如何开始为kubernetes仪表板创建Ingress?
对于像您这样的裸金属环境,仅靠Nginx Ingress是不够的,因为您缺少了一个负载均衡器,该均衡器通常在AWS、谷歌云等公共云上自动提供。
要在裸机环境中通过入口资源公开服务,您有两个选项。
节点端口
带有NodePort的服务在Kubernetes集群的每个节点上的一个静态端口上公开。要做到这一点,只需编辑kubernetes-dashboard
服务(请注意,命名可能会根据您安装Kubernete仪表板的方式而更改(:
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
并且将CCD_ 2改变为CCD_。完成此操作后,再次检查您的服务:
kubectl -n kubernetes-dashboard get svc kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.43.120.193 <none> 443:31120/TCP 9m7s
如果您查看PORT(S(输出,您将看到一个随机端口被暴露(在我的示例31120中(。现在要访问您的仪表板,您只需要使用:
https://node-ip:31120
MetalLB
这是一个更酷的解决方案,因为它将允许您使用LoadBalancer类型的服务,就像您在公共云提供商上一样。这需要一些基本的网络知识,但它非常易于使用,并且对于测试环境非常灵活。您可以在MetalLB网站上找到更多信息。
这里还有几个有用的链接,可以更好地理解我上面解释的概念。
Nginx Ingress-裸金属注意事项
Kubernetes服务