题目
解析
结合博主当前环境,调整后题目为:
现有的 Kubernetes 集权正在运行的版本是 1.23.6,仅将主节点上的所有 kubernetes 控制面板和组件升级到版本 1.24.8 另外,在主节点上升级 kubelet 和 kubectl
注意:不升级etcd
命令
博主的master节点是xxx-centos
准备工作
设置为不可用
kubectl cordon xxx-centos
驱逐节点
kubectl drain xxx-centos --delete-emptydir-data --ignore-daemonsets --force
升级组件
Ubuntu
apt-mark unhold kubeadm && \ apt-get update && apt-get install -y kubeadm=1.24.0-00 && \ apt-mark hold kubeadm
Centos
yum install -y kubeadm-1.24.0-0 --disableexcludes=kubernetes
验证下载操作正常,并且 kubeadm 版本正确&验证升级计划:
kubeadm version kubeadm upgrade plan
升级
sudo kubeadm upgrade apply v1.24.0 --etcd-upgrade=false
升级kubectl、kubelet
Ubuntu
apt-mark unhold kubelet kubectl && \ apt-get update && apt-get install -y kubelet=1.24.0-00 kubectl=1.24.0-00 && \ apt-mark hold kubelet kubectl
Centos
yum install -y kubelet-1.24.0-0 kubectl-1.24.0-0 --disableexcludes=kubernetes
收尾
重启kubelet
sudo systemctl daemon-reload sudo systemctl restart kubelet
恢复为可调度
kubectl uncordon xxx-centos
结果
当前版本
设置节点不可调度
驱逐节点
安装kubeadm
验证kubeadm
查看临时文件
查看kubectl版本
查看kubelet版本及各节点版本
killer 模拟环境
题目
Your coworker said node cluster3-node2 is running an older Kubernetes version and is not even part of the cluster. Update Kubernetes on that node to the exact version that’s running on cluster3-controlplane1. Then add this node to the cluster. Use kubeadm for this.
解析
您的同事说node cluster3-node2 运行的是较旧的Kubernetes版本,甚至不是集群的一部分将该节点上的Kubernetes更新为cluster3-controlplane1上运行的确切版本。然后将此节点添加到集群。为此,请使用kubeadm。
解题
查看节点
kubectl get node
发现cluster3-controlplane1的版本是1.26.0,且cluster3-node2没有加入集群。
ssh cluster3-node2
kubeadm version kubelet--version
发现kubeadm已经是v1.26.0了,只需升级kubelet和kubectl
apt-mark unhold kubelet kubectl && \ apt-get update && apt-get install -y kubelet=1.26.0-00 kubectl=1.26.0-00 && \ apt-mark hold kubelet kubectl
重启kubelet
systemctl daemon-reload systemctl restart kubelet
之后去主节点生成加入集群的命令
ssh cluster3-master1 kubeadm token create --print-join-command
cluster3-node2节点运行命令
之后验证一下,可以看到集群中加入了cluster3-node2节点。