按照如下的指南进行的 nodeport 方式的暴露服务,
https://github.com/easzlab/kubeasz/tree/master/docs/practice/go_web_app
K8S 版本是 1.18
最后做出来的效果是, 请求 nodeport 的地址,不管是一个的,还是不同节点的 nodeport 地址, 都是请求到了同一个 pod 里 (反应是 instance id 相同, 不是上面指南里的 不同)
确认 coredns 是正常的, 分布在两个节点里的各个 pod 也是正常的, 请求 pod 的 ip 和端口的方式,instance id 都是不同的。
百思不得其解, 请教各位大佬, 是咋回事? 难道是对 nodeport 的理解有误解? nodeport 不是在 pod 后端服务之间负载均衡, 是 绑定唯一 pod,其他 pod 作为备份? 感觉有那里不对呀
1
jwangkun 2020-10-15 20:23:50 +08:00
|
2
lff0305 2020-10-15 21:31:52 +08:00
kubectl get ep -n <namespace>
看看 hellogo-svc 的 endpoint 是不是正常(应该是三个) |
3
joyme 2020-10-15 23:39:05 +08:00
看看 service 的 sessionAffinity
|
4
kiddingU 2020-10-16 09:23:04 +08:00
externalTrafficPolicy 这个确定不是设置的 local?
|
5
xiaoyanbot OP 搞定了 是内核的一个问题
|
6
Gzp 2020-10-16 10:01:41 +08:00
@xiaoyanbot #5 不写一片文章介绍一下啥问题嘛
|
7
tamer 2020-10-16 16:15:09 +08:00 1
如果有人搜索解决办法进到这里看到你的解决方案不知作何感想
即便回答没有帮到,但简单的描述一下自己的解决办法,哪怕只是索引关键词都可以,并不会浪费多少时间 这样恶性循环,又会被说中文社区质量堪忧不是 |