如何从 ssh 连接后面的私有注册表中提取 Kubernetes 集群中的 docker 映像

时间:2021-03-04 15:45:54

标签: docker kubernetes ssh

我正在尝试在 kubernetes 集群上部署 docker 镜像。该集群位于可通过 ssh 连接访问的服务器上。

这是我用来拉图像的 .yaml 部分:

spec :
  containers :
  - name : my_image_name
    image : my_private_registry/my_image

my_image 存储在另一台服务器的私有注册表中,可通过 ssh 连接(使用 proxyjump)访问。

我知道如何从与 kubernetes 集群位于同一台服务器上的私有注册表中提取映像。但是当它在另一台服务器上时,我没有。我确信可以配置 kubernetes 以使其使用 ssh 连接,但我没有找到帮助我做到这一点的资源。其他私有注册表只能通过“docker login”命令访问?

我找到了使用名为 « docker_over_ssh » 的包发送图像的解决方案的开始,但这并不合适。我已经通过在 dockerhub 上推送镜像找到了解决方案,但我相信我们可以做得更好……

感谢您的帮助。我敢肯定它并不复杂,但我对 kubernetes 和 docker 还很陌生。

1 个答案:

答案 0 :(得分:1)

了解 docker 守护进程不在 kubernetes 内部运行非常重要。因此,您通过 kubernetes 对象(pod、服务...)提供的任何内容通常都无法从外部访问。

您可以为您的集群提供一个镜像注册表,以便可以通过通常的方式访问它。 另一种选择是使用 ssh 端口转发,如果 ssh 代理允许并使用转发主机作为注册表。