使用kubectl proxy可以访问Pod中的业务,但是URL要加上namespace,service等,比较长。kubectl还提供了一个功能,就是kubectl port-forward, 直接forward数据,kubectl启动后,监听本地的一个端口,把此端口的ip包统统forward到kubectl连接的K8S集群的某个业务的端口:
例如,如果有个service名字叫做mongo-75f59d57f4-4nd6q,监听在27017端口,使用Port Forwarding:
kubectl port-forward mongo-75f59d57f4-4nd6q 28015:27017
然后就可以通过本地的端口访问此pod中的业务了:
http://127.0.0.1:28015
port-forward 不返回, 把kubectl运行机器上的一个端口,负责forward到集群中一个pod,或者一个service的端口上。
port-forward目前只支持tcp.