Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从ssh连接后面的私有注册表中提取Kubernetes集群中的docker映像_Docker_Kubernetes_Ssh - Fatal编程技术网

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

如何从ssh连接后面的私有注册表中提取Kubernetes集群中的docker映像,docker,kubernetes,ssh,Docker,Kubernetes,Ssh,我正在尝试在kubernetes群集上部署docker映像。此群集位于可通过ssh连接访问的服务器上 下面是.yaml的一部分,我使用它来提取图像: spec : containers : - name : my_image_name image : my_private_registry/my_image my_映像存储在另一台服务器的私有注册表中,可通过ssh连接(使用proxyjump)访问 我知道如何从kubernetes群集所在的同一服务器上的私有注册表中提取映像。但

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

下面是.yaml的一部分,我使用它来提取图像:

spec :
  containers :
  - name : my_image_name
    image : my_private_registry/my_image
my_映像存储在另一台服务器的私有注册表中,可通过ssh连接(使用proxyjump)访问

我知道如何从kubernetes群集所在的同一服务器上的私有注册表中提取映像。但当它在另一台服务器上时,我不会。我确信可以将kubernetes配置为使用ssh连接,但我没有发现Resources可以帮助我做到这一点。其他私有注册表仅通过“docker login”命令即可访问

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


谢谢你的帮助。我确信这并不复杂,但我对kubernetes和docker还是比较陌生的。

了解docker守护进程并不是在kubernetes内部运行是非常重要的。因此,无论您通过kubernetes对象(吊舱、服务…)提供什么,通常都无法从外部访问

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

我能够将映像推送到kube服务器(使用docker over ssh包)。但是在那里,我没有成功地让kubernetes集群看到它:我试图将它推送到本地注册表中,但k8s集群仍然看不到它。关于ssh端口转发,我可以这样做,但我不知道如何以这种方式配置kubernetes。您在何处/如何操作本地注册表?我使用本教程在部署k8s的服务器上创建了本地注册表:。但是,当我尝试通过.yaml拉取映像时,我遇到了一个ErrImagePull错误。如果您在一台服务器上运行注册表,并且整个集群都在同一台服务器上运行(没有其他虚拟机)您需要使用localhost:5000作为注册表URL。我认为这是问题所在:映像部署在运行在其他虚拟机上的工作节点上。因此,localhost:5000不起作用。谢谢你的帮助。我会尝试做不同的事情。