从其他vm检查kubernetes pod名称

bvpmtnay  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(380)

我有一个单独的虚拟机在同一个网络作为我的kubernetes在azure。我有一个Kafka吊舱,我可以用ip到达这个吊舱。问题是吊舱ip一直在变化。
每次pod ip发生变化时,有没有办法获得正确的ip?

2ic8powd

2ic8powd1#

我建议使用kubernetes服务来暴露pod。这避免了pod ip中的更改问题,因为服务ip没有更改。
Kubernetes ServiceTypes 允许您指定所需的服务类型。默认值为 ClusterIP .
类型值及其行为是: ClusterIP :公开群集内部ip上的服务。选择此值将使服务只能从集群中访问。这是默认的服务类型。 NodePort :在静态端口(nodeport)公开每个节点的ip上的服务。自动创建nodeport服务路由到的clusterip服务。您可以通过请求从集群外部联系nodeport服务:。 LoadBalancer :使用云提供程序的负载平衡器对外公开服务。自动创建外部负载平衡器路由到的nodeport和clusterip服务。 ExternalName :通过返回cname记录,将服务Map到externalname字段的内容(例如foo.bar.example.com)
因为您是从kubernetes集群外部访问pod,所以请使用 NodePort 或者 LoadBalancer 类型服务。

vfh0ocws

vfh0ocws2#

正如@arghya sadhu所提到的,已经开始使用kubernetes服务,这是最好的选择。kubernetes服务的ip取决于kubernetes服务的类型。
服务类型 ClusterIP ,您将获得群集ip地址
服务类型 Load Balancer ,您将获得一个负载均衡器ip地址(即公共ip地址)
服务类型 NodePort ,您可以使用节点的地址进行访问。
但是,无论服务的类型是什么,您都可以使用集群中的kube dns来访问服务。假设你的服务名是 other-service 它暴露了端口 8080 ,在命名空间上运行 `` ,则可以按以下方式访问服务:
http://other-service.:8080
因为您的vm在集群之外运行,所以最好使用loadbalancer并使用loadbalancer url或ip地址访问pod。如果集群中有多个pod需要连接,可以设置入口。

相关问题