Kubernetes 如何认识一个Pod#u a';从Pod_b中的另一个a容器_b获取的端口地址?

Kubernetes 如何认识一个Pod#u a';从Pod_b中的另一个a容器_b获取的端口地址?,kubernetes,Kubernetes,示例: NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE test pod_A 1/1 Running 1 17d 192.168.1.171 10-0-0-171.master test pod_B 1/1 Running 1 17d

示例

NAMESPACE     NAME       READY     STATUS    RESTARTS   AGE       IP                NODE
test         pod_A       1/1       Running       1      17d   192.168.1.171     10-0-0-171.master
test         pod_B       1/1       Running       1      17d   192.168.1.172     10-0-0-172.node
通过使用:

kubectl exec -it pod_B --namespace=test -- sh
我可以把一个炮弹装进我的吊舱里的容器里

但是,当我在容器b的外壳中时,如何获得Pod_A的端口地址“192.168.1.171”

有一个类似的问题,一些官方文件如和 . 但这些并不能解决我的问题

-----------更新-----------

最近,我使用K8s apiserver修复了它。在Pod_b的容器_b中,我可以从
http://k8s_apiserver:port/api/v1/pods
,解析它,并在末尾获得Pod_A的端口但是,有没有更简单的方法来处理它呢?

您可以使用它来在您的POD之间发现服务


当您为您的pod
pod_a
创建一个名为
service_a
的服务时,该服务将显示它自己的IP地址,该地址指向您的pod地址。该服务还将获得一个dns名称,如
service\u a.service.default.cluster.local
。当您想从
pod_B
通信到
pod_A
时,您现在可以使用dns名称,不再需要担心
pod_A
的ip地址

谢谢,我能清楚地理解你的观点。但是,事实上,我使用命令部署了一个Redis集群:
Redis-trib.rb create--replications1host1:port1。。。hotn:portN
然后在pod_B的容器_B中有一个服务连接redis集群来读取和写入值。这就是为什么我需要获取pod_A(redis集群)的端口,我还需要获取podA中podB的ip地址。你找到解决办法了吗?使用环境变量还是其他?如果你有解决办法,请告诉我。谢谢。最后,我使用服务(环境变量和dns)得到了解决方案。这里是参考:例如,服务“redis master”,它公开TCP端口6379,并已分配集群IP地址10.0.0.11。REDIS\u主服务\u主机=10.0.0.11 REDIS\u主服务\u端口=6379@HuaZhang使用环境变量和DNS,是解决这个问题的静态方法,而不是动态方法。服务重新启动后,就像“Redis Master”的服务停止然后重新启动一样,IP地址已从
10.0.0.11
更改为
10.0.0.21
,您必须手动修复环境值。如果您想自己更改这些ENV_值,您可以使用Kubernetes API获得IP地址,而显然,Kubernetes集群拥有自己的“Kubernetes”服务。