【发布时间】:2019-12-23 19:07:39
【问题描述】:
我们有一个应用程序,它使用 SSH 将工件从一个节点复制到另一个节点。在创建 Docker 映像(基于 Linux Centos 8)时,我已经安装了 Openssh 服务器和客户端,当我从 Docker 命令运行映像并执行到其中时,我能够成功运行 SSH 命令,并且还看到了端口 22启用并监听 ($ lsof -i -P -n | grep LISTEN)。
但是,如果我在 Kubernetes 集群中使用相同的映像启动 POD/Container,我看不到端口 22 已启用并在容器内进行侦听。即使我尝试从 k8s 容器内部启动sshd,它也会给我以下错误:
Redirecting to /bin/systemctl start sshd.service Failed to get D-Bus connection: Operation not permitted.
有没有办法在启用 SSH 的情况下启动 K8s 容器?
【问题讨论】:
-
通常 Docker 容器不运行 ssh 守护进程。我看到的几乎每个 SO 问题都暗示这有一个重大的安全问题,比如在 Dockerfile 中有一个硬编码的明文 root 密码。我会重新设计您的系统以使用更易于设置的通信系统,例如 pod 之间的 HTTP 调用。
标签: ssh kubernetes