标签:kubectl CKA docs 升级 kubeadm root 节点 考试
1. K8S集群Control Plane版本升级,不包括etcd、coreDNS
参考文档
- https://v1-20.docs.kubernetes.io/zh/docs/tasks/administer-cluster/safely-drain-node/
- https://v1-20.docs.kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
- https://v1-20.docs.kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain
路就是先升级kubeadm,然后使用kubeadm升级容器相关组件,最后升级kubelet、kubectl
注意: 在操作Control Plane之前必须drain该节点,升级完成后还需要uncordon该节点,使其可以正常工作。在drain时会提示daemonset类型的pod无法驱逐,使用提示里面的--ignore-daemonsets参数即可
主要命令如下
root@~ ]$ kubectl get node # 查看节点状态是否都已经ready
root@~ ]$ kubectl drain hostname --ignore-daemonsets # 将该节点设置为不可调度,并驱逐该节点的所有动态pod,--ignore-daemonsets会把所有daemonsets管理的pod也一起驱逐
root@~ ]$ apt update # 更新可用的软件包列表
root@~ ]$ apt-cache policy kubeadm # 显kubeadm的安装状态和版本信息
root@~ ]$ apt-get update && apt-get install -y --allow-change-held-packages kubeadm=1.20.7-00 # 更新kubeadm版本到1.20.7
root@~ ]$ kubeadm version # 验证kubeadm版本
root@~ ]$ kubeadm upgrade plan # 查看升级计划
root@~ ]$ kubeadm upgrade apply v1.20.7 # 根据升级计划中提示的升级命令将Contron Plane节点相关静态pod组件升级为1.20.7
root@~ ]$ apt-get update && apt-get install -y --allow-change-held-packages kubelet=1.20.7-00 kubectl=1.20.7-00
root@~ ]$ systemctl daemon-reload
root@~ ]$ systemctl restart kubelet # 重启kubelet
root@~ ]$ kubectl uncordon hostname # 升级完成后恢复该节点为可调度
CoreDNS:如果升级过程中这两个组件也被升级了,那么只需要使用kubectl edit -n kube-system deploy coredns
修改deploy中的image版本号为原来的即可,重启kubelet后生效
cordon只会将节点标记为不可调度,而drain不仅会标记为不可调度,默认还会驱逐所有动态pod,但是不能驱逐daemonsets管理的pod。
标签:kubectl,CKA,docs,升级,kubeadm,root,节点,考试 来源: https://www.cnblogs.com/kclinux/p/14829927.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。