CircleCI安装kubectl时获取apt-key.gpg遇Server 500错误求助
解决CircleCI工作流中获取Google apt-key.gpg时的500错误
问题详情
我正尝试通过CircleCI工作流安装kubectl,代码未做任何变更,但在从Google获取apt-key.gpg文件时出现Server 500错误。使用curl、wget工具或直接在浏览器访问均会触发该错误,wget执行日志如下:
wget https://packages.cloud.google.com/apt/doc/apt-key.gpg --2023-02-26 13:40:10-- https://packages.cloud.google.com/apt/doc/apt-key.gpg Resolving packages.cloud.google.com (packages.cloud.google.com)... 142.251.45.238 Connecting to packages.cloud.google.com (packages.cloud.google.com)|142.251.45.238|:443... connected. HTTP request sent, awaiting response... 500 Internal Server Error 2023-02-26 13:40:10 ERROR 500: Internal Server Error.
已尝试从VPC、公网等环境,使用wget、curl等工具进行操作,均无法解决问题。
可行解决方法
替换密钥源地址:使用Google公开密钥服务器的替代地址获取密钥,该密钥与原地址提供的完全一致,可正常验证Kubernetes apt源,执行命令:
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg直接安装kubectl二进制包:绕开apt源依赖,直接下载二进制文件完成安装,步骤如下:
- 获取最新稳定版kubectl版本号:
KUBECTL_VERSION=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) - 下载对应二进制文件:
sudo curl -fsSL "https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl" -o /usr/local/bin/kubectl - 添加执行权限:
sudo chmod +x /usr/local/bin/kubectl
- 获取最新稳定版kubectl版本号:
临时跳过密钥验证(紧急场景):若需快速完成部署,可在添加apt源时跳过密钥验证,但不建议长期使用,命令示例:
echo "deb [trusted=yes] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list确认Google服务状态:若上述方法均无效,需确认Google云相关服务是否存在故障,等待官方修复后再尝试操作。
内容的提问来源于stack exchange,提问作者Matt Harbers
相关产品推荐
相关产品推荐

