1
ysicing 2023-07-23 21:17:55 +08:00
30000-32767 只是默认值,这个范围可以改的。理论上你得多大规模的集群可以用完这些端口
|
2
nspih OP @ysicing 主要是他说 NodePort 没有在集群中提供均衡负载,按理来说我在外面通过比如 Nginx 负载不是就可以将请求分配均匀到不同的 service 吗?
|
3
zed1018 2023-07-23 21:36:06 +08:00
这里说的负载是 k8s service 对多个 replica pod 的负载
|
4
seers 2023-07-23 21:36:35 +08:00 via Android
很好理解啊,字面意思,没有 slb ,不同的 node 承载的流量就基本一致,但是不同规格 node 承载力不一样,把 pod 打挂了就会起新的然后继续占掉 port
|
5
nspih OP @zed1018 但是 kube-proxy 中使用的 iptables 或者 ipvs 都是对 replica pod 有负载能力的啊
|
6
nspih OP @seers 但是 pod 重启只会占用原来端口吧,而且图片上的好像是说对于不同的 service,进入的流量是随机分发,这个不是很能理解
|
7
seers 2023-07-23 21:49:21 +08:00 via Android
@nspih 一般来说不会指定一个 port ,会给一个 range ,让 k8s 调度,因为那么多 pod 你不可能都自己指定的
|
8
seers 2023-07-23 21:51:47 +08:00 via Android
而且如果你还开了 scale ,流量一上来起新 pod 也会占掉很多 port
|
9
nspih OP @seers 感谢回复,但是这个跟是否 NodePort 的 service 好像没有关系,而且 Pod 端口一般也很充足。所以比较疑惑的他说的 service 过载是啥情况,感觉他说的类似与外部负载均衡访问不同的 NodePort 服务,但是进入 k8s 内部是随机分发到 NodePort 端口这种情况,但是也没搜到这方面的知识。
|
10
wbuntu 2023-07-23 23:31:57 +08:00
没有这个说法,service 本身就可以当作一个 LB ,红框里应该是照着图片直接翻译了,图片里说的 service overload 应该指的是应用层服务过载而不是 k8s 层面的
|
11
buffzty 2023-07-24 11:18:18 +08:00
你不用理解了,不会遇到这种问题,现实中除了 ingress 其他地方基本不会开 nodeport
|
13
julyclyde 2023-07-25 08:39:40 +08:00
在所有 node 上找到相同号码的空闲端口
这么高的协调成本,失败率当然会很高 |
14
lazyfighter 2023-07-26 09:07:42 +08:00
没人这么用吧 , 维护成本太大了
|
15
momocraft 2023-07-27 01:11:47 +08:00
NodePort 本身不是为了负载均衡而设的, 大概是期待用户自己在外面做负载均衡, 比如图里的 DNS round robin
kube-proxy 的负载均衡能力相对新, 而且也不是多智能的做法, 比 DNS round robin 强得有限 这中文的 3 条和图里的配字有点对得上又好像自己写的, 是靠谱资料吗? |