使用 KubeKey 升级

对于 KubeSphere 和 Kubernetes 都由 KubeKey 部署的用户,推荐使用 KubeKey 升级。如果您的 Kubernetes 集群由云厂商托管或自行配置,请参考使用 ks-installer 升级

本教程演示如何使用 KubeKey 升级集群。

准备工作

  • 您需要有一个运行 KubeSphere v3.2.x 的集群。如果您的 KubeSphere 是 v3.1.0 或更早的版本,请先升级至 v3.2.x。
  • 请仔细阅读 3.4.0 版本说明
  • 提前备份所有重要的组件。
  • 确定您的升级方案。本文档中提供 All-in-One 集群多节点集群的两种升级场景。

重要提示

KubeSphere 3.4 对内置角色和自定义角色的授权项做了一些调整。在您升级到 KubeSphere 3.4 时,请注意以下几点:

  • 内置角色调整:移除了平台级内置角色 users-manager(用户管理员)和 workspace-manager(企业空间管理员),如果已有用户绑定了 users-managerworkspace-manager,他们的角色将会在升级之后变更为 platform-regular。增加了平台级内置角色 platform-self-provisioner。关于平台角色的具体描述,请参见创建用户

  • 自定义角色授权项调整:

    • 移除平台层级自定义角色授权项:用户管理,角色管理,企业空间管理。
    • 移除企业空间层级自定义角色授权项:成员管理,角色管理,用户组管理。
    • 移除命名空间层级自定义角色授权项:成员管理,角色管理。
    • 升级到 KubeSphere 3.4 后,自定义角色会被保留,但是其包含的已被移除的授权项会被删除。

下载 KubeKey

升级集群前执行以下命令下载 KubeKey。

GitHub 发布页面下载 KubeKey 或直接使用以下命令。

  1. curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

先执行以下命令以确保您从正确的区域下载 KubeKey。

  1. export KKZONE=cn

执行以下命令下载 KubeKey。

  1. curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

备注

下载 KubeKey 后,如果您将其传至新的机器,且访问 Googleapis 同样受限,请您在执行以下步骤之前务必再次执行 export KKZONE=cn 命令。

备注

执行以上命令会下载最新版 KubeKey,您可以修改命令中的版本号以下载指定版本。

kk 添加可执行权限:

  1. chmod +x kk

升级 KubeSphere 和 Kubernetes

单节点集群 (All-in-One) 和多节点集群的升级步骤不同。

信息

当升级 Kubernetes 时,KubeKey 将从一个小版本升级到下一个小版本,直到目标版本。例如,您会发现升级过程先从 1.16 先升级到 1.17 然后再升级到 1.18,而不是直接从 1.16 升级到 1.18。

All-in-One 集群

运行以下命令使用 KubeKey 将您的单节点集群升级至 KubeSphere 3.4 和 Kubernetes v1.22.12:

  1. ./kk upgrade --with-kubernetes v1.22.12 --with-kubesphere v3.4.0

要将 Kubernetes 升级至特定版本,请在 --with-kubernetes 标志后明确指定版本号。以下是可用版本:v1.20.x、v1.21.x、* v1.22.x、* v1.23.x、* v1.24.x、* v1.25.x 和 * v1.26.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.21.x。

多节点集群

步骤 1:使用 KubeKey 生成配置文件

运行以下命令会基于您的集群创建一个 sample.yaml 配置文件。

  1. ./kk create config --from-cluster

备注

假设您的 kubeconfig 位于 ~/.kube/config。您可以通过 --kubeconfig 标志进行修改。

步骤 2:修改配置文件模板

根据您的集群配置修改 sample.yaml 文件,请确保正确修改以下字段。

  • hosts:您主机的基本信息(主机名和 IP 地址)以及使用 SSH 连接至主机的信息。
  • roleGroups.etcd:etcd 节点。
  • controlPlaneEndpoint:负载均衡器地址(可选)。
  • registry:镜像服务信息(可选)。

备注

有关更多信息,请参见编辑配置文件,或参考完整配置文件中的 Cluster 部分获取更多信息。

步骤 3:升级集群

运行以下命令,将您的集群升级至 KubeSphere 3.4 和 Kubernetes v1.22.12:

  1. ./kk upgrade --with-kubernetes v1.22.12 --with-kubesphere v3.4.0 -f sample.yaml

要将 Kubernetes 升级至特定版本,请在 --with-kubernetes 标志后明确指定版本号。以下是可用版本:v1.20.x、v1.21.x、* v1.22.x、* v1.23.x、* v1.24.x、* v1.25.x 和 * v1.26.x。带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.21.x。

备注

若要使用 KubeSphere 3.4 的新功能,您需要在升级后启用对应的可插拔组件。