目录
一: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节点
执行:./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



