繁体   English   中英

从其他 VM 检查 kubernetes pod 名称

[英]Check kubernetes pod name from other VM

我在 Azure 中与我的 kubernetes 在同一网络中有一个单独的 VM。 我有一个卡夫卡吊舱,我可以使用 IP 到达这个吊舱。 问题是 pod IP 一直在变化。

每次吊舱 IP 发生变化时,有什么方法可以获得正确的 IP?

我建议使用kubernetes 服务来公开 pod。 这避免了 POD IP 更改的问题,因为服务 IP 不会更改。

Kubernetes ServiceTypes允许您指定所需的服务类型。 默认值为ClusterIP

类型值及其行为是:

ClusterIP :在集群内部 IP 上公开服务。 选择此值使服务只能从集群内访问。 这是默认的服务类型。

NodePort :在 static 端口(NodePort)上公开每个节点的 IP 上的服务。 自动创建 NodePort 服务路由到的 ClusterIP 服务。 您可以通过以下请求从集群外部联系 NodePort 服务:。

LoadBalancer :使用云提供商的负载均衡器在外部公开服务。 自动创建外部负载均衡器路由到的 NodePort 和 ClusterIP 服务。

ExternalName :通过返回 CNAME 记录,将服务映射到 externalName 字段的内容(例如 foo.bar.example.com)

由于您从 kubernetes 集群本身访问 POD,因此使用NodePortLoadBalancer类型的服务。

正如@arghya-sadhu 所提到的,已经使用 Kubernetes 服务是最好的选择。 kubernetes 服务具有 IP,具体取决于 kubernetes 服务的类型。

  • 对于ClusterIP类型的服务,您将获得一个集群 IP 地址
  • 对于Load Balancer类型的服务,您将获得负载均衡器 IP 地址(即)公共 IP 地址
  • 对于NodePort类型的服务,您可以使用节点的地址进行访问。

但是,无论服务类型是什么,您都可以使用集群内的 kube-DNS 访问该服务。 因此,假设您的服务名称是other-service并且它公开了端口8080 ,在命名空间abc上运行,那么您可以按如下方式访问该服务:

http://other-service.abc:8080

由于您的 VM 在集群外部运行,因此最好使用 Loadbalancer 并使用 Loadbalancer url 或 IP 地址访问 pod。 您可以设置一个入口,以防集群中有多个要连接的 Pod。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM