目录

一:k8s集群增加node节点

二:k8s集群删除node节点

三:K8S添加master节点

四:k8s删除master节点

五:备份etcd数据快照

六:通过etcd快照恢复etcd数据

七:清除整个集群

八:升级k8s集群

一:k8s集群增加node节点

查看当前集群状态

kubectl get node

添加node节点

通过ezctl 命令添加,查看ezctl命令帮助:ezctl help

通过ezctl add-node 命令添加k8snode 节点10.19.14.31

先在ansible安装端同步pub-key 到10.19.14.31node节点, 见k8s 集群安装文章。

执行:./ezctl add-node k8s-01 10.19.14.31 命令

二:k8s集群删除node节点

查看当前集群状态

通过 ezctl del-node 命令删除k8snode 节点10.19.14.31

/etc/kubeasz/playbooks/32.delnode.yml

#判断删除的节点是不是是属于master节点,及master节点不能少于2个
#安全清空需要删除节点上的pod
#stop and disable kube_node service
#umount kubelet filesystems
#remove files and dirs of 'kube_node' nodes
#to clean container runtime and networking
#to check if container 'kubeasz' is running
#stop and disable docker service
#umount docker filesystem-1 filesystem-2
#删除docker 文件及文件夹
#run kubectl delete node IP
#remove the node's entry in hosts
./ezctl del-node k8s-01 10.19.14.31

三:K8S添加master节点

通过ezctl add-master 命令添加k8s-master 节点10.19.14.12

./ezctl add-master k8s-01 10.19.14.12

四:k8s删除master节点

通过ezctl del-master命令删除k8s-master节点 10.19.14.12

./ezctl del-master k8s-01 10.19.14.12

注意:如果etcd和master在同一台机器上,删除master节点则会导致etcd下的ssl证书丢失。

五:备份etcd数据快照

通过ezctl 备份etcd数据快照

ETCDCTL_API=3  表示的使用etcd v3版本

/etc/kubeasz/playbooks/94.backup.yml

1) 获得etcd 主机IP
2)获得etcd 主机状态
3)获得etcd运行的节点
4)执行etcd备份快照命令
5)传输etcd快照到制定目录下
6)修改快照命名

 执行备份命令:./ezctl backup k8s-01

备份文件存储路径:/etc/kubeasz/clusters/k8s-01/backup/

查看备份信息:ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshot.db

六:通过etcd快照恢复etcd数据

模拟default资源空间里的数据都被删除

现在通过ezctl restore k8s-01来恢复数据

./ezctl restore k8s-01

stopping kube_master services
stopping kube_node services
cluster-restore : 停止ectd 服务
cluster-restore : 清除etcd 数据目录
cluster-restore : 生成备份目录
cluster-restore : 准备指定的备份etcd 数据
cluster-restore : 清理上次备份恢复数据
cluster-restore : etcd 数据恢复
cluster-restore : 恢复数据至etcd 数据目录
cluster-restore : 重启etcd 服务
cluster-restore : 以轮询的方式等待服务同步完成
starting kube_master services
starting kube_node services

 

七:清除整个集群

ezctl destroy k8s-01

clean:  stop and disable etcd service
clean : remove files and dirs
clean : stop and disable kube_master service
clean : remove files and dirs of 'kube_master' nodes
clean : stop and disable kube_node service
clean : umount kubelet filesystems
clean : remove files and dirs of 'kube_node' nodes
clean : to check if container 'kubeasz' is running
clean : stop and disable docker service
clean : umount docker filesystem
clean : remove files and dirs
clean : remove files and dirs2
clean : clean 'ENV PATH'


重新安装整个集群

ezctl setup k8s-01 all

八:升级k8s集群

集群升级存在一定风险,请谨慎操作。

  • 在当前支持k8s大版本基础上升级任意小版本,比如当前安装集群为1.21.0,你可以方便的升级到任何1.21.12版本

升级前的准备工作:

   备份etcd数据: ./ezctl backup k8s-01

去官网下载需要升级的二进制release包: kubernetes/CHANGELOG-1.21.md at master · kubernetes/kubernetes · GitHub

解压下载的tar.gz文件,找到如下kube*开头的二进制,复制替换ansible控制端目录/etc/kubeasz/bin对应文件

执行升级命令

./ezctl upgrade k8s-01

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐