记一次sealos部署k8s集群之delete了第一台master如何恢复

记一次sealos部署k8s集群之delete了第一台master如何恢复

一、背景描述

使用sealos部署了一套K8S集群
master信息:172.27.100.1、172.27.100.2、172.27.100.3
node信息:172.27.100.4、172.27.100.5
sealos安装在172.27.100.1节点,根目录下/root/.sealos/文件还在!

[root@k8s-master-172.27.100.1 .sealos]# pwd
/root/.sealos
[root@k8s-master-100642573 .sealos]# ls -l default
总用量 8
-rw-r--r-- 1 root root 2928 1月   9 16:04 Clusterfile
drwxr-xr-x 3 root root  252 1月   9 16:03 etc
drwxr--r-- 2 root root   24 1月   9 16:03 logs
drwxr-xr-x 3 root root 4096 1月   9 16:03 pki
drwxr-xr-x 2 root root   93 1月   9 16:03 tmp

现象描述:
因各种原因sealos 第一个节点被搞烂了(原集群中172.27.100.1被移除或其他原因),需要恢复172.27.100.1!

目的:
恢复172.27.100.1 到原K8S集群,并继续承担master角色。

二、恢复172.27.100.1到k8s集群

2.1、备份sealos文件

cp -r default/ default_20250107

2.2、使用sealos清理节点文件

sealos delete --masters 172.27.100.1

2.3、备份原K8S集群etcd

crictl exec -i `crictl ps |grep etcd |awk '{print $1}'` /bin/sh -c "ETCDCTL_API=3 etcdctl --endpoints https://172.27.100.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key snapshot save /var/lib/etcd/etcsnapshot_`date +%Y%m%d`.db"

三、重新加入集群

3.1、使用sealos加入集群

sealos add --masters 172.27.100.1

3.2、拉取镜像报错

 INFO [2025-01-09 10:40:28] >> pull pause image sealos.hub:5000/pause:3.5 
FATA[0000] pulling image: rpc error: code = Unknown desc = failed to pull and unpack image "sealos.hub:5000/pause:3.5": failed to resolve reference "sealos.hub:5000/pause:3.5": failed to do request: Head "http://sealos.hub:5000/v2/pause/manifests/3.5": dial tcp 100.64.25.74:5000: connect: connection refused 
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /etc/systemd/system/kubelet.service.
 INFO [2025-01-09 10:40:29] >> init kubelet success 
 INFO [2025-01-09 10:40:29] >> init rootfs success 
2025-01-09T10:40:29 info Executing pipeline Join in ScaleProcessor.
2025-01-09T10:40:29 info [100.64.25.73:22] will be added as master
2025-01-09T10:40:29 info start to init filesystem join masters...
2025-01-09T10:40:29 info start to copy static files to mast
要搭建 Docker KubernetesK8s集群,你可以按照以下步骤进行操作: 1. 安装 Docker:在每个节点上安装 Docker,可以按照 Docker 官方文档的指引进行安装。确保所有节点上都安装了相同版本的 Docker。 2. 安装 Kubernetes:可以使用各个操作系统的包管理器(如 apt、yum 等)或者直接下载二进制文件来安装 Kubernetes。你可以参考 Kubernetes 官方文档中的安装指南。 3. 初始化 Master 节点:选择其中一个节点作为 Master 节点,运行以下命令初始化: ``` kubeadm init ``` 这将生成一个 Token 和一个命令,用于其他节点加入集群。 4. 加入 Worker 节点:在其他节点上运行初始化命令生成的加入命令,将它们加入集群。例如: ``` kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` `<master-ip>` 和 `<master-port>` 是 Master 节点的 IP 地址和端口,`<token>` 和 `<hash>` 是初始化命令生成的 Token 和哈希值。 5. 配置 Kubectl:在你的本地机器上安装并配置 Kubectl,可以按照 Kubernetes 官方文档中的指引进行操作。这将允许你与集群进行交互。 6. 部署应用:使用 Kubernetes 的 YAML 配置文件编写应用的部署描述,并使用以下命令在集群部署应用: ``` kubectl apply -f <deployment-file> ``` `<deployment-file>` 是应用的部署描述文件的路径。 7. 扩展和管理集群:使用 Kubectl 命令扩展、更新、删除应用,以及管理集群中的节点和资源。例如: - 扩展应用的副本数:`kubectl scale deployment <deployment-name> --replicas=<replica-count>` - 更新应用:`kubectl apply -f <updated-deployment-file>` - 删除应用:`kubectl delete deployment <deployment-name>` - 查看集群状态:`kubectl get nodes`、`kubectl get pods` 等 这些步骤可以帮助你搭建一个简单的 Docker KubernetesK8s集群。你可以根据实际需求进行配置和管理。如果需要更详细的指导,可以参考 Kubernetes 官方文档中的相关内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值