kubectl port-forward
允许使用资源名称 (例如 pod 名称)来选择匹配的 pod 来进行端口转发。
# Change mongo-75f59d57f4-4nd6q to the name of the Pod
kubectl port-forward mongo-75f59d57f4-4nd6q 28015:27017
这相当于
kubectl port-forward pods/mongo-75f59d57f4-4nd6q 28015:27017
或者
kubectl port-forward deployment/mongo 28015:27017
或者
kubectl port-forward replicaset/mongo-75f59d57f4 28015:27017
或者
kubectl port-forward service/mongo 28015:27017
以上所有命令都应该有效。输出应该类似于:
Forwarding from 127.0.0.1:28015 -> 27017
Forwarding from [::1]:28015 -> 27017
说明:
kubectl port-forward
不会返回。你需要打开另一个终端来继续这个练习。
mongosh --port 28015
在 MongoDB 命令行提示符下,输入 ping
命令:
db.runCommand( { ping: 1 } )
成功的 ping 请求应该返回:
{ ok: 1 }
如果你不需要指定特定的本地端口,你可以让 kubectl
来选择和分配本地端口, 以便你不需要管理本地端口冲突。该命令使用稍微不同的语法:
kubectl port-forward deployment/mongo :27017
输出应该类似于:
Forwarding from 127.0.0.1:63753 -> 27017
Forwarding from [::1]:63753 -> 27017
kubectl
工具会找到一个未被使用的本地端口号(避免使用低段位的端口号,因为他们可能会被其他应用程序使用)。 输出应该类似于:
Forwarding from 127.0.0.1:63753 -> 27017
Forwarding from [::1]:63753 -> 27017
与本地 28015 端口建立的连接将转发到运行 MongoDB 服务器的 Pod 的 27017 端口。 通过此连接,您可以使用本地工作站来调试在 Pod 中运行的数据库。
警告:
kubectl port-forward
仅适用于 TCP 端口
了解更多: kubectl port-forward
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#port-forward