为什么SSH不能在kubernetes吊舱/容器中工作?

为什么SSH不能在kubernetes吊舱/容器中工作?,ssh,kubernetes,Ssh,Kubernetes,我们有一个应用程序,它使用SSH将工件从一个节点复制到另一个节点。在创建Docker映像(基于Linux Centos 8)时,我已经安装了Openssh服务器和客户端,当我从Docker命令运行映像并将其执行到其中时,我成功地运行了SSH命令,并且还看到端口22已启用并正在侦听($lsof-I-P-n | grep LISTEN) 但是,如果我在Kubernetes集群中使用相同的映像启动一个POD/容器,我看不到端口22已启用并在容器内侦听。即使我尝试从k8s容器内部启动sshd,它也会给出

我们有一个应用程序,它使用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容器?

有三件事需要考虑:

  • 正如大卫在评论中所说:
  • 我会重新设计你的系统,使用更简单的通讯系统 要进行设置,请使用POD之间的HTTP调用

  • 如果在部署之前放置一个服务,它将不会中继任何SSH连接。所以你必须直接指向豆荚,这可能会很不方便

  • 如果您错过了:您需要在部署模板中声明端口22


  • 如果有帮助,请告诉我

    有三件事需要考虑:

  • 正如大卫在评论中所说:
  • 我会重新设计你的系统,使用更简单的通讯系统 要进行设置,请使用POD之间的HTTP调用

  • 如果在部署之前放置一个服务,它将不会中继任何SSH连接。所以你必须直接指向豆荚,这可能会很不方便

  • 如果您错过了:您需要在部署模板中声明端口22


  • 如果有帮助,请告诉我

    通常Docker容器不运行ssh守护进程。我看到的几乎每个问题都表明这有一个重大的安全问题,比如Dockerfile中有一个硬编码的明文根密码。我会重新设计您的系统,使用更易于设置的通信系统,比如POD之间的HTTP调用。通常Docker容器不运行ssh守护进程。我看到的几乎每个问题都表明这有一个重大的安全问题,比如Dockerfile中有一个硬编码的明文根密码。我会重新设计您的系统,以使用更易于设置的通信系统,比如POD之间的HTTP调用。