赞
踩
注意!注意!注意!
题目一样,主要注意考试时的版本
现有的Kubernetes 集群正在运行版本1.22.0。仅将master节点上的所有 Kubernetes控制平面和节点组件升级到版本1.22.2。
确保在升级之前 drain master节点,并在升级后 uncordon master节点。
可以使用以下命令,通过ssh连接到master节点:
ssh k8s-master
可以使用以下命令,在该master节点上获取更高权限:
sudo -i
另外,在主节点上升级kubelet和kubectl。请不要升级工作节点,etcd,container 管理器,CNI插件, DNS服务或任何其他插件。
注意,如果题目要求先切换K8S环境,需执行K8S切换环境
直接搜索:upgrade 找到:升级 kubeadm 集群
将节点标记为不可调度并驱逐所有pod,准备节点的维护
# 设置为维护状态
kubectl cordon k8s-master
# 将 <node-to-drain> 替换为你要腾空的控制面节点名称
kubectl drain k8s-master --delete-emptydir-data --ignore-daemonsets -f
在考试环境中 ssh 到 master 节点,并切换到 root 下,我们进到环境中相当于进入到其中的一个node节点,由于是升级master节点上的组件,所以我们需要ssh到k8s-master并且切换到root用户,需要执行的命令如下
ssh k8s-master
sudo -i
# centos
yum list --showduplicates kubeadm --disableexcludes=kubernetes
#ubuntu
apt update
apt-cache madison kubeadm
# centos
yum install -y kubeadm-1.22.2 --disableexcludes=kubernetes
############################################################################
#Ubuntu
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.22.2 && \
apt-mark hold kubeadm
验证下载操作正常,并且 kubeadm 版本正确:
kubeadm version
验证升级计划:
kubeadm upgrade plan
选择要升级到的目标版本:
# 次升级所选择的补丁版本号,不升级etcd
sudo kubeadm upgrade apply v1.22.2 --etcd-upgrade=false
升级 kubelet 和 kubectl
# centos
yum install -y kubelet- kubectl-1.22.2 --disableexcludes=kubernetes
######################################################################
# ubuntu
apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet=1.22.2 kubectl=1.22.2 && \
apt-mark hold kubelet kubectl
重启 kubelet:
systemctl daemon-reload
systemctl restart kubelet
考试环境中退出 root和master节点,由于考试切换环境后是node节点,所以需要ssh到master节点,升级完成后需要退回之前的node节点,不要输入 exit 多了,否则会退出考试环境
#第1个exit 退出到master节点非root用户
exit
#第2个exit 退出到node节点
exit
通过将节点标记为可调度,让节点重新上线:
# 将 <node-to-uncordon> 替换为你的节点名称
kubectl uncordon <node-to-uncordon>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。