首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
kubernetes与velero的第一次尝试
2
在Kubernetes中如何针对Namespace进行资源限制?
3
kubernetes之metrics-server安装与配置
4
kubernetes部署metrics-server
5
Kubernetes1.20.9摘掉一个master节点再重新加入(ETCD需要注意的)
6
Kubernetes 1.17.17升级到1.18.20
7
Kubernetes 1.18.20升级到1.19.12
8
Kubernetes 1.19.12升级到1.20.9(强调一下selfLink)
9
Kubernetes 1.16.15升级到1.17.17
10
使用 kainstall 工具一键部署 kubernetes 高可用集群
11
附034.Kubernetes_v1.21.0高可用部署架构二
12
附016.Kubernetes_v1.17.4高可用部署
13
附022.Kubernetes_v1.18.3高可用部署架构一
14
附024.Kubernetes_v1.18.3高可用部署架构二
15
使用 StatefulSet 部署 etcd 集群
16
Kubernetes 稳定性保障手册 -- 极简版
17
Linux(centos7)离现安装kubernetes1.19.2和docker——组件部分
18
docker register 私有仓库部署 - http模式
19
KubeSphere 开源 KubeEye:Kubernetes 集群自动巡检工具
20
K8S 中的 CPUThrottlingHigh 到底是个什么鬼?
21
全链路分布式跟踪系统 Apache SkyWalking 入门教程
22
pod Evicted的状态究竟是何人所为
23
使用 ezctl 工具部署和管理 Kubernetes 集群
24
Kubernetes部署策略详解
25
kubernetes容器探针检测
26
使用Spring Boot实现动态健康检查HealthChecks
27
真一文搞定 ingress-nginx 的使用
28
K8S备份、恢复、迁移神器 Velero
29
一次关于k8s kubectl top 和 contained ps 不一致的问题探究
30
kubernetes备份恢复之velero
31
使用 Velero 进行集群备份与迁移
32
TKE集群中nginx-ingress使用实践
33
使用velero进行kubernetes灾备
34
Kubernetes 映射外部服务
35
运维体系建设套路
36
k8s解决pod调度不均衡的问题
37
ingress中虚拟路径解决方案
38
容器下的两地三中心建设
39
k8s集群外的主机访问pod的解决方案
40
k8s基础-健康检查机制
41
k8s基础-标签使用
42
ingress-nginx请求改写
43
nginx ingress server alias 多域名多证书问题
44
JAVA | Java 解决跨域问题 花式解决跨域问题
45
如何通过ingress-nginx实现应用灰度发布?
46
在Kubernetes(k8s)中使用GPU
47
使用 Prometheus-Operator 监控 Calico
48
使用Kubespray部署Kubernetes集群
49
云原生下的CI/CD:Argo CD 详解,手把手教你入门
50
Pod的健康检查机制
清单首页k8s文章详情

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

背景:

参照持续升级过程: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-vip

slb

10.0.0.37

k8s-master-01

centos7

10.0.0.41

k8s-master-02

centos7

10.0.0.34

k8s-master-03

centos7

10.0.0.26

k8s-node-01

centos7

10.0.0.36

k8s-node-02

centos7

10.0.0.83

k8s-node-03

centos7

10.0.0.40

k8s-node-04

centos7

10.0.0.49

k8s-node-05

centos7

10.0.0.45

k8s-node-06

centos7

10.0.0.18

1. 升级更新过程:

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

代码语言:txt
复制
kubectl drain k8s-master-03 --ignore-daemonsets

2. 删除k8s-master-03节点

代码语言:txt
复制
kubectl delete nodes k8s-master-03

3. 重装系统

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

4. 升级内核

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

1. 安装epel源

代码语言:txt
复制
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主线最新版本......

代码语言:txt
复制
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum  --enablerepo=elrepo-kernel  install  kernel-ml
image.png

最近网比较抽筋,很慢的

关于ml lt版本:

kernel-lt(长期支持版本)

kernel-ml(主线最新版本)

一般的长期稳定支持版就好了,嗯我手贱选择了ml版本了......

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

代码语言:txt
复制
 vi /etc/default/grub 

设置 

GRUB_DEFAULT=0
image.png
代码语言:txt
复制
grub2-mkconfig -o /boot/grub2/grub.cfg
image.png

4. 重启系统并验证内核

代码语言:txt
复制
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

代码语言:txt
复制
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目录下(解压操作的就没有写了)

代码语言:txt
复制
cd /etc/kubernetes/pki
zip -r key.zip ca.* sa.* front-proxy-ca.* etcd/ca* 

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

代码语言:txt
复制
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命令查看相关信息:

代码语言:txt
复制
etcd_v3 endpoint status --write-out=table
etcd_v3 member list

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

代码语言:txt
复制
etcd_v3 member remove c86024150ccad21d
etcd_v3 member list
image.png

重新执行加入集群执行一下操作:

首先的reset

代码语言:txt
复制
kubeadm reset

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

代码语言:txt
复制
kubeadm join 10.0.0.37:6443 --token jj1ck5.hp7pn0lxxxxx     --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx     --control-plane
image.png
代码语言:txt
复制
	mkdir -p $HOME/.kube
	sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
	sudo chown $(id -u):$(id -g) $HOME/.kube/config

OK成功了!试验一下:

代码语言:txt
复制
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一直报警的呢!

下一篇
举报
领券