当前位置: 首页 > news >正文

kubernetes集群重置部署(四)

kubernetes集群重置部署

1 集群环境清理

1.1 清理流程

1) rm -rf $HOME/.kube
2) rm -rf /var/lib/etcd
3) rm -rf /etc/kubernetes/manifests/
4) pkill kube*
5) pkill kube-apiserver
6) rm -rf /etc/cni/net.d
7) mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.confbak 
8) rm -rf /etc/kubernetes/pki/ca.crt
9) rm -rf /var/lib/kubelet

1.2 清理过程

在所有主节点执行:

pkill kube-apiserver && pkill kube* && rm -rf /var/lib/etcd && rm -rf /etc/kubernetes/manifests/ && rm -rf $HOME/.kube && rm -rf /etc/cni/net.d && rm -rf /var/lib/kubelet

所有节点:

mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.confbak 
所有工作节点:
rm -rf /etc/kubernetes/pki/ca.crt
上述内容环境清理干净之后,就可以执行重置操作。

2 重置K8S集群

所有节点执行:
先关闭所有节点的kubelet功能后,在执行集群的初始化。
systemctl stop kubelet
#关闭kubelet之后就可以执行kubeadm命令了。
#kubeadm reset
[root@k8s-master01 ~]# kubeadm reset
[reset] Reading configuration from the cluster...
[reset] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0908 22:22:06.321324   14127 reset.go:120] [reset] Unable to fetch the kubeadm-config ConfigMap from cluster: failed to get config map: Get "https://192.168.21.6:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s": dial tcp 192.168.21.6:6443: connect: connection refused
W0908 22:22:06.321871   14127 preflight.go:56] [reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
[reset] Are you sure you want to proceed? [y/N]: y
[preflight] Running pre-flight checks
W0908 22:22:09.907698   14127 removeetcdmember.go:106] [reset] No kubeadm config, using etcd pod spec to get data directory
[reset] Deleted contents of the etcd data directory: /var/lib/etcd
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in "/var/lib/kubelet"
W0908 22:23:11.600939   14127 cleanupnode.go:99] [reset] Failed to remove containers: [failed to stop running pod 1bc5470e95147ccc07db3d11ac4838c708562e80c6f2f55ecf5fbecf55d2aeb9: output: E0908 22:22:20.286794   14204 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="1bc5470e95147ccc07db3d11ac4838c708562e80c6f2f55ecf5fbecf55d2aeb9"
time="2025-09-08T22:22:20+08:00" level=fatal msg="stopping the pod sandbox \"1bc5470e95147ccc07db3d11ac4838c708562e80c6f2f55ecf5fbecf55d2aeb9\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1, failed to stop running pod ab2a5d2f0f4154fd5e1943647ea7195ce945ff32d52d99924fda3fe9d18c5c97: output: E0908 22:22:30.446271   14268 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="ab2a5d2f0f4154fd5e1943647ea7195ce945ff32d52d99924fda3fe9d18c5c97"
time="2025-09-08T22:22:30+08:00" level=fatal msg="stopping the pod sandbox \"ab2a5d2f0f4154fd5e1943647ea7195ce945ff32d52d99924fda3fe9d18c5c97\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1, failed to stop running pod 009b91e1f63268bbaee4c884d5332a769f9c7095e07e33dde2a90e6b636b79ad: output: E0908 22:22:40.576116   14351 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="009b91e1f63268bbaee4c884d5332a769f9c7095e07e33dde2a90e6b636b79ad"
time="2025-09-08T22:22:40+08:00" level=fatal msg="stopping the pod sandbox \"009b91e1f63268bbaee4c884d5332a769f9c7095e07e33dde2a90e6b636b79ad\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1, failed to stop running pod 6486aa6b13bf826ba7ec43d7b9408fdcb254b4b45b2be23a49307ac18469b8eb: output: E0908 22:22:51.058361   14474 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="6486aa6b13bf826ba7ec43d7b9408fdcb254b4b45b2be23a49307ac18469b8eb"
time="2025-09-08T22:22:51+08:00" level=fatal msg="stopping the pod sandbox \"6486aa6b13bf826ba7ec43d7b9408fdcb254b4b45b2be23a49307ac18469b8eb\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1, failed to stop running pod 0eb3fa777585704f2e7341894b3cdea10f97ec99635e954377b3e42e9a7b216f: output: E0908 22:23:01.200915   14557 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="0eb3fa777585704f2e7341894b3cdea10f97ec99635e954377b3e42e9a7b216f"
time="2025-09-08T22:23:01+08:00" level=fatal msg="stopping the pod sandbox \"0eb3fa777585704f2e7341894b3cdea10f97ec99635e954377b3e42e9a7b216f\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1, failed to stop running pod 5963858c46864825ccc06d3de4cae7ab4478ba98a8593c49334596fe676957a6: output: E0908 22:23:11.393534   14621 remote_runtime.go:205] "StopPodSandbox from runtime service failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded" podSandboxID="5963858c46864825ccc06d3de4cae7ab4478ba98a8593c49334596fe676957a6"
time="2025-09-08T22:23:11+08:00" level=fatal msg="stopping the pod sandbox \"5963858c46864825ccc06d3de4cae7ab4478ba98a8593c49334596fe676957a6\": rpc error: code = DeadlineExceeded desc = context deadline exceeded"
: exit status 1]
[reset] Deleting contents of directories: [/etc/kubernetes/manifests /var/lib/kubelet /etc/kubernetes/pki]
[reset] Deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]The reset process does not clean CNI configuration. To do so, you must remove /etc/cni/net.dThe reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must do so manually by using the "iptables" command.If your cluster was setup to utilize IPVS, run ipvsadm --clear (or similar)
to reset your system's IPVS tables.The reset process does not clean your kubeconfig files and you must remove them manually.
Please, check the contents of the $HOME/.kube/config file.

注意:出现上述提示,则表示集群重置成功。

3 集群的二次初始化

3.1 执行 kubeadm init 命令

#再次初始化之前先重启一下docker环境和kubelet环境,所有节点执行。
systemctl restart docker
systemctl restart cri-dockerd
systemctl restart kubelet
#在执行初始化命令
kubeadm init --kubernetes-version=1.28.2 \
--node-name=k8s-master01 \
--apiserver-advertise-address=192.168.21.6 \
--image-repository registry.k8s.io \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket=unix:///var/run/cri-dockerd.sock --v=5
#执行过程如下:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.21.6:6443 --token b1dfcg.7rp8gdvzrreyv0pd \--discovery-token-ca-cert-hash sha256:d15cdbfbbae4211c49cc0f0157abd7414da256601c28eb0901ca05866d8b27b4 
[root@k8s-master01 ~]# 

3.2 配置主节点家目录

配置主节点家目录数据同步,方便后续主节点之间的数据认证同步。
在主节点执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.3 执行 kubeadm join 命令

添加集群节点,本章节测试用例环境为一个主节点和两个工作节点组成,这里只需添加剩下的工作节点即可。

kubeadm join 192.168.21.6:6443 --token b1dfcg.7rp8gdvzrreyv0pd \
--discovery-token-ca-cert-hash sha256:d15cdbfbbae4211c49cc0f0157abd7414da256601c28eb0901ca05866d8b27b4 \
--cri-socket=unix:///var/run/cri-dockerd.sock --v=5

 执行成功之后,我们下一步就在主节点检查工作节点的加入是否成功。

4 查看集群状态

image

 到此集群重置就顺利完成了。

5 集群重置后的优化工作

1) 优化端口范围服务。
2) 优化证书期限。
3) 优化Metrics-Server服务等。

 本博客只限用于测试环境参考,生产环境的节点变更或重置,请慎重,博友们可根据自己的实际环境情况来进行规范化的流程变更哦,测试中这里有不足之处,还望博友们赐教,感谢博友们的指导和支持。

 

http://www.zskr.cn/news/446.html

相关文章:

  • 第一次作业
  • windows将服务器文件夹映射到windows本地
  • [huggingface] huggingface 有和 `git clone` 一样方便的命令
  • 计数杂题选刷 Part II
  • Rust异步运行时最小实现 - extreme 分享
  • MIDI简谱编辑器1.1程序代码QZQ-2025-8-20
  • p型编码
  • OTA 升级问题的分析
  • P3195 [HNOI2008] 玩具装箱
  • 模拟题
  • 自我介绍与软工五问
  • DAY2
  • Discipline
  • 建立本地仓库
  • 长乐一中 CSP-S 2025 提高级模拟赛 Day1
  • 202310_FSCTF_DoYouKnowGCD?
  • 你的中间件一团糟-是时候修复它了-️
  • 告别框架臃肿-我如何在不牺牲性能的情况下重新发现简单之美
  • Typora
  • ARC205_B Triangle Toggle题解
  • Anthropic 封禁中国资本背景企业使用Claude!国内AI编程选择将何去何从?
  • ARC137E
  • 并发编程中的乐观锁与悲观锁
  • 软件工程第一次作业(aili)
  • 软考高级“系统架构设计师”论文——论微服务架构及其应用
  • 真题补题笔记
  • 12.7 类的property/setter/delter特性
  • 82python解析器反查当前安装了那些依赖包
  • 4.同事突然关心有没有对象?这可能是职场发展的隐形陷阱
  • 12.6 类的封装