如何在Kubernetes中公开服务?

如何在Kubernetes中公开服务?,kubernetes,Kubernetes,我的组织通过Rancher提供集装箱服务。我使用一些web接口启动rabbitmq服务。服务启动正常。通过外部IP访问此服务时遇到问题 使用kubectl,我尝试获取正在运行的服务的列表: $ kubectl get services -n flash NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rabbitmq-ha C

我的组织通过Rancher提供集装箱服务。我使用一些web接口启动rabbitmq服务。服务启动正常。通过外部IP访问此服务时遇到问题

使用kubectl,我尝试获取正在运行的服务的列表:

$ kubectl get services -n flash
NAME                    TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                       AGE
rabbitmq-ha             ClusterIP   XX.XX.X.XXX   <none>        15672/TCP,5672/TCP,4369/TCP   46m
rabbitmq-ha-discovery   ClusterIP   None          <none>        15672/TCP,5672/TCP,4369/TCP   46m
$kubectl获得服务-n flash
名称类型CLUSTER-IP外部IP端口年龄
rabbitmq ha ClusterIP XX.XX.X.XXX 15672/TCP、5672/TCP、4399/TCP 46m
rabbitmq ha发现群集无15672/TCP、5672/TCP、4399/TCP 46m

如何将“rabbitmq ha”服务公开给外部字,以便通过IP地址15672等访问它?现在,外部IP是无的。我不知道如何让kubernetes分配一个。

如果您在受支持的云环境(AWS、GCP、Azure…等)中,那么您可以创建一个类型的服务,并将配置一个外部负载平衡器,您的云提供商将分配一个外部IP或DNS。这上面有文件

如果您使用的是prem上的裸机,那么您可以使用它来提供LoadBalancer的实现

除此之外,您还可以使用类型服务公开一个服务,以便在kubernetes集群外部访问。以下是如何做到这一点


使用LoadBalancer类型服务的一个缺点是,对于每个服务,都会提供一个外部负载平衡器,这是非常昂贵的,作为替代,您可以使用抽象。Ingress由许多软件实现,如nginx、HAProxy、traefik。

谢谢。我刚刚注意到Rancher portal能够向应用程序添加入口。我能够设置它,现在我可以从web浏览器访问RabbitMq的管理界面。