isun

kubernetes

浏览:1,145

八月 6, 2020

默认情况下kubernetes会在集群所有主机上开放nodeport,我们可以限制nodeport端口只在固定几台主机上开放,这几台主机作为专用的集群流量入口,这样便于管理,也避免了node节点上端口的浪费。

通过kube-proxy –help命令可以查看kube-proxy支持的参数

4a62e904c28dc5e70b0bedbb993c395c.png

其中–nodeport-address参数可以用来指明在哪些节点上开放nodeport

默认为空情况下会将kube-proxy所在节点暴露为nodeport主机,因为目标是固定主机暴露,因此有两种配置方式:

第一种:将要暴露nodeport的主机ip配置到集群所有主机的kube-proxy中,例:

–nodeport-addresses=192.168.184.201/32, 192.168.184.202/32

这样整个集群的配置可以统一起来,但是如果变更要暴露的主机地址需要修改集群所有kube-proxy配置,比较麻烦。

第二种:将集群所有主机kube-proxy的–nodeport-address配置为一个集群内不存在的主机地址,这样默认不会暴露任何一个节点;

修改需要暴露的主机的kube-proxy配置,将 –nodeport-address 配置为自己的IP地址,例:

# 192.168.184.201 主机kube-proxy配置修改为

–nodeport-addresses=192.168.184.201/32

修改后重启kube-proxy立刻生效,例:

systemctl daemon-reload

systemctl restart kube-proxy

以上方法适用于二进制部署的kube-proxy,容器化部署的需要修改kube-proxy的confimap:

kubectl edit cm -n kube-system kube-proxy

修改 nodePortAddresses 为指定ip即可,例:

nodePortAddresses: [ 192.168.184.201/32 , 192.168.184.202/32 ]

容器化部署方式没有验证,需要确定是否需要重启容器才能生效。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐