将服务从BareMetal(Kubeadm)Kubernetes集群公开到外部世界

ebdffaop  于 2023-01-29  发布在  Kubernetes
关注(0)|答案(2)|浏览(142)

向外界公开BareMetal(Kubeadm)Build Kubernetes集群中的服务。我正在尝试将Nginx作为集群外部的服务访问,以在Web浏览器中获取NGINX输出。
为此,我为NGINX创建了如下所示的部署和服务

根据我的搜索,发现我们下面有暴露给外界

  • 金属Lb
  • 入口NGINX
  • 一些HELM资源

我想知道所有这3个或任何更多的方法,以这种方式帮助我学习新的东西。
GOAL

  • 将BareMetal(Kubeadm)构建的Kubernetes集群中的服务暴露给外界。
  • 如何使我的服务具有自己的公共IP以从外部群集访问?
5sxhfpxr

5sxhfpxr1#

您需要设置MetalLB以获取LoadBalancer类型服务的外部IP地址。它将为服务给予本地网络IP地址。
然后,您可以将端口80和端口443的传入流量Map到外部服务IP地址(在路由器中配置)。
我做了一个类似的设置,你可以在这里详细检查:https://developerdiary.me/lets-build-low-budget-aws-at-home/

bxjv4tth

bxjv4tth2#

您需要在集群中部署一个ingress controller,以便为您提供一个访问应用程序的入口点。传统上,在云原生环境中,它会自动为您提供一个LoadBalancer,该LoadBalancer将读取您在Ingress对象中定义的规则,并将您的请求路由到适当的服务。
最常用的入口控制器之一是Nginx Ingress Controller。您可以使用多种方式来部署它(mainfests、helm、operator)。在裸机集群的情况下,您可以阅读here
MetalLB还在测试阶段,所以如果你想使用它,它是你的选择。如果你没有一个硬要求,把入口控制器作为一个负载均衡器,你可以把它作为一个节点端口服务,可以在集群中的所有节点访问。然后你可以Map到你的DNS节点端口服务,以便入口规则进行评估。

相关问题