- 问题分析
- 错误提示
仓库 “https://apt.kubernetes.io kubernetes-xenial Release” 没有 Release 文件
通常是因为:- 仓库地址已过时:旧版 Kubernetes 仓库 (
kubernetes-xenial
) 不再维护。 - Ubuntu 版本与仓库不兼容:
xenial
是 Ubuntu 16.04 的代号,新系统(如 22.04/24.04)需使用新仓库格式。 - GPG 密钥或仓库配置错误:未正确配置签名密钥或仓库源。
- 仓库地址已过时:旧版 Kubernetes 仓库 (
- 错误提示
-
解决方案
- 使用新版 Kubernetes 官方仓库
Kubernetes 已改用新的仓库路径格式,不再依赖 Ubuntu 版本代号(如xenial
、jammy
)。按以下步骤修复:
# 删除旧仓库配置 sudo rm /etc/apt/sources.list.d/kubernetes.list # 添加新版仓库源(支持所有 Ubuntu/Debian 版本) echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
- 安装新版 GPG 密钥
# 下载并安装 GPG 密钥 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg # 更新 APT 仓库索引 sudo apt update
- 安装 Kubernetes 组件
# 安装指定版本(示例:1.28.x) sudo apt install -y kubeadm=1.28.* kubelet=1.28.* kubectl=1.28.*
- 使用新版 Kubernetes 官方仓库
- 验证配置
# 检查仓库配置
cat /etc/apt/sources.list.d/kubernetes.list
# 输出应类似:
deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
- 常见问题排查
-
网络问题:
# 测试仓库可达性 curl -I https://pkgs.k8s.io/core:/stable:/v1.28/deb/
• 若返回
200 OK
,说明网络正常;否则检查防火墙或代理设置。 -
GPG 密钥错误:
# 重新下载密钥 sudo rm /etc/apt/keyrings/kubernetes-archive-keyring.gpg curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg sudo apt update
-
Ubuntu 版本不匹配:
• 确保使用上述通用仓库格式,无需指定 Ubuntu 代号。
-
- 总结步骤
- 清理旧配置:删除过时的
kubernetes.list
文件。 - 添加新仓库:使用新版仓库地址
https://pkgs.k8s.io/core:/stable:/v1.28/deb/
。 - 安装密钥:确保 GPG 密钥正确导入。
- 更新并安装:执行
apt update
和apt install
。
- 清理旧配置:删除过时的
通过以上步骤,可解决因仓库配置过时导致的 没有 Release 文件
错误。