kubectl port-foreard 命令可以将本地机器的网络端口转发到 Kubernetes 集群中的 Pod 或 Service,使外部能够访问这些服务。这在调试和开发过程中非常实用,接下来,让我们一起了解如何使用吧!
目录
1、kubectl port-forward 使用场景
-
本地调试: 用于在本地访问运行在 Kubernetes 中的应用程序,尤其是在开发和测试阶段,例如想在本地浏览器中测试一个 Web 应用时
-
数据库连接: 当需要连接 Kubernetes 中的数据库(如 MongoDB、PostgreSQL 等)进行数据检查或迁移等操作时,可以通过端口转发创建临时连接
-
API 测试: 对于暴露了 HTTP API 的服务,可以通过端口转发便捷地进行 API 请求测试,而无需暴露服务到公网
-
监控和日志: 在 Kubernetes 中运行的监控工具、日志查看器等可以通过端口转发快速访问
2、kubectl port-forward 基本语法
### 常见参数 ###
# --address: 指定监听的地址,默认为 127.0.0.1,若想让所有网络接口都能够访问设置为 0.0.0.0
# --pod-running-timeout: 等待 Pod 进入运行状态的时间
kubectl port-forward <资源类型>/<资源名称> <本地端口>:<目标端口>
3、使用 kubectl port-forward 命令
# 查看帮助命令
kubectl port-forward -h
# 假设想要在本地直接访问 Pod->my-app(运行在 8080 端口)
# 下方命令执行后打开浏览器访问 http://localhost:8080 来查看该 Pod 提供的服务
kubectl port-forward pod/my-app 8080:8080
# 运行 MySQL 的 Pod->mysql-pod,服务端口为 3306
# 下方命令执行后可使用本地客户端连接数据库
kubectl port-forward mysql-pod 3306:3306
mysql -h 127.0.0.1 -P 3306 -u root -p
### 注意 ###
# kubectl port-forward 仅在命令运行时有效,退出后端口转发终止
# 该命令适用于调试和临时访问,生产环境建议使用 Service/Ingress 暴露服务