之前在stackoverflow上已经提出并回答了这个问题,但是由于我是K8的新手,所以我不明白答案。
假设我有两个容器,每个容器都放在一个单独的POD中(因为我认为这是推荐的方法),我想我需要为两个容器分开创建一个服务。
谢谢 齐格弗里德
答案 0 :(得分:2)
我的Java应用程序代码如何获取服务的IP地址?
您需要创建一个服务来暴露Pod的端口,然后只需要使用服务名称,kube-dns就会解析Pod的IP地址
我的Java应用程序代码如何获取另一个IP地址 POD /容器(来自服务)?
是,使用服务名称
这将是IP地址的列表,因为它们是无状态的,并且它们 可能会被复制。这是正确的吗?
该服务将在与选择器匹配的所有Pod之间进行负载平衡,因此它可以是0、1或任意数量的Pod
如何选择最不忙的POD实例进行通信?
常见方法是循环策略,但是这里有其他特定的平衡策略 https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs
干杯;)
答案 1 :(得分:0)
您不需要获取任何IP,您可以使用服务名称(DNS)。因此,如果您将服务称为“ java-service-1”并暴露了端口80,则可以从集群内部以这种方式访问它:
如果服务位于其他名称空间中,则还必须添加该名称空间(请参见https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/)
您自己也不要选择最不忙的实例,可以将服务配置为LoadBalancer,Kubernetes会为您完成所有这些操作(请参见https://kubernetes.io/docs/concepts/services-networking/)