为什么SSH在kubernetes容器/容器中不起作用?

时间:2019-12-20 05:49:59

标签: ssh kubernetes

我们有一个使用SSH将工件从一个节点复制到另一个节点的应用程序。在创建Docker映像(基于Linux Centos 8)时,我已经安装了Openssh服务器和客户端,当我从Docker命令运行映像并执行到其中时,我能够成功运行SSH命令,并且还看到了端口22已启用并正在监听($ lsof -i -P -n | grep LISTEN)。

但是,如果我使用Kubernetes集群中的相同映像启动POD /容器,则看不到端口22已启用并在容器内部进行侦听。即使我尝试从k8s容器内部启动sshd,它也会给我以下错误:

Redirecting to /bin/systemctl start sshd.service Failed to get D-Bus connection: Operation not permitted.

有什么方法可以在启用SSH的情况下启动K8s容器吗?

1 个答案:

答案 0 :(得分:0)

要考虑三件事:

  1. 就像大卫在评论中说的那样:
  

我将重新设计您的系统,以使用更简单的通信系统   进行设置,就像在pod之间进行HTTP调用一样。

  1. 如果将服务放在部署的前面,它将不会中继任何SSH连接。因此,您必须直接指向吊舱,这可能很不方便。

  2. 如果您错过了这一点:您需要在部署模板中声明端口22。

请让我知道是否有帮助。