当前位置 博文首页 > 文章内容

    Kubernetes Node节点主机名 修改

    作者: 栏目:未分类 时间:2020-07-21 9:01:18

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    Kubernetes Node节点主机名 修改

    来自专辑
    Kubernetes知识圈

    背景

    Kubernetes 集群环境中,有时候需要修改 Node 节点主机名,这时我们应该如何操作?

    有些同学,在更改了 kubelet.conf 配置中 hostname-override 参数,也更改了 kube-proxy-config.yml 配置中 hostnameOverride 参数,删除 Node 节点并且重启 kubelet 和 kube-proxy 服务,但主机名并没有修改,这是为什么?下文会给出解释。

    环境是使用 二进制搭建的 kubernetes v1.18.2 版本

    准备工作

    大家要知道一点,Node节点主机名更改,需要先删除Node节点,在删除节点前,我们需要把该节点上的Pod应用服务驱逐到其它节点上。

    注意,如果集群中只有一个Node节点,不能使用驱逐命令,因为使用驱逐命令后,所有Pod会处于 Pending 状态。

    # 通过以下命令驱逐节点上pod应用$ kubectl drain service2 --delete-local-data --ignore-daemonsets
    # 查看node节点,service2 上应用服务驱逐完后会标记为不可调度$ kubectl get node
    NAME STATUS ROLES AGE VERSIONservice2 Ready,SchedulingDisabled <none> 24d v1.18.2service3 Ready <none> 24d v1.18.2
    # 删除 service2 节点$ kubectl delete node service2

    修改 Node节点主机名

    修改 kubelet 和 kube-proxy 服务配置文件

    登陆 service2 机器,修改 kubelet 和 kube-proxy 服务配置文件,具体按如下修改:

    本次演示,把主机名从 service2 修改为 service2-test

    # 停止 kubelet 和 kube-proxy 服务$ systemctl stop kubelet$ systemctl stop kube-proxy
    # 修改 kubelet.conf 配置文件中 hostname-override 参数$ vim /opt/kubernetes/cfg/kubelet.conf
    # 修改完后,查看$ grep hostname-override /opt/kubernetes/cfg/kubelet.conf
    --hostname-override=service2-test \
    # 修改 kube-proxy.kubeconfig 配置文件中 hostnameOverride 参数$ vim /opt/kubernetes/cfg/kube-proxy-config.yml
    # 修改完后,查看$ grep hostnameOverride /opt/kubernetes/cfg/kube-proxy-config.yml
    hostnameOverride: service2-test # 注册到k8s的节点名称唯一

    删除 kubelet 服务生成的认证文件和客户端证书

    这里回答背景提到的问题,如果不删除 kubelet 服务生成的认证文件客户端证书,那么修改的节点主机名是不会生效。

    # 删除 kubelet 服务生成的认证文件和客户端证书$ rm -f /opt/kubernetes/cfg/kubelet.kubeconfig$ rm -f /opt/kubernetes/ssl/kubelet*
    # 重新启动 kubelet 和 kube-proxy 服务$ systemctl start kubelet$ systemctl start kube-proxy

    验证

    # 登陆到 k8s-master 机器上查看 csr,如何没有自动授权 Node加入,需要执行下面命令$ kubectl  certificate approve csr-xhjk5
    NAME AGE SIGNERNAME REQUESTOR CONDITIONcsr-xhjk5 31m kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Pending
    # 执行上面命令成功后,会看到下面结果$ kubectl get csr
    NAME AGE SIGNERNAME REQUESTOR CONDITIONcsr-xhjk5 31m kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Approved,Issued
    # 查看 node 节点,成功加入node节点,并且主机名也修改成功$ kubectl get node
    NAME STATUS ROLES AGE VERSIONservice2-test Ready <none> 31m v1.18.2service3 Ready <none> 24d v1.18.2

    总结

    修改 Node节点主机名顺序如下:

    • 1、使用 kubectl drain 命令驱逐节点上Pod
    • 2、使用 kubectl delete node 命令删除需要改名的节点
    • 3、停止 kubelet 和 kube-proxy 服务
    • 4、修改 kubelet.conf 和 kube-proxy-config.yml 配置
    • 5、删除 kubelet 服务生成的认证文件客户端证书
    • 6、启动 kubelet 和 kube-proxy 服务
    • 7、使用命令 kubectl get csr 和 kubectl certificate approve 命令授权 node节点加入

    热门文章推荐

    最后

    • 欢迎您加我微信【ypxiaozhan01】,拉您进技术群或者扫下面群二维码,一起交流学习...