使用Vagrant创建K8s集群VM时遭遇GPG公钥缺失错误
解决Kubernetes仓库GPG密钥缺失(NO_PUBKEY B53DC80D13EDEF05)问题
1. 手动导入缺失的公钥
方法1:兼容旧版apt-key方式
直接在VM节点终端执行以下命令:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B53DC80D13EDEF05
如果遇到密钥服务器超时,可切换HTTP端口的密钥服务器:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B53DC80D13EDEF05
方法2:符合新版apt规范的推荐方式
# 接收密钥 gpg --keyserver keyserver.ubuntu.com --recv-keys B53DC80D13EDEF05 # 导出密钥到系统可信密钥环目录 gpg --export B53DC80D13EDEF05 | tee /usr/share/keyrings/kubernetes-archive-keyring.gpg > /dev/null # 重新配置K8s仓库,关联密钥环 echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
2. 检查并修正common.sh脚本的K8s配置
打开你的common.sh脚本,定位到Kubernetes仓库配置段:
- 确认密钥导入步骤未被注释、无语法错误
- 若脚本仍使用旧版
apt-key方式,建议替换为上述方法2的内容,避免后续兼容问题
3. 验证修复并重新执行脚本
完成密钥导入后,先更新apt缓存确认错误消除:
apt-get update
若未再出现NO_PUBKEY提示,重新执行common.sh脚本即可。
4. 网络环境排查(针对国内网络或网络受限场景)
如果无法连接官方密钥服务器或K8s仓库,可替换为国内镜像源(以阿里云为例):
# 导入阿里云K8s密钥 curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg # 配置阿里云K8s仓库 echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
内容的提问来源于stack exchange,提问作者AnilJ
相关产品推荐
相关产品推荐

