如何从 redis 等外部系统里看到 k8s pod ip

2023-02-22 13:17:51 +08:00
 idblife
现在我们的应用运行在 k8s 的 pod 里,
redis 上看到的连接 ip 是 pod 的物理宿主机器 ip ,
通什么能够看到具体哪个应用或者 pod ip 在连接 redis ?
istio ?
2356 次点击
所在节点    Kubernetes
26 条回复
defunct9
2023-02-22 13:21:34 +08:00
看不到啊看不到
ql562482472
2023-02-22 13:24:48 +08:00
放进去就行了。
换种思路想一想,是不是 etcd 里有全部信息?是不是 K8SAPI 就能看到全部信息?
idblife
2023-02-22 13:33:05 +08:00
@ql562482472
你知道我在说啥么。。。
SweetEriri
2023-02-22 13:38:45 +08:00
istio 太麻烦了 直接命令或者 api 查询下就行了
salmon5
2023-02-22 13:42:38 +08:00
写个插件吧,往 redis 塞下 pod 的 ip
julyclyde
2023-02-22 13:42:46 +08:00
你的真实需求是什么呢?
获得了访问 redis 的 pod 的 IP ,然后呢?
GopherDaily
2023-02-22 13:47:15 +08:00
让应用访问访问的时候使用不同的账号。

你这个不是上层和中层应用的问题了,是 k8s CNI ,阿里云 VPC ,或者 TCP 之类处理的,TCP 从宿主机网卡出,所以 IP 就是宿主机的,虽然不知道具体,但是一般默认都是这样的,建议你走上面的思路
idblife
2023-02-22 13:56:44 +08:00
@julyclyde
应用治理
比如一个 redis 要下线,想找到使用它的所有工程提前通知
ruanimal
2023-02-22 15:27:11 +08:00
看描述不是缺注册中心吗
nilai
2023-02-22 15:43:00 +08:00
用 ebpf 的 cni 是否能达到这个效果呢?
idblife
2023-02-22 15:54:04 +08:00
@ruanimal
注册中心的话拿到的 pod ip ,redis 看到的是 node ip 。
注册中心在我描述的场景里有啥作用呢?
idblife
2023-02-22 15:56:42 +08:00
@nilai
理论上是可以的,但是换 cni 这个有点太刺激了
julyclyde
2023-02-22 17:29:20 +08:00
@idblife 按说如果你的 redis 也在 k8s 集群内,pod 访问过来应该是 pod 自己的 IP 地址吧;经过 node 的 NAT 的时候才会变成 node 的 IP 地址

redis 下线前清退客户端这个需求,其实是服务治理的问题,我感觉你做反了方向了。
ql562482472
2023-02-22 17:33:44 +08:00
@idblife 我看你不太知道我在说啥
runzhliu
2023-02-22 17:37:21 +08:00
@idblife 听起来怪怪的,注册中心和 redis 都在集群外?三层网络下 pod 流量出去走了 NAT ,redis 看到的是节点 IP 是正常的,如果换 CNI 应该是适合大二层的场景了,或者容器配双网卡,一个三层一个二层。
victorc
2023-02-22 17:54:33 +08:00
@idblife 应用治理 就是在链路 中间加一道 proxy ,在 proxy 里面随便造,istio 本质也是这样做的
liuhuan475
2023-02-22 18:35:22 +08:00
idblife
2023-02-22 19:42:32 +08:00
@runzhliu
redis 在集群外,注册中心就是 kubernetes 的 etcd 啊
idblife
2023-02-22 20:04:29 +08:00
@julyclyde
redis 在 k8s 集群外,要都在集群里就好办了
bowser1701
2023-02-22 20:46:30 +08:00
Pod IP 都是动态的,不如用账号做划分

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/918217

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX