修改K8s的nodeport模式暴露的端口范围

2019-03-11  本文已影响0人  桩i

2019-03-11
VMware workstation安装K8s单节点
问题:
按照kubernetes权威指南安装的K8s,到myweb那一步的时候,本地主机死活访问不到Pod。
排查:
使用以下命令查看service地址及Pod端口,然后本地curl。

kubectl get svc

通了。
然后使用本地IP+PORT的方式curl,也通了。
但是在本机浏览器打不开,所以问题定位在本地与虚拟机之间端口问题。
怀疑服务器防火墙问题,但防火墙是关闭的,然后怀疑iptables规则问题,开放端口后还不通。然后求助公司大神,得知是因为公司内网只开放8000-9000端口,其他都墙了。

解决:
一、修改默认端口限制
修改K8s的NodePort默认开放的端口范围
由于是二进制安装的K8s,没有apiserver.yaml文件可供修改。
修改/etc/kubernetes/apiserver文件,添加如下内容并重启apiserver

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16 --service-node-port-range=8000-9000"
systemctl restart kube-apiserver
image
二、修改yaml文件中的PORT为8000-9000范围内的端口
vi /data/k8s/myweb-svc.yaml
将30001修改为8000-9000之间的端口

kubectl apply -f /data/k8s/myweb-svc.yaml   重新部署
kubectl get svc    再次查看端口是否已经更新

原文链接:https://blog.csdn.net/yelllowcong/article/details/80680408

如果是yaml格式的apiserver文件,修改如下

vim /etc/kubernetes/manifests/kube-apiserver.yaml
 - --service-node-port-range=8222-9555
image.jpg

修改k8s配置后 重启操作

[root@k8s-master dashboard]# systemctl daemon-reload
[root@k8s-master dashboard]# systemctl restart kubelet
[root@k8s-master dashboard]# systemctl status kubelet
上一篇 下一篇

猜你喜欢

热点阅读