如何设置kubectl端口转发(详细分步指南)

kubectl端口转发教程介绍Kubectl port-forward  允许你从本地主机访问内部 Kubernetes 集群进程并与之交互。你可以使用此方法来调查问题并在本地调整你的服务,而无需事先公开它们。
【如何设置kubectl端口转发(详细分步指南)】Kubectl 是用于管理 Kubernetes 集群的主要命令行工具。它对于部署应用程序、管理集群资源和构建复杂框架至关重要。
如何设置kubectl端口转发?这个简洁的教程向你展示了如何使用 kubectl 将端口转发到 Kubernetes 集群中的 pod,包括相关的kubectl设置端口转发示例。
先决条件

  • 一个 Kubernetes 集群
  • 一个完全配置好的 kubectl命令行工具
Kubernetes 端口转发如何工作?尽管 Kubernetes 是一个高度自动化的编排系统,但端口转发过程需要直接和重复的用户输入。一旦 pod 实例失败,连接就会终止,并且需要通过手动输入相同的命令来建立新的转发。
由于kubectl已经具有内置的端口转发功能,因此整个过程得以简化。
  1. 用户在本地机器上使用kubectl命令行与 Kubernetes 交互。
  2. port-forward命令指定集群资源名称并定义端口转发到的端口号。
  3. 因此,Kubernetes API 服务器会在你的本地主机和集群上运行的资源之间建立一个 HTTP 连接。
  4. 用户现在可以直接使用该特定 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端口转发(详细分步指南)

文章图片
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 集群中的端口转发对于不用于远程公开的后端服务特别有用。

    推荐阅读