【发布时间】:2020-11-27 08:24:57
【问题描述】:
场景 1:我在物理机上部署一个 spring boot 应用程序,它在物理机的端口上打开 ssh 连接。假设是 9889。因此,一旦应用程序启动,该物理机将打开该端口上的连接并侦听任何传入请求。任何客户端都可以使用命令连接到该端口
ssh admin@ipaddress -p 9889.
它返回我期望的连接。
场景 2:我正在将该应用程序部署到 Kubernetes 集群中。我将服务的外部 IP 设置为主节点上的 IP。所以当我输入 Kubectl get services 我得到类似的东西
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT
app-entry LOADBALANCER 172.x.x.xx 172.x.x.x 3000:3552
我如何使用外部 IP 和端口 3000 SSH 到 Kubernetes 集群中的应用程序。由于每次我尝试使用上面的命令 ssh 时都会返回连接被拒绝
【问题讨论】:
-
Spring 应用程序本身是否运行 ssh 服务器;如果您使用
java -jar运行它,您可以通过 ssh 进入它吗?还是它运行的是普通的 TCP 或 HTTP 服务,而您只是通过 ssh 隧道连接到它? ssh 在哪里适合最终的 Kubernetes 设置? -
是的,我可以 ssh 进入 spring 应用程序本身。问题在于我打开 ssh 连接以在同一台机器的另一个端口上侦听请求的主要方法。所以不要说spring在端口9000上运行,在main方法中它打开端口9889。我使用的库是Apache Mina sshd。
标签: spring-boot docker kubernetes ssh kubectl