Kubernetes1.20.9摘掉一个master节点再重新加入(ETCD需要注意的)

10 篇文章 0 订阅
6 篇文章 0 订阅

背景:

参照持续升级过程:Kubernetes 1.16.15升级到1.17.17,Kubernetes 1.17.17升级到1.18.20Kubernetes 1.18.20升级到1.19.12 Kubernetes 1.19.12升级到1.20.9(强调一下selfLink)。由于系统都是centos7的。我想把节点摘掉重新安装一下系统(系统替换为centos8.2)然后重新加入集群。以k8s-master-03节点为例…

主机名系统ip
k8s-vipslb10.0.0.37
k8s-master-01centos710.0.0.41
k8s-master-02centos710.0.0.34
k8s-master-03centos710.0.0.26
k8s-node-01centos710.0.0.36
k8s-node-02centos710.0.0.83
k8s-node-03centos710.0.0.40
k8s-node-04centos710.0.0.49
k8s-node-05centos710.0.0.45
k8s-node-06centos710.0.0.18

1. 升级更新过程:

1.将k8s-master-03节点设置为不可调度,并驱逐节点上pod。

kubectl drain k8s-master-03 --ignore-daemonsets

2. 删除k8s-master-03节点

kubectl delete nodes k8s-master-03

3. 重装系统

服务器是腾讯云的cvm。后台直接选择了centos8镜像重新初始化了!(当然了 我自己定制化过一个containerd kubeadm的基础镜像,就直接引用了这个镜像呢)

4. 升级内核

虽然centos8默认内核是4.18了,但是我还是想个人升级一下内核:

1. 安装epel源

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

image.png

2. 查看并升级内核到ml版本

查询源中kernel版本,最终选择了ml主线最新版本…

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum  --enablerepo=elrepo-kernel  install  kernel-ml

image.png
最近网比较抽筋,很慢的

关于ml lt版本:
kernel-lt(长期支持版本)
kernel-ml(主线最新版本)
一般的长期稳定支持版就好了,嗯我手贱选择了ml版本了…

3. 编辑引导配置文件并重新生成引导

 vi /etc/default/grub 

设置 

GRUB_DEFAULT=0

image.png

grub2-mkconfig -o /boot/grub2/grub.cfg

image.png

4. 重启系统并验证内核

reboot 
uname -a 

image.png

5. 节点初始化

参照: centos8+kubeadm1.20.5+cilium+hubble环境搭建
image.png
到这里就好了!哦对还有下面的一部haproxy
image.png
注: 完成了hostnamectl set-hosetname k8s-master-03

6. 生成token

登陆k8s-master-01节点生成token discovery-token-ca-cert-hash

kubeadm token create
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

并打包key解压到k8s-master-03节点/etc/kubernetes/pki目录下(解压操作的就没有写了)

cd /etc/kubernetes/pki
zip -r key.zip ca.* sa.* front-proxy-ca.* etcd/ca* 

7. k8s-master-03节点重新加入集群

kubeadm join 10.0.0.37:6443 --token jj1ck5.hp7pn0lxxxxx     --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx     --control-plane

image.png
what?etcd报错了?怎么回事呢?开始的时候etcd是有三个节点的,我删除后重新加入会不会是冲突了呢?
k8s-master-01主机安装了etcd客户端方法如下:
image.png
使用etcd命令查看相关信息:

etcd_v3 endpoint status --write-out=table
etcd_v3 member list

果真etcd信息中还是有k8s-master-03节点的相关信息,将其移除,并验证:

etcd_v3 member remove c86024150ccad21d
etcd_v3 member list

image.png
重新执行加入集群执行一下操作:
首先的reset

kubeadm reset

注: 然后继续解压一遍key.zip /etc/kubernetes/pki目录下

kubeadm join 10.0.0.37:6443 --token jj1ck5.hp7pn0lxxxxx     --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx     --control-plane

image.png

	mkdir -p $HOME/.kube
	sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
	sudo chown $(id -u):$(id -g) $HOME/.kube/config

OK成功了!试验一下:

kubectl get nodes

image.png
嗯到了这里的还有修改/etc/kubernetes/manifests目录下kube-controller-manager.yaml kube-controller-manager.yaml --bind-adress=127.0.0.1为 --bind-adress=0.0.0.0
image.png
image.png
否则Prometheus一直报警的呢!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对你无可奈何2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值