目前,作为容器化 K8 运行的应用程序每次都会启动一个新的 K8 pod,并且新的 pod 会尝试连接到 sftp 服务器。
不知何故新的pod总是无法连接到sftp服务器并超时。 这些 pod 在其上旋转的实例或 IP 地址可以访问 sftp 服务器,我可以使用命令连接到服务器
sshpass -p password sftp user@ip-address
每个新的 pod 都尝试使用以下脚本连接到 sftp 服务器
transport = paramiko.Transport((host, 22))
transport.connect(username, assword, hostkey=None, pkey=none)
connect = paramiko.SFTPClient.from_transport(transport)
每次新的 pod 启动时,都会为 pod 分配一个新的 IP 地址,并且该 IP 不会在 sftp 服务器中列入白名单以进行身份验证 - 我认为这就是它不起作用的原因。
新 pod 必须包含哪些更改才能连接到 sftp 服务器?我是否应该在 pod 的配置映射中包含主机的公钥,以便它使用它来连接到 sftp?
基本上是安全组问题。一旦子网范围被添加到 sec 组,pod 就能够访问 sftp 服务器