为什么集群节点的ip不是当前pod的ip

c9qzyr3d  于 2021-06-14  发布在  Redis
关注(0)|答案(1)|浏览(418)

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

  1. ~ 23:45:03
  2. $ kubectl exec -it redis-app-0 /bin/ash
  3. /data # ifconfig
  4. eth0 Link encap:Ethernet HWaddr 02:42:AC:1E:E0:1E
  5. inet addr:172.30.224.30 Bcast:172.30.231.255 Mask:255.255.248.0
  6. UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
  7. RX packets:78447 errors:0 dropped:0 overruns:0 frame:0
  8. TX packets:64255 errors:0 dropped:0 overruns:0 carrier:0
  9. collisions:0 txqueuelen:0
  10. RX bytes:74638073 (71.1 MiB) TX bytes:74257972 (70.8 MiB)
  11. lo Link encap:Local Loopback
  12. inet addr:127.0.0.1 Mask:255.0.0.0
  13. UP LOOPBACK RUNNING MTU:65536 Metric:1
  14. RX packets:3922 errors:0 dropped:0 overruns:0 frame:0
  15. TX packets:3922 errors:0 dropped:0 overruns:0 carrier:0
  16. collisions:0 txqueuelen:1000
  17. RX bytes:297128 (290.1 KiB) TX bytes:297128 (290.1 KiB)
  18. /data # /usr/local/bin/redis-cli -c
  19. 127.0.0.1:6379> cluster nodes
  20. a1ecebe5c9dc2f9edbe3c239c402881da10da6de 172.30.224.22:6379@16379 myself,master - 0 1582644797000 0 connected
  21. 127.0.0.1:6379>

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

ffdz8vbo

ffdz8vbo1#

如何在redis配置中定义这个ip?雷迪斯一定是从什么地方拿走的。请记住 PodPod 重新创建,因此不能保证redis节点中静态定义的ip地址保持不变。我甚至想说,你几乎可以百分之百肯定它会改变。
您可以通过几种方法检查特定接口的ip地址。其中之一是通过运行:

  1. hostname -I | awk '{print $1}'

您可以尝试将init容器添加到 Pod 运行简单的bash脚本,使用上面的命令检查当前的主机ip地址,然后相应地填充redis config。但在我看来,这似乎是一个过度,我几乎可以肯定它可以做得更容易。如果redis节点默认绑定到所有ip地址( 0.0.0.0 ), cluster nodes 输出应该显示您的当前ip地址 Pod .
您是否通过一些 ConfigMap ?
请分享更多与您的 Deployment 所以你可以得到更准确的答案来解决你的问题。

相关问题