welcome@SSPLLTIT018:~$ sudo apt update
Hit:1 https://download.docker.com/linux/ubuntu focal InRelease
Hit:2 https://packages.microsoft.com/repos/code stable InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:6 https://dl.google.com/linux/chrome/deb stable InRelease
Ign:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:7 https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal pgadmin4 InRelease
Err:8 https://packages.cloud.google.com/apt kubernetes-xenial Release
404 Not Found [IP: 142.250.70.46 443]
Reading package lists... Done
E: The repository 'http://apt.kubernetes.io kubernetes-xenial Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target Translations (main/i18n/Translation-en_IN) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target DEP-11 (main/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target DEP-11 (main/dep11/Components-all.yml) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target DEP-11-icons-small (main/dep11/icons-48x48.tar) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target DEP-11-icons (main/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target DEP-11-icons-hidpi (main/dep11/[email protected]) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target CNF (main/cnf/Commands-amd64) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
W: Target CNF (main/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list:32 and /etc/apt/sources.list.d/kubernetes.list:1
welcome@SSPLLTIT018:~$ sudo nano /etc/apt/sources.list
答案1
存储库必须具有特定的结构才能使用apt
。此结构的一部分是名为 的文件Release
。就你的情况而言,至少此文件在相关存储库中缺失:
E: The repository 'http://apt.kubernetes.io kubernetes-xenial Release' does not have a Release file.
造成这种情况的原因有很多。也许您认为的存储库实际上并不是一个存储库,因此它不具备存储库所需的内部结构。也许存储库更改了其 URL,而您仍在apt
旧地址中查找不再存在的内容。也许存储库的维护者犯了一个错误。或者也许存储库不再存在。
就你的情况而言,这似乎是最后提到的原因。如果你尝试在浏览器中访问http://apt.kubernetes.io
,你会得到 404 响应,这意味着那里什么都没有。它甚至直接说明了这一点:
Err:8 https://packages.cloud.google.com/apt kubernetes-xenial Release
404 Not Found [IP: 142.250.70.46 443]
您尝试使用的存储库似乎不再存在。您需要寻找另一个提供所需软件包的存储库。
顺便说一句,您似乎正在尝试组合旨在与不同版本的 Ubuntu 配合使用的软件包。您的大多数存储库都设计为与 Focal(Ubuntu 20.04 Focal Fossa)配合使用。但您尝试使用的 Kubernetes 存储库设计为与 Xenial(Ubuntu 16.04 Xenial Xerus)配合使用:
Hit:1 https://download.docker.com/linux/ubuntu focal InRelease
和....相比
Err:8 https://packages.cloud.google.com/apt kubernetes-xenial Release
混合用于不同版本的软件包是一种非常让你陷入麻烦的好方法。这些软件包从来就不是要相互配合使用的,它们可能从未一起测试过,而且它们很可能不会一起工作。请只使用您实际使用的 Ubuntu 版本的存储库。如果您正在运行 Xenial,请使用适用于 Xenial 的存储库。如果您正在运行 Focal,请使用适用于 Focal 的存储库,等等。
答案2
旧版存储库(apt.kubernetes.io 和 yum.kubernetes.io)已弃用。我们无法修复这些旧版存储库的问题。相反,我们强烈建议迁移到新的社区拥有的存储库。有关更多详细信息,请参阅以下公告:
pkgs.k8s.io:介绍 Kubernetes 社区拥有的软件包存储库 Kubernetes 旧版软件包存储库将于 2023 年 9 月 13 日冻结 鉴于我们这里没有其他可以做的事情,我将锁定此问题。如果您遇到任何与新的社区拥有的存储库相关的问题,请打开一个新问题。
https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/ https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/
如何迁移到 Kubernetes 社区拥有的存储库?Debian、Ubuntu 和使用 apt/apt-get 的操作系统替换 apt 存储库定义,以便 apt 指向新存储库而不是 Google 托管的存储库。确保将以下命令中的 Kubernetes 次要版本替换为您当前使用的次要版本:
回显“deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg]https://pkgs.k8s.io/core:/stable:/v1.28/deb//” | sudo tee /etc/apt/sources.list.d/kubernetes.list 下载 Kubernetes 软件包存储库的公共签名密钥。所有存储库都使用相同的签名密钥,因此您可以忽略 URL 中的版本:
curl-fsSLhttps://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key| sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 更新 apt 包索引:
sudo apt-get 更新
答案3
已经发布的两个答案都给出了难题的不同部分,并且很有帮助。但是它们都没有解决您遇到的另一类错误,即“多次配置”错误。
此错误消息中的文本非常明确且有用。它是错误消息应如何工作的模型。阅读。
正如它所述,对于每条错误消息,您已在源列表中复制一行。它会告诉您两个文件的名称以及每个文件中的行号。
删除重复的行来修复这些错误。
总而言之,您的软件源代码非常混乱,包含跨版本引用、不存在的源代码以及多行重复代码。大多数这些错误似乎是由以下原因引起的:/etc/apt/sources.list.d/kubernetes.list
答案4
遗憾的是,更新后的 Kubernetes 软件包存储库 (pkgs.k8s.io) 中无法访问 v1.24 之前版本的 Linux 软件包。不过,可以直接从二进制文件安装所需的 Kubernetes 版本。该过程并不复杂,只需 3 个简单步骤:
- 从 GitHub 下载二进制文件并将其解压到 /usr/bin
- 为 kubelet 设置服务单元
- 下载 cni 插件并解压到 /opt/cni/bin 目录
有关此过程的指导,以下文章可能会有用:https://flex-solution.com/page/blog/install-k8s-lower-than-1_24。