kubectl port-forward 是一个允许您将一个或多个本地端口转发到 Pod 的命令,使测试和调试在 Kubernetes 内运行的应用程序变得更容易。
下面的示例说明了如何使用 kubectl port-forward 将本地端口转发到 Pod。
【代码清单】
# Forward local port 8080 to port 80 of 'my-pod'
kubectl port-forward my-pod 8080:80
【执行结果】
Forwarding from 127.0.0.1:8080 -> 80
执行该命令时,kubectl 会在本地计算机和指定 Pod(my-pod)之间建立一条隧道。该命令会将本地端口 8080 的流量转发到 Pod 的端口 80。这对于访问 Pod 内部运行的网络应用程序非常有用,无需通过服务将其公开。
例如,如果 Pod 中运行的网络服务器监听 80 端口,则可以通过导航到 http://localhost:8080,在网络浏览器中访问该服务器。该命令将在终端中持续运行,你可以按 Ctrl+C 停止该命令。
这种方法对开发和测试特别有用,因为它允许您以受控方式与应用程序交互,而无需修改群集的网络配置。
【小知识】
kubectl port-forward 也可与服务一起使用,允许你将流量转发到服务而不是特定 Pod。例如,kubectl port-forward service/my-service 8080:80 会将本地 8080 端口转发到服务的 80 端口。
该命令非常适合调试未对外公开的服务问题,因为它允许你直接从本地机器与服务交互。