Mah*_*oni 5 portforwarding tunnel kubernetes
是否有与kubectlto对应的命令:
ssh -L8888:rds.aws.com:5432 example.com
Run Code Online (Sandbox Code Playgroud)
kubectl有port-forward,你也可以指定--address但严格要求的IP地址。
简短的回答,不。
在 OpenSSH中,本地端口转发是使用以下选项配置的
-L:Run Code Online (Sandbox Code Playgroud)ssh -L 80:intra.example.com:80 gw.example.com此示例打开与跳转服务器的连接
gw.example.com,并将任何到本地计算机上端口 80 的连接转发到 上的端口 80intra.example.com。默认情况下,任何人(甚至在不同的计算机上)都可以连接到 SSH 客户端计算机上的指定端口。但是,可以通过提供 绑定地址将其限制为同一主机上的程序:
Run Code Online (Sandbox Code Playgroud)ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com
您可以在此处阅读文档。
在port-forwardKubernetes 中仅在集群内工作,您可以将到达指定端口的流量转发到Deployment或Service或Pod
kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N]
Run Code Online (Sandbox Code Playgroud)
--addressflag 是指定要监听的内容,0.0.0.0意味着一切localhost都是名称,您可以设置它可以监听的 IP。文档可在此处获取,您还可以阅读使用端口转发访问集群中的应用程序。
在旧的答案是有效的。不过,一种解决方法是使用类似https://hub.docker.com/r/marcnuri/port-forward 的东西
kubectl run --env REMOTE_HOST=your.service.com --env REMOTE_PORT=8080 --env LOCAL_PORT=8080 --port 8080 --image marcnuri/port-forward test-port-forward
在集群上运行它,然后转发到它。
kubectl port-forward test-port-forward 8080:8080
如果您在 Internet 上有 SSH 服务器,则可以使用的一种解决方法是从 pod 通过 SSH 到您的服务器,反向进行端口转发:
# Suppose a web console is being served at
# http://my-service-8f6717ab-e.default:8888/
# inside your cluster:
kubectl exec -it my-job-f523b248-7htj6 -- ssh -R8888:my-service-8f6717ab-e.default:8888 user@34.23.1.2
Run Code Online (Sandbox Code Playgroud)
然后您可以从外部连接到 Kubernetes 内部的服务。如果 SSH 服务器不是您本地的,您可以使用普通端口转发从本地计算机通过 SSH 连接到它:
me@my-macbook-pro:$ ssh -L8888:localhost:8888 user@34.23.1.2
Run Code Online (Sandbox Code Playgroud)
然后将浏览器指向http://localhost:8888/
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |