如何通过 ssh 连接到 OpenShift/Kubernetes 集群内运行的容器?

Amr*_*Amr 4 ssh containers openshift kubernetes

我希望能够通过 ssh 访问 OpenShift Pod 中的容器。

我确实知道,我可以简单地使用oc rsh. 但这是基于这样的假设:我在想要通过 ssh 连接到容器的节点上安装了 openshift cli。

但我真正想要实现的是,从未安装 openshift cli 的节点 ssh 进入容器。该节点与 OpenShift 位于同一网络。该节点确实可以访问托管在容器上的 Web 应用程序(仅作为示例)。但我不想通过 Web 访问,而是希望通过 SSH 访问。

有什么办法可以实现这一点吗?

Nic*_*ick 5

与在真实或虚拟化硬件上运行整个操作系统的服务器不同,容器只不过是由几个内核功能封装的单个 Linux 进程:CGroupsNamespacingSELinux。如果你愿意的话,这是一个“奇特”的过程。

在容器中打开 shell 会话与打开到服务器的 ssh 连接并不完全相同。在容器中打开 shell 需要启动一个 shell 进程,并将其分配给与容器进程位于同一主机上的相同 cgroup 和命名空间,然后向您呈现该会话,这不是 ssh 的设计目的。

使用oc execkubectl execpodman execdocker exec cli 命令在正在运行的容器内打开 shell 会话是用于连接正在运行的容器的方法。

  • 老实说,找到一种在没有 oc 的节点上运行和安装 oc 的方法比尝试将 sshd 安装到容器中更容易。 (2认同)