暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

这就是k8s系列之三(自定义Node Port范围)

埋头过坎 2020-11-29
999

    之前的文章介绍了k8s中涉及的IP和Port, 对于某个Service而言, 如果不是在云服务提供商的环境下(即bare metal环境), 一般不具备LoadBalancer的条件, 要对外提供服务可通过Ingress或者Node Port的方式, 本文就主要是讨论采用Node Port方式下如何自定义Node Port的范围。

    先来看一下缺省的Node Port的范围:

    [root@host01 ~]# kubectl describe  pod kube-apiserver-xxx -n kube-system |grep port-range
    --service-node-port-range=30000-32767

         可以看到缺省的范围为30000-32767,  因为某些原因, 笔者希望将范围修改为 8000-32767。下面是具体的过程:

            如之前的文章介绍, k8s集群是采用kubespary搭建的, 集群版本为 k8s v 1.19 ,实际上已经采用了kubeadm来安装了。 出于谨慎因素,先是把原有的配置文件备份了一下,如下:

      cp etc/kubernetes/manifests/kube-apiserver.yaml etc/kubernetes/manifests/kube-apiserver.yaml.bak

      然后修改配置文件中的--service-node-port-range选项:

        vi etc/kubernetes/manifests/kube-apiserver.yaml
        - --service-node-port-range=8000-32767

        再杀掉apiserver的pod, 因为有相关的kubelet等系统服务在守护,正常情况下, 应该会立马被重新拉起:

          kubectl delete pod $apiserver_pods -n kube-system
          [root@host01 ~]# kubectl describe pod $apiserver_pods -n kube-system |grep port-range
          --service-node-port-range=30000-32767

          可是发现并没有生效, 查看后台进程的启动时间,确实是重启了,但新的配置没有生效:

            [root@host01 ~]# ps -ef|grep kube-api
            root 94963 94944 67 23:31 ? 00:00:31 kube-apiserver --xxx --service-node-port-range=30000-32767 --xxx

                很是诡异, 再次重新检查一次,配置文件切实是修改了, 进程也重启了就是不生效。于是重启kubelet服务:

              [root@host01 ~]# systemctl daemon-reload
              [root@host01 ~]# systemctl restart kubelet

                  依然不凑效, 然后又试着杀死kube-api进程, 依然不生效。

                  上网找了下资料, 没有人有类似的情况。 在篇文章中提到了, kubelet等守护服务会监控/etc/kubernetes/manifests/下文件的变化,突然想到会不会是同目录下的备份配置文件影响到了呢? 于是就把备份文件move到其它目录去, 再次删除kube api的pod, 再次查看新起来的pod, 这次终于修改对了。

                [root@host01 ~]# ps -ef|grep kube-api
                root 68873 68854 35 23:28 ? 00:00:32 kube-apiserver --xxx --service-node-port-range=8000-32767 --xxx


                文章转载自埋头过坎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论