我们有一个使用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容器吗?
答案 0 :(得分:0)
要考虑三件事:
我将重新设计您的系统,以使用更简单的通信系统 进行设置,就像在pod之间进行HTTP调用一样。
如果将服务放在部署的前面,它将不会中继任何SSH连接。因此,您必须直接指向吊舱,这可能很不方便。
如果您错过了这一点:您需要在部署模板中声明端口22。
请让我知道是否有帮助。