我在 kubernetes 上使用 gitlab runner,kaniko 将图像推送到 docker 私有(private)注册表(不安全),我怎样才能给 kaniko 推送权限?
我试过 --insecure-registry, --skip-tls-verify params 但有同样的错误
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --insecure-registry --destination registry-ip:5000/soccer
检查推送权限时出错——确保您输入了正确的标签名称,并且您的身份验证正确,然后重试:检查“registry-ip:5000/soccer”的推送权限:发布http://registry-ip:5000/v2/soccer/blobs/uploads/ :net/http:HTTP/1.x 传输连接中断:HTTP 响应格式错误“\x15\x03\x01\x00\x02\x02\x16”
最佳答案
推送到不安全的注册表需要更改 docker 守护进程。需要编辑 Docker 守护程序(无论您为 Kubernetes 集群使用什么运行时,例如 Docker、Containerd 等。我假设您使用 Docker 守护程序)都需要进行编辑以允许不安全的注册表。编辑/etc/docker/daemon.json
并添加以下内容:
{
"insecure-registries" : [ "registry-ip:5000" ]
}
然后在每个节点上重新启动 docker。
更好的方法是在本地 docker 注册表上添加某种形式的身份验证。您可以在 Docker 注册表上启用 HTTP 基本身份验证。或者,您可以使用签名证书在 docker 注册表上设置 SSL(尽管自签名证书需要添加到 Docker 守护程序才能被信任)。
关于kubernetes - 尝试推送到不安全的私有(private) docker 注册表时检查推送权限时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58706074/