场景1:我在一台物理机上部署了一个spring启动应用程序,它在物理机的一个端口上打开了ssh连接。假设是9889。因此,一旦应用程序启动,该物理机将在该端口上打开连接,并侦听任何传入的请求。任何客户端都可以使用以下命令连接到该端口
ssh admin@ipaddress -p 9889.它返回我期望的连接。
场景2:我正在将该应用部署到Kubernete集群中。我将服务的外部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如何使用externalIP和端口3000 ssh到Kubernete集群中的应用程序。因为每次我尝试使用上面的命令ssh时,它都会返回连接被拒绝
发布于 2020-11-27 17:13:01
正如评论中提到的@zerkms,您可以使用kubectl exec连接Kubernetes集群内部运行的容器的外壳。
$ kubectl exec -it -n <namespace> <pod_name> -- /bin/bash
$ kubectl exec -it -n <namespace> <pod_name> -- /bin/sh
# if the pod has multiple containers
$ kubectl exec -it -n <namespace> <pod_name> -c <container_name> -- /bin/bash如果您的pod上有一个正在运行的服务器,该服务器在特定端口提供服务,则可以使用kubectl port-forward从本地计算机连接它(即,localhost:PORT)。
# Pods
$ kubectl port-forward -n <namespace> pods/<pod_name> <local_port>:<container_port>
# Services
$ kubectl port-forward -n <namespace> svc/<service_name> <local_port>:<container_port>https://stackoverflow.com/questions/65034065
复制相似问题