背景
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
状态。
1 | # 通过以下命令驱逐节点上pod应用 |
修改 Node节点主机名
修改 kubelet 和 kube-proxy 服务配置文件
登陆 service2 机器,修改 kubelet 和 kube-proxy 服务配置文件,具体按如下修改:
本次演示,把主机名从 service2 修改为 service2-test
1 | # 停止 kubelet 和 kube-proxy 服务 |
删除 kubelet 服务生成的认证文件和客户端证书
这里回答
背景
提到的问题,如果不删除 kubelet 服务生成的认证文件
和客户端证书
,那么修改的节点主机名是不会生效。
1 | # 删除 kubelet 服务生成的认证文件和客户端证书 |
验证
1 | # 登陆到 k8s-master 机器上查看 csr,如何没有自动授权 Node加入,需要执行下面命令 |
总结
修改 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节点加入
---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---
本文链接: https://www.yp14.cn/2020/06/08/Kubernetes-Node节点主机名-修改/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!