Kubernetes 为什么群集节点';s ip不是当前pod';s ip

Kubernetes 为什么群集节点';s ip不是当前pod';s ip,kubernetes,redis,Kubernetes,Redis,我登录kubernetes(v1.15.2)pod检查当前redis群集ip,但问题是redis群集(redis:5.0.1-alpine)ip不是当前pod的ip: ~ ⌚ 23:45:03 $ kubectl exec -it redis-app-0 /bin/ash /data # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:1E:E0:1E inet addr:172.30.224.30 Bcast

我登录kubernetes(v1.15.2)pod检查当前redis群集ip,但问题是redis群集(redis:5.0.1-alpine)ip不是当前pod的ip:

~ ⌚ 23:45:03
$ kubectl exec -it redis-app-0 /bin/ash
/data # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:1E:E0:1E
          inet addr:172.30.224.30  Bcast:172.30.231.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:78447 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64255 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:74638073 (71.1 MiB)  TX bytes:74257972 (70.8 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:3922 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3922 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:297128 (290.1 KiB)  TX bytes:297128 (290.1 KiB)

/data # /usr/local/bin/redis-cli -c
127.0.0.1:6379> cluster nodes
a1ecebe5c9dc2f9edbe3c239c402881da10da6de 172.30.224.22:6379@16379 myself,master - 0 1582644797000 0 connected
127.0.0.1:6379>

pod的ip是:172.30.224.30,redis的ip是:172.30.224.22,有什么问题吗?有可能解决吗?

在您的redis配置中如何定义此ip?Redis一定是从什么地方拿走的。请记住,重新创建
Pod
时,
Pod
ip可能会发生更改,因此您无法保证在Redis节点中定义的ip地址将保持不变。我甚至想说,你几乎可以100%肯定它会改变

您可以通过几种方式检查特定接口的IP地址。其中之一是通过运行:

hostname -I | awk '{print $1}'
您可以尝试向运行简单bash脚本的
Pod
添加init容器,该脚本将检查当前主机ip地址,例如使用上述命令,然后相应地填充redis config。但在我看来,这似乎是一种矫枉过正的做法,我几乎可以肯定这可以更容易地做到。如果您的redis节点默认绑定到所有IP地址(
0.0.0
),
集群节点
输出应显示您的
Pod的当前IP地址

您是否通过一些
ConfigMap
向您的Pod提供Redis配置


请共享与部署相关的更多详细信息,以便您可以获得更准确的答案,从而解决您的特定问题。

提供部署名称此IP在您的redis配置中是如何定义的?Redis一定是从什么地方拿走的。您是如何设置redis实例的?