当前位置: 首页 > 工具软件 > port-forward > 使用案例 >

kubernetes 使用kubectl port-forward 暴露端口访问应用

左丘源
2023-12-01

转发一个本地端口到 Pod 端口

  1. 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 不会返回。你需要打开另一个终端来继续这个练习。

  1. 启动 MongoDB 命令行接口:
mongosh --port 28015
  1. 在 MongoDB 命令行提示符下,输入 ping 命令:

    db.runCommand( { ping: 1 } )
    

    成功的 ping 请求应该返回:

    { ok: 1 }
    

(可选操作)让 kubectl 来选择本地端口

如果你不需要指定特定的本地端口,你可以让 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

 类似资料: