Containerd 跳过自签名证书验证
🔧 场景一:配置 containerd 跳过自签名证书验证
对于你的私有镜像仓库问题,需要在 containerd 或更推荐的 hosts.toml 中配置。
方法A:通过 /etc/containerd/config.toml (旧版/全局)
编辑配置文件:
sudo vim /etc/containerd/config.toml在[plugins.”io.containerd.grpc.v1.cri”.registry.configs.”<你的仓库地址>”.tls] 部分,设置 insecure_skip_verify = true。
示例如下:
[plugins."io.containerd.grpc.v1.cri".registry.configs."my.registry.local:5000".tls]
insecure_skip_verify = true重启生效:
sudo systemctl restart containerd方法B:通过 /etc/containerd/certs.d/ (推荐方式)
这是 containerd 更模块化的新配置方式。
创建仓库配置目录:
sudo mkdir -p /etc/containerd/certs.d/<你的仓库地址>注:<你的仓库地址>可以是域名+端口,如
my.registry.local:5000。
创建 hosts.toml 文件:
sudo vim /etc/containerd/certs.d/<你的仓库地址>/hosts.toml写入以下配置(核心是 skip_verify = true):
server = "https://<你的仓库地址>"
[host."https://<你的仓库地址>"]
capabilities = ["pull", "resolve"]
# 如果需要认证,在此处配置
# 关键是跳过TLS验证
skip_verify = truesudo mkdir -p /etc/containerd/certs.d/registry.baomagangwan.com && cat << 'EOF' | sudo tee /etc/containerd/certs.d/registry.baomagangwan.com/hosts.toml > /dev/null
server = "https://registry.baomagangwan.com"
[host."https://registry.baomagangwan.com"]
capabilities = ["pull", "resolve"]
# 如果需要认证,在此处配置
# 关键是跳过TLS验证
skip_verify = true
EOF重启生效:
sudo systemctl restart containerd🔌 场景二:配置客户端工具跳过TLS验证
如果你需要通过 kubectl 或 oc 等客户端工具连接带有自签名证书的 Kubernetes API 服务器,可以使用以下方法:
使用 kubectl / oc 命令配置:
你可以通过 `--insecure-skip-tls-verify` 参数来临时跳过对特定集群的证书验证。这通常用于初始测试或临时访问。命令示例如下:# 为 kubectl 配置集群并跳过验证
kubectl config set-cluster <集群昵称> --server=<API服务器地址> --insecure-skip-tls-verify=true[citation:6]
# OpenShift 的 oc 命令用法类似
oc config set-cluster <cluster_nickname> --server=<master_ip_or_fqdn> --insecure-skip-tls-verify=true[citation:6]
其他工具(如 roxctl):
许多云原生工具(如红帽的 roxctl)也提供了 –insecure-skip-tls-verify 命令行标志来跳过验证。
💡 重要安全警告与建议
⚠️ 仅限测试环境:跳过 TLS 验证会带来中间人攻击风险,生产环境严禁使用。
正确做法:将私有仓库或 API 服务器的 CA 根证书正确添加到每个节点的信任库中(如 /etc/ssl/certs/ 或 containerd 的证书目录)。
🔍 下一步排查建议
确认错误根源:请先确认 k8s 秘钥验证不通过 的错误信息是否确实包含 x509: certificate signed by unknown authority 这类证书错误。如果是凭证问题,即使跳过验证也可能失败。
检查配置生效:更改 containerd 配置后,可以尝试在节点上使用 crictl pull <你的私有镜像> 直接测试拉取,看错误是否变化。
作者:Jeebiz 创建时间:2025-12-10 16:53
最后编辑:Jeebiz 更新时间:2025-12-10 17:03
最后编辑:Jeebiz 更新时间:2025-12-10 17:03