Kubernetes Linux节点升级

2023-11-30 51

使用 kubeadm 创建的 Linux 工作节点是 Kubernetes 集群中的一个重要组成部分。这些节点通常是由用户自己部署的,用于运行容器化的应用程序。本教程将介绍如何升级用 kubeadm 创建的 Linux 工作节点。

一、准备

必须拥有一个 Kubernetes 的集群,同时必须配置 kubectl 命令行工具与集群通信。 建议在至少有两个不作为控制平面主机的节点的集群上运行本教程。 如果还没有集群,可以通过 Minikube 构建一个自己的集群,或者可以使用下面的 Kubernetes 练习环境之一:

  • Killercoda
  • 玩转 Kubernetes

要获知版本信息,请输入 kubectl version。首先你自己要熟悉升级剩余 kubeadm 集群的过程。 需要先升级控制面节点,再升级 Linux 工作节点。

二、更改软件包仓库

如果正在使用社区自治的软件包仓库(pkgs.k8s.io), 需要启用所需的 Kubernetes 小版本的软件包仓库。

注意:旧的包仓库(apt.kubernetes.io和yum.kubernetes.io)已从2023年9月13日开始被弃用并冻结。为了安装2023年9月13日之后发布的Kubernetes版本,必须使用托管在pkgs.k8s.io上新的包仓库。已被弃用的旧仓库及其内容可能会在未来的任何时候被删除,而且不会提前通知。新的包仓库提供从v1.24.0开始的Kubernetes版本的下载。

三、升级工作节点

1、升级 kubeadm

升级 kubeadm:

Ubuntu、Debian 或 HypriotOS:

# 将 1.28.x-* 中的 x 替换为最新的补丁版本
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm='1.28.x-*' && \
apt-mark hold kubeadm

CentOS、RHEL 或 Fedora:

# 将 1.28.x-* 中的 x 替换为最新的补丁版本
yum install -y kubeadm-'1.28.x-*' --disableexcludes=kubernetes

2、执行 “kubeadm upgrade”

对于工作节点,下面的命令会升级本地的 kubelet 配置:

sudo kubeadm upgrade node

3、腾空节点

将节点标记为不可调度并驱逐所有负载,准备节点的维护:

# 将 <node-to-drain> 替换为正腾空的节点的名称
kubectl drain <node-to-drain> --ignore-daemonsets

4、升级 kubelet 和 kubectl

升级 kubelet 和 kubectl:

Ubuntu、Debian 或 HypriotOS:

# 将 1.28.x-* 中的 x 替换为最新的补丁版本
apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet='1.28.x-*' kubectl='1.28.x-*' && \
apt-mark hold kubelet kubectl

CentOS、RHEL 或 Fedora:

# 将 1.28.x-* 中的 x 替换为最新的补丁版本
yum install -y kubelet-'1.28.x-*' kubectl-'1.28.x-*' --disableexcludes=kubernetes

重启 kubelet:

sudo systemctl daemon-reload
sudo systemctl restart kubelet

5、取消对节点的保护

通过将节点标记为可调度,让节点重新上线:

# 将 <node-to-uncordon> 替换为节点名称
kubectl uncordon <node-to-uncordon>
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。