From 931e78e29492f1de0a495b4d167510dde6f77243 Mon Sep 17 00:00:00 2001 From: windsonsea Date: Mon, 22 May 2023 09:33:44 +0800 Subject: [PATCH] [zh] sync /kubeadm/kubeadm-upgrade.md --- .../kubeadm/kubeadm-upgrade.md | 336 ++++++++++-------- 1 file changed, 182 insertions(+), 154 deletions(-) diff --git a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md index a3ecbdc9267..06a3f4d0eb3 100644 --- a/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md +++ b/content/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade.md @@ -77,10 +77,10 @@ The upgrade workflow at high level is the following: - 下述说明了在升级过程中何时腾空每个节点。如果你正在对任何 kubelet 进行小版本升级, @@ -90,11 +90,11 @@ they could be running CoreDNS Pods or other critical workloads. For more informa - 要验证 kubelet 服务在升级后是否成功重启,可以执行 `systemctl status kubelet` 或 `journalctl -xeu kubelet` 查看服务日志。 @@ -116,20 +116,30 @@ Find the latest patch release for Kubernetes {{< skew currentVersion >}} using t 使用操作系统的包管理器找到最新的补丁版本 Kubernetes {{< skew currentVersion >}}: {{< tabs name="k8s_install_versions" >}} -{{% tab name="Ubuntu、Debian 或 HypriotOS" %}} +{{% tab name="Ubuntu, Debian or HypriotOS" %}} + ```shell -apt update -apt-cache madison kubeadm # 在列表中查找最新的 {{< skew currentVersion >}} 版本 # 它看起来应该是 {{< skew currentVersion >}}.x-00,其中 x 是最新的补丁版本 +apt update +apt-cache madison kubeadm ``` + {{% /tab %}} -{{% tab name="CentOS、RHEL 或 Fedora" %}} +{{% tab name="CentOS, RHEL or Fedora" %}} + ```shell -yum list --showduplicates kubeadm --disableexcludes=kubernetes # 在列表中查找最新的 {{< skew currentVersion >}} 版本 # 它看起来应该是 {{< skew currentVersion >}}.x-0,其中 x 是最新的补丁版本 +yum list --showduplicates kubeadm --disableexcludes=kubernetes ``` + {{% /tab %}} {{< /tabs >}} @@ -157,120 +167,129 @@ Pick a control plane node that you wish to upgrade first. It must have the `/etc **对于第一个控制面节点** -- 升级 kubeadm: +1. 升级 kubeadm: - {{< tabs name="k8s_install_kubeadm_first_cp" >}} - {{% tab name="Ubuntu、Debian 或 HypriotOS" %}} - ```shell - # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-00 中的 x - apt-mark unhold kubeadm && \ - apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \ - apt-mark hold kubeadm - ``` - {{% /tab %}} - {{% tab name="CentOS、RHEL 或 Fedora" %}} - ```shell - # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-0 中的 x - yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes - ``` - {{% /tab %}} - {{< /tabs >}} -
+ {{< tabs name="k8s_install_kubeadm_first_cp" >}} + {{% tab name="Ubuntu, Debian or HypriotOS" %}} + + + ```shell + # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-00 中的 x + apt-mark unhold kubeadm && \ + apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \ + apt-mark hold kubeadm + ``` + + {{% /tab %}} + {{% tab name="CentOS, RHEL or Fedora" %}} + + + ```shell + # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-0 中的 x + yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes + ``` + + {{% /tab %}} + {{< /tabs >}} -- 验证下载操作正常,并且 kubeadm 版本正确: +2. 验证下载操作正常,并且 kubeadm 版本正确: - ```shell - kubeadm version - ``` + ```shell + kubeadm version + ``` -- 验证升级计划: +3. 验证升级计划: - ```shell - kubeadm upgrade plan - ``` + ```shell + kubeadm upgrade plan + ``` - - 此命令检查你的集群是否可被升级,并取回你要升级的目标版本。 - 命令也会显示一个包含组件配置版本状态的表格。 + + 此命令检查你的集群是否可被升级,并取回你要升级的目标版本。 + 命令也会显示一个包含组件配置版本状态的表格。 - {{< note >}} - - `kubeadm upgrade` 也会自动对 kubeadm 在节点上所管理的证书执行续约操作。 - 如果需要略过证书续约操作,可以使用标志 `--certificate-renewal=false`。 - 更多的信息,可参阅[证书管理指南](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)。 - {{}} + {{< note >}} + + `kubeadm upgrade` 也会自动对 kubeadm 在节点上所管理的证书执行续约操作。 + 如果需要略过证书续约操作,可以使用标志 `--certificate-renewal=false`。 + 更多的信息,可参阅[证书管理指南](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)。 + {{}} - {{< note >}} - - 如果 `kubeadm upgrade plan` 给出任何需要手动升级的组件配置, - 用户必须通过 `--config` 命令行标志向 `kubeadm upgrade apply` 命令提供替代的配置文件。 - 如果不这样做,`kubeadm upgrade apply` 会出错并退出,不再执行升级操作。 - {{}} + {{< note >}} + + 如果 `kubeadm upgrade plan` 给出任何需要手动升级的组件配置, + 用户必须通过 `--config` 命令行标志向 `kubeadm upgrade apply` 命令提供替代的配置文件。 + 如果不这样做,`kubeadm upgrade apply` 会出错并退出,不再执行升级操作。 + {{}} -- 选择要升级到的目标版本,运行合适的命令。例如: +4. 选择要升级到的目标版本,运行合适的命令。例如: - - ```shell - # 将 x 替换为你为此次升级所选择的补丁版本号 - sudo kubeadm upgrade apply v{{< skew currentVersion >}}.x - ``` + + ```shell + # 将 x 替换为你为此次升级所选择的补丁版本号 + sudo kubeadm upgrade apply v{{< skew currentVersion >}}.x + ``` - - 一旦该命令结束,你应该会看到: + + 一旦该命令结束,你应该会看到: - ```console - [upgrade/successful] SUCCESS! Your cluster was upgraded to "v{{< skew currentVersion >}}.x". Enjoy! + ```console + [upgrade/successful] SUCCESS! Your cluster was upgraded to "v{{< skew currentVersion >}}.x". Enjoy! - [upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. - ``` + [upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. + ``` -- 手动升级你的 CNI 驱动插件。 +5. 手动升级你的 CNI 驱动插件。 - - 你的容器网络接口(CNI)驱动应该提供了程序自身的升级说明。 - 参阅[插件](/zh-cn/docs/concepts/cluster-administration/addons/)页面查找你的 CNI 驱动, - 并查看是否需要其他升级步骤。 + + 你的容器网络接口(CNI)驱动应该提供了程序自身的升级说明。 + 参阅[插件](/zh-cn/docs/concepts/cluster-administration/addons/)页面查找你的 CNI 驱动, + 并查看是否需要其他升级步骤。 - - 如果 CNI 驱动作为 DaemonSet 运行,则在其他控制平面节点上不需要此步骤。 + + 如果 CNI 驱动作为 DaemonSet 运行,则在其他控制平面节点上不需要此步骤。 -- 将节点标记为不可调度并驱逐所有负载,准备节点的维护: +将节点标记为不可调度并驱逐所有负载,准备节点的维护: - - ```shell - # 将 替换为你要腾空的控制面节点名称 - kubectl drain --ignore-daemonsets - ``` + +```shell +# 将 替换为你要腾空的控制面节点名称 +kubectl drain --ignore-daemonsets +``` -- 升级 kubelet 和 kubectl: +1. 升级 kubelet 和 kubectl: - {{< tabs name="k8s_install_kubelet" >}} - {{% tab name="Ubuntu、Debian 或 HypriotOS" %}} - ```shell - # 用最新的补丁版本替换 {{< skew currentVersion >}}.x-00 中的 x - apt-mark unhold kubelet kubectl && \ - apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \ - apt-mark hold kubelet kubectl - ``` - {{% /tab %}} - {{% tab name="CentOS、RHEL 或 Fedora" %}} - ```shell - # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-00 中的 x - yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes - ``` - {{% /tab %}} - {{< /tabs >}} -
+ {{< tabs name="k8s_install_kubelet" >}} + {{% tab name="Ubuntu, Debian or HypriotOS" %}} + + + ```shell + # 用最新的补丁版本替换 {{< skew currentVersion >}}.x-00 中的 x + apt-mark unhold kubelet kubectl && \ + apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \ + apt-mark hold kubelet kubectl + ``` + + {{% /tab %}} + {{% tab name="CentOS, RHEL or Fedora" %}} + + + ```shell + # 用最新的补丁版本号替换 {{< skew currentVersion >}}.x-00 中的 x + yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes + ``` + + {{% /tab %}} + {{< /tabs >}} -- 重启 kubelet: +2. 重启 kubelet: - ```shell - sudo systemctl daemon-reload - sudo systemctl restart kubelet - ``` + ```shell + sudo systemctl daemon-reload + sudo systemctl restart kubelet + ``` -- 通过将节点标记为可调度,让其重新上线: +通过将节点标记为可调度,让其重新上线: - - ```shell - # 将 替换为你的节点名称 - kubectl uncordon - ``` + +```shell +# 将 替换为你的节点名称 +kubectl uncordon +``` 以下内容演示如何升级 Linux 和 Windows 工作节点: