如何将根CA添加到minikube?

ary*_*lin 7 kubernetes minikube

我的公司使用它自己的根CA,当我试图拉图像时.即使从私人注册表我收到错误:

1小时3分22 {kubelet minikube}警告FailedSync错误同步窗格,跳过:使用ErrImagePull"POD"的"StartContainer"失败:"gcr.io/google_containers/pause-amd64:3.0的图片拉取失败,这可能是因为有此请求没有凭据.

详细信息:(来自守护程序的错误响应:获取https://gcr.io/v1/_ping:x509:由未知权限签名的证书)"1h 10s 387 {kubelet minikube}警告FailedSync错误同步pod,跳过:未能"StartContainer"对于带有ImagePullBackOff的"POD":"后退拉图像"gcr.io/google_containers/pause-amd64:3.0 \""

如何将根CA安装到minkube或避免此消息,即仅使用私有注册表,并且不要从中提取任何内容gcr.io

ary*_*lin 9

到目前为止,我发现的唯一解决方案是在minikube中添加--insecure-registry gcr.io选项。

  • [注意](https://github.com/kubernetes/minikube/issues/604#issuecomment-247813764),当我不可避免地忘记时:“如果机器已经存在,则`--insecure-registry`标志将被忽略(即使如果它被停止)。如果您希望新标志得到尊重,您必须首先`minikube delete`。 (2认同)

Vin*_*met 5

讲话:

x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)

您能否尝试以下来自 Minikube repo 的建议?

将证书复制到虚拟机中。位置应该是:

/etc/docker/certs.d/

从这里:https : //docs.docker.com/engine/security/certificates/

参考

该线程还包括以下单行:

cat <certificatefile> \
  | minikube ssh "sudo mkdir -p /etc/docker/certs.d/<domain> && sudo tee /etc/docker/certs.d/<domain>/ca.crt"
Run Code Online (Sandbox Code Playgroud)

这里的问题是需要更新的 Linux 主机的 CA 信任链。最简单的方法是在将证书复制到 VM 后重启 Linux 主机,如果重启不是一个选项 - 寻找一种方法来update-ca-certificates.

只是重新启动 Docker Daemon 很可能无法解决这个问题

注意:允许 Docker 守护进程使用不安全的注册表意味着不验证证书......虽然这可能有帮助,但它并不能解决这里提出的问题