目录
一:k8s集群增加node节点
二:k8s集群删除node节点
三:K8S添加master节点
四:k8s删除master节点
五:备份etcd数据快照
六:通过etcd快照恢复etcd数据
七:清除整个集群
八:升级k8s集群
查看当前集群状态
kubectl get node
添加node节点
通过ezctl 命令添加,查看ezctl命令帮助:ezctl help
通过ezctl add-node 命令添加k8snode 节点10.19.14.31
先在ansible安装端同步pub-key 到10.19.14.31node节点
执行:./ezctl add-node k8s-01 10.19.14.31 命令
查看当前集群状态
通过 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
通过ezctl add-master 命令添加k8s-master 节点10.19.14.12
./ezctl add-master k8s-01 10.19.14.12
通过ezctl del-master命令删除k8s-master节点 10.19.14.12
./ezctl del-master k8s-01 10.19.14.12
注意:如果etcd和master在同一台机器上,删除master节点则会导致etcd下的ssl证书丢失。
通过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
模拟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
集群升级存在一定风险,请谨慎操作。
升级前的准备工作:
备份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