更改 Kubernetes 软件包仓库

本页介绍了如何在升级集群时启用包含 Kubernetes 次要版本的软件包仓库。 这仅适用于使用托管在 pkgs.k8s.io 上社区自治软件包仓库的用户。 启用新的 Kubernetes 小版本的软件包仓库。与传统的软件包仓库不同, 社区自治的软件包仓库所采用的结构为每个 Kubernetes 小版本都有一个专门的软件包仓库。

说明:

本指南仅介绍 Kubernetes 升级过程的一部分。 有关升级 Kubernetes 集群的更多信息, 请参阅升级指南

说明:

仅在将集群升级到另一个次要版本时才需要执行此步骤。 如果你要升级到同一次要版本中的另一个补丁版本(例如:v1.28.5 到 v1.28.7)则不需要遵循本指南。 但是,如果你仍在使用旧的软件包仓库,则需要在升级之前迁移到社区自治的新软件包仓库 (有关如何执行此操作的更多详细信息,请参阅下一节)。

准备开始

本文假设你已经在使用社区自治的软件包仓库(pkgs.k8s.io)。如果不是这种情况, 强烈建议按照官方公告中所述, 迁移到社区自治的软件包仓库。

说明: The legacy package repositories (apt.kubernetes.io and yum.kubernetes.io) have been deprecated and frozen starting from September 13, 2023. Using the new package repositories hosted at pkgs.k8s.io is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023. The deprecated legacy repositories, and their contents, might be removed at any time in the future and without a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0.

验证是否正在使用 Kubernetes 软件包仓库

如果你不确定自己是在使用社区自治的软件包仓库还是在使用老旧的软件包仓库, 可以执行以下步骤进行验证:

打印定义 Kubernetes apt 仓库的文件的内容:

  1. # 在你的系统上,此配置文件可能具有不同的名称
  2. pager /etc/apt/sources.list.d/kubernetes.list

如果你看到类似以下的一行:

  1. deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /

你正在使用 Kubernetes 软件包仓库,本指南适用于你。 否则,强烈建议按照官方公告中所述, 迁移到 Kubernetes 软件包仓库。

打印定义 Kubernetes yum 仓库的文件的内容:

  1. # 在你的系统上,此配置文件可能具有不同的名称
  2. cat /etc/yum.repos.d/kubernetes.repo

如果你看到的 baseurl 类似以下输出中的 baseurl

  1. [kubernetes]
  2. name=Kubernetes
  3. baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
  4. enabled=1
  5. gpgcheck=1
  6. gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
  7. exclude=kubelet kubeadm kubectl

你正在使用 Kubernetes 软件包仓库,本指南适用于你。 否则,强烈建议按照官方公告中所述, 迁移到 Kubernetes 软件包仓库。

打印定义 Kubernetes zypper 仓库的文件的内容:

  1. # 在你的系统上,此配置文件可能具有不同的名称
  2. cat /etc/zypp/repos.d/kubernetes.repo

如果你看到的 baseurl 类似以下输出中的 baseurl

  1. [kubernetes]
  2. name=Kubernetes
  3. baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
  4. enabled=1
  5. gpgcheck=1
  6. gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
  7. exclude=kubelet kubeadm kubectl

你正在使用 Kubernetes 软件包仓库,本指南适用于你。 否则,强烈建议按照官方公告中所述, 迁移到 Kubernetes 软件包仓库。

说明:

Kubernetes 软件包仓库所用的 URL 不仅限于 pkgs.k8s.io,还可以是以下之一:

  • pkgs.k8s.io
  • pkgs.kubernetes.io
  • packages.kubernetes.io

切换到其他 Kubernetes 软件包仓库

在从一个 Kubernetes 小版本升级到另一个版本时,应执行此步骤以获取所需 Kubernetes 小版本的软件包访问权限。

  1. 使用你所选择的文本编辑器打开定义 Kubernetes apt 仓库的文件:

    1. nano /etc/apt/sources.list.d/kubernetes.list

    你应该看到一行包含当前 Kubernetes 小版本的 URL。 例如,如果你正在使用 v1.27,你应该看到类似以下的输出:

    1. deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /
  2. 将 URL 中的版本更改为下一个可用的小版本,例如:

    1. deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
  3. 保存文件并退出文本编辑器。继续按照相关的升级说明进行操作。

  4. 使用你所选择的文本编辑器打开定义 Kubernetes yum 仓库的文件:

    1. nano /etc/yum.repos.d/kubernetes.repo

    你应该看到一个文件包含当前 Kubernetes 小版本的两个 URL。 例如,如果你正在使用 v1.27,你应该看到类似以下的输出:

    1. [kubernetes]
    2. name=Kubernetes
    3. baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
    4. enabled=1
    5. gpgcheck=1
    6. gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
    7. exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
  5. 将这些 URL 中的版本更改为下一个可用的小版本,例如:

    1. [kubernetes]
    2. name=Kubernetes
    3. baseurl=https://pkgs.k8s.io/core:/stable:/vv1.28/rpm/
    4. enabled=1
    5. gpgcheck=1
    6. gpgkey=https://pkgs.k8s.io/core:/stable:/vv1.28/rpm/repodata/repomd.xml.key
    7. exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
  6. 保存文件并退出文本编辑器。继续按照相关的升级说明进行操作。

接下来