向外界公开BareMetal(Kubeadm)Build Kubernetes集群中的服务。我正在尝试将Nginx作为集群外部的服务访问,以在Web浏览器中获取NGINX输出。
为此,我为NGINX创建了如下所示的部署和服务
根据我的搜索,发现我们下面有暴露给外界
- 金属Lb
- 入口NGINX
- 一些HELM资源
我想知道所有这3个或任何更多的方法,以这种方式帮助我学习新的东西。GOAL
- 将BareMetal(Kubeadm)构建的Kubernetes集群中的服务暴露给外界。
- 如何使我的服务具有自己的公共IP以从外部群集访问?
2条答案
按热度按时间5sxhfpxr1#
您需要设置
MetalLB
以获取LoadBalancer
类型服务的外部IP地址。它将为服务给予本地网络IP地址。然后,您可以将端口
80
和端口443
的传入流量Map到外部服务IP地址(在路由器中配置)。我做了一个类似的设置,你可以在这里详细检查:https://developerdiary.me/lets-build-low-budget-aws-at-home/
bxjv4tth2#
您需要在集群中部署一个ingress controller,以便为您提供一个访问应用程序的入口点。传统上,在云原生环境中,它会自动为您提供一个LoadBalancer,该LoadBalancer将读取您在Ingress对象中定义的规则,并将您的请求路由到适当的服务。
最常用的入口控制器之一是Nginx Ingress Controller。您可以使用多种方式来部署它(mainfests、helm、operator)。在裸机集群的情况下,您可以阅读here。
MetalLB还在测试阶段,所以如果你想使用它,它是你的选择。如果你没有一个硬要求,把入口控制器作为一个负载均衡器,你可以把它作为一个节点端口服务,可以在集群中的所有节点访问。然后你可以Map到你的DNS节点端口服务,以便入口规则进行评估。