Kubernetes-私有存储库部署问题

时间:2019-05-14 13:06:08

标签: docker kubernetes

我正在尝试使用Kubernetes从不安全的存储库中部署docker映像。 我已经进行了几个配置设置,以便将存储库声明为不安全的,并且还可以验证存储库是否为不安全的。

尝试通过

从Kubernetes部署此示例应用程序时仍然如此

尝试从不安全的私有注册表中部署docker映像时,通过所有三种方式创建Dashboard / deployment.yaml /秘密pod,我看到以下错误。请求提供一些帮助来解决这些问题。

 Events:
  Type     Reason     Age                  From                  Message
  ----     ------     ----                 ----                  -------
  Normal   Scheduled  41m                  default-scheduler     Successfully assigned registry/private-insecure-reg to kube-node-2
  Warning  Failed     40m (x2 over 40m)    kubelet, kube-node-2  Failed to pull image "x.x.x.x:5000/x-xxx": rpc error: code = Unknown desc = Error response from daemon: manifest for x.x.x.x:5000/x-xxx:latest not found
  Normal   BackOff    39m (x6 over 41m)    kubelet, kube-node-2  Back-off pulling image "127.0.0.1:5000/my-ubuntu"
  Normal   Pulling    39m (x4 over 41m)    kubelet, kube-node-2  pulling image "127.0.0.1:5000/my-ubuntu"
  Warning  Failed     39m (x2 over 41m)    kubelet, kube-node-2  Failed to pull image "x.x.x.x:5000/x-xxx": rpc error: code = Unknown desc = Error response from daemon: received unexpected HTTP status: 502 Bad Gateway
  Warning  Failed     39m (x4 over 41m)    kubelet, kube-node-2  Error: ErrImagePull
  Warning  Failed     52s (x174 over 41m)  kubelet, kube-node-2  Error: ImagePullBackOff

2 个答案:

答案 0 :(得分:2)

您使用普通docker在kubernetes主节点上设置了注册表。因此,它只能由localhost或127.0.0.1在主节点本身上访问。 根据日志文件kube-node-2,您正在尝试从其他节点提取图像。在该节点上,本地主机上没有注册表。但是,由于收到严重的网关错误,因此似乎在端口5000上监听了某些内容,而不是注册表。

这是解决此问题的方法:为主节点的IP添加一个DNS名称,以便每个节点都可以使用普通名称访问它。如果您不想配置TLS证书,则必须配置每个容器守护程序以将您的注册表视为不安全的(无HTTPS)。有关docker守护程序的配置,请参见答案表A_Suh。

答案 1 :(得分:1)

1)您需要通过编辑文件/etc/default/docker并更新DOCKER_OPTS来配置docker服务以使用不安全的注册表 例如

DOCKER_OPTS='--insecure-registry 127.0.0.1:5000'

2)重新启动docker

sudo systemctl restart docker