kubectl端口转发教程介绍Kubectl port-forward
允许你从本地主机访问内部 Kubernetes 集群进程并与之交互。你可以使用此方法来调查问题并在本地调整你的服务,而无需事先公开它们。
【如何设置kubectl端口转发(详细分步指南)】Kubectl 是用于管理 Kubernetes 集群的主要命令行工具。它对于部署应用程序、管理集群资源和构建复杂框架至关重要。
如何设置kubectl端口转发?这个简洁的教程向你展示了如何使用 kubectl 将端口转发到 Kubernetes 集群中的 pod,包括相关的kubectl设置端口转发示例。
先决条件
- 一个 Kubernetes 集群
- 一个完全配置好的 kubectl命令行工具
由于kubectl已经具有内置的端口转发功能,因此整个过程得以简化。
- 用户在本地机器上使用kubectl命令行与 Kubernetes 交互。
- 该
port-forward
命令指定集群资源名称并定义端口转发到的端口号。 - 因此,Kubernetes API 服务器会在你的本地主机和集群上运行的资源之间建立一个 HTTP 连接。
- 用户现在可以直接使用该特定 pod,以诊断问题或在必要时进行调试。
注意:端口转发仅在处理单个 Pod 时才实用,不能用于服务。
kubectl端口转发教程:基本 kubectl port-forward 命令kubectl设置端口转发示例:该
port-forward
命令建立从目标 pod 到你的本地主机的隧道。该命令要求你定义资源的类型或名称以及本地和远程端口号:kubectl port-forward TYPE/NAME [
options] LOCAL_PORT:REMOTE_PORT
如果多个 Pod 与类型/名称标准匹配,则默认情况下会随机选择一个。为避免这种不一致,请尽可能精确地定义 pod。你可以通过键入以下内容手动列出命名空间中的pod 来找到确切的 pod 名称:
kubectl -n yournamespace get pods
该列表提供了该命名空间内 pod 的名称。
文章图片
kubectl 端口转发到特定 Pod
如何设置kubectl端口转发?例如,以下命令将允许你访问集群中的MongoDB 部署。pod 的名称是mongo-db-r3pl1ka3,端口号是 5762:
kubectl port-forward pod/mongo-db-r3pl1ka3 8080:5762
Kubernetes API 现在侦听本地端口 8080 并将数据转发到定义的 pod 上的端口 5762。
随机本地端口
在本地监听一个随机端口,并转发到指定 pod 内的端口 5762:
kubectl port-forward pod/mongo-db-r3pl1ka3 :5762
对应的本地和远程端口
使用相同的端口(8080、5762)在本地和特定 pod 内侦听和转发数据:
kubectl port-forward pod/mongo-db-r3pl1ka3 8080 5762
随机本地 IP 地址
在任何本地地址上侦听端口 8080,转发到指定 pod 中的端口 5762:
kubectl port-forward --address 0.0.0.0 pod/mongo-db-r3pl1ka3 8888:5762
为端口转发指定本地 IP 地址
如何设置kubectl端口转发?使用定义的 IP 侦听本地主机上的端口 8080,转发到 pod 中的端口 5762:
kubectl port-forward --address localhost,10.153.40.102 pod/mongo-db-r3pl1ka3 8080:5762
使用 Deployment 选择 port-forward Pod
kubectl设置端口转发示例:在本地和 Pod 内使用相同的端口 (8080 5762) 侦听和转发数据。该部署使用定义哪些pod是:
kubectl port-forward deployment/mydeployment 8080 5762
允许服务定义端口转发 Pod
在本地和 Pod 内使用相同的端口 (8080 5762) 侦听和转发数据。所述服务所使用选择哪个吊舱是:
kubectl port-forward service/myservice 8080 5762
kubectl端口转发教程结论如何设置kubectl端口转发?你现在可以使用该
port-forward
命令连接到 Kubernetes 集群中的任何 pod。如果单个 Pod 开始出现故障,你就可以访问该服务并纠正任何问题。Kubernetes 集群中的端口转发对于不用于远程公开的后端服务特别有用。
推荐阅读
- 如何在Kubernetes集群上安装Jenkins(详细分步指南)
- 如何在Kubernetes上部署RabbitMQ(分步指南)
- 如何更改和使用Vim配色方案(详细操作指南)
- Cassandra与MongoDB有什么区别(哪个更好一点?)
- 如何在Ubuntu 18.04/20.04上安装Minikube(分布指南)
- 如何在CentOS 8上安装Anaconda(详细操作指南)
- 如何在CentOS 8上安装ELK栈(Elasticsearch、Logstash和Kibana)
- 如何在CentOS 8上安装Jenkins(详细操作指南)
- 如何在CentOS上安装Minikube(详细操作指南)