是否可以对容器中的虚拟机执行 ssh?



我在 GKE 上的 Kubernetes 集群中有一个 pod,它可以在 Azure 上远程创建一个 Kubernetes 集群,我想从 pod ssh 到 Azure 集群的主虚拟机,这样我就可以远程运行一些命令。但是,每当我在 pod 内运行 ssh/scp 时,我都遇到了超时问题:

ssh: connect to host port 22: Connection timed out

我已经在我的pod中安装了OpenSSH客户端/服务器。我确保虚拟机具有公共 IP 地址,并且容器还可以访问虚拟机的私钥。我尝试将ssh连接到笔记本电脑上的Azure主VM,它工作正常。有什么想法吗?

如果您在 GKE 中运行私有集群,请查看他们的文档:

它说:

专用节点没有出站 Internet 访问权限,因为它们没有外部 IP 地址。私有 Google Access 为私有节点及其工作负载提供通过 Google 专用网络对 Google Cloud Platform API 和服务的有限出站访问权限。例如,私有 Google Access 使私有节点可以从 Google Container Registry 中提取容器映像,并将日志发送到 Stackdriver。

检查另一个问题 => Kubernetes:从 pod 连接到外部世界

按照以下步骤操作

  1. 在 Azure 群集中部署具有 SSH 二进制文件的测试 Pod。
  2. 更新群集节点上的 SSH 证书(如果已有证书,请忽略(
  3. 使用 kubectl cp 命令将 SSH 证书复制到测试 Pod 中
  4. 进入测试容器并将 SSH 连接到任何群集节点
  5. 您应该能够在群集节点上运行命令

最新更新