kubectl port-forward
将本地端口转发到 Pod 或 Service,用于本地调试
语法
kubectl port-forward <resource> <local-port>:<remote-port> [flags]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
--address |
监听地址(默认 127.0.0.1) | kubectl port-forward pod/web --address 0.0.0.0 8080:80 |
进阶 |
-n --namespace |
指定命名空间 | kubectl port-forward svc/web -n production 8080:80 |
常用 |
示例
转发 Pod 端口
kubectl port-forward pod/web-app-6f7b8c9d-k2m4n 8080:80
本地 8080 映射到 Pod 的 80 端口
转发 Service 端口
kubectl port-forward svc/my-service 3000:80
通过 Service 转发,自动选择后端 Pod
访问集群内数据库
kubectl port-forward svc/mysql 3306:3306
本地客户端直接连接集群内的 MySQL
监听所有网卡
kubectl port-forward --address 0.0.0.0 svc/web 8080:80
允许局域网其他机器访问(开发环境)
常见错误
unable to forward port: pod is not running
目标 Pod 不在 Running 状态,检查 Pod 状态
address already in use
本地端口被占用,换一个端口或关闭占用进程
技巧
- port-forward 仅用于调试,不要用于生产流量
- 转发 Service 比转发 Pod 更稳定,Pod 重启后不需要重新转发
- Ctrl+C 终止转发