Kubernetes service对外访问的问题


如题,service如果采用nodeport的方式,访问的方式是node:port,那么如果node1挂了,那么node1:port的访问就不可用了。必须修改成node2:port的访问方式?

是不是可以用k8s里的LoadBalance方式?还不是很懂,有人能解毒吗?
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自:


nodePort跟LoadBalancer其实是同一种方式。参见(https://github.com/kubernetes/ ... -types)

区别在于LoadBalancer比nodePort多了一步,就是可以调用cloud provider去创建LB来向节点导流。cloud provider好像支持了openstack、gce等系统。

nodePort的原理在于在node上开了一个端口,将向该端口的流量导入到kube-proxy,然后由kube-proxy进一步导给对应的pod。

所以service采用nodePort的方式,正确的方法是在前面有一个lb,然后lb的后端挂上所有node的对应端口。这样即使node1挂了。lb也可以把流量导给其他node的对应端口。

要回复问题请先登录注册