在使用Kubernetes的过程中,我们经常需要从软件包仓库中下载和安装各种组件和工具。然而,由于Kubernetes社区的快速发展和变化,软件包仓库也可能会发生变化。本教程将介绍在升级集群时启用包含 Kubernetes 次要版本的软件包仓库。
注意:
- 本教程仅适用于使用托管在 pkgs.k8s.io 上社区自治软件包仓库的用户。 启用新的 Kubernetes 小版本的软件包仓库。与传统的软件包仓库不同, 社区自治的软件包仓库所采用的结构为每个 Kubernetes 小版本都有一个专门的软件包仓库;
- 仅在将集群升级到另一个次要版本时才需要执行此步骤。 如果要升级到同一次要版本中的另一个补丁版本(例如:v1.28.5 到 v1.28.7)则不需要遵循本指南。 但是,如果仍在使用旧的软件包仓库,则需要在升级之前迁移到社区自治的新软件包仓库。
一、准备
本文假设已经在使用社区自治的软件包仓库(pkgs.k8s.io)。如果不是这种情况, 强烈建议按照官方公告中所述, 迁移到社区自治的软件包仓库。
注意:旧的包仓库(apt.kubernetes.io和yum.kubernetes.io)已从2023年9月13日开始被弃用并冻结。为了安装2023年9月13日之后发布的Kubernetes版本,强烈建议使用托管在pkgs.k8s.io上的新包仓库,并且这是必需的。已被弃用的旧仓库及其内容可能会在未来的任何时候被删除,而且不会提前通知。新的包仓库提供从v1.24.0开始的Kubernetes版本的下载。
1、验证是否正在使用 Kubernetes 软件包仓库
如果不确定自己是在使用社区自治的软件包仓库还是在使用老旧的软件包仓库, 可以执行以下步骤进行验证:
Ubuntu、Debian 或 HypriotOS:
打印定义 Kubernetes apt 仓库的文件的内容:
# 在系统上,此配置文件可能具有不同的名称 pager /etc/apt/sources.list.d/kubernetes.list
如果看到类似以下的一行:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /
CentOS、RHEL 或 Fedora:
打印定义 Kubernetes yum 仓库的文件的内容:
# 在系统上,此配置文件可能具有不同的名称 cat /etc/yum.repos.d/kubernetes.repo
如果看到的 baseurl 类似以下输出中的 baseurl:
[kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key exclude=kubelet kubeadm kubectl
openSUSE 或 SLES:
打印定义 Kubernetes zypper 仓库的文件的内容:
# 在系统上,此配置文件可能具有不同的名称 cat /etc/zypp/repos.d/kubernetes.repo
如果看到的 baseurl 类似以下输出中的 baseurl:
[kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key exclude=kubelet kubeadm kubectl
Kubernetes 软件包仓库所用的 URL 不仅限于 pkgs.k8s.io,还可以是以下之一:
- pkgs.k8s.io
- pkgs.kubernetes.io
- packages.kubernetes.io
二、切换到其他软件包仓库
在从一个 Kubernetes 小版本升级到另一个版本时,应执行此步骤以获取所需 Kubernetes 小版本的软件包访问权限。
Ubuntu、Debian 或 HypriotOS:
使用所选择的文本编辑器打开定义 Kubernetes apt 仓库的文件:
nano /etc/apt/sources.list.d/kubernetes.list
应该看到一行包含当前 Kubernetes 小版本的 URL。 例如,如果正在使用 v1.27,应该看到类似以下的输出:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /
将 URL 中的版本更改为下一个可用的小版本,例如:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
保存文件并退出文本编辑器,继续按照相关的升级说明进行操作。
CentOS、RHEL 或 Fedora:
使用所选择的文本编辑器打开定义 Kubernetes apt 仓库的文件:
nano /etc/apt/sources.list.d/kubernetes.list
应该看到一行包含当前 Kubernetes 小版本的 URL。 例如,如果正在使用 v1.27,应该看到类似以下的输出:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /
将 URL 中的版本更改为下一个可用的小版本,例如:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
保存文件并退出文本编辑器,继续按照相关的升级说明进行操作。