KubeVPN:本地开发直连 Kubernetes 集群
文章目录KubeVPN本地开发直连 Kubernetes 集群1、 这工具干什么2、 为什么要用它3、 核心功能4、 安装方式5、 适合谁用KubeVPN本地开发直连 Kubernetes 集群kubevpn 在 GitHub 上拿到了 1,345 Star。这个工具解决一个问题在本地电脑上开发 Kubernetes 应用时怎么直接访问集群里的服务和网络。不用每次改完代码都推到远程再测本地跑着就能连上集群网络用服务名或者 Pod IP 直接调用。1、 这工具干什么KubeVPN 通过 TUN 设备把本地电脑接入 Kubernetes 集群的网络。连上之后你在本地就能用 ping、curl 这些命令直接访问集群里的 Pod 和 Service。它支持把集群里某个 Deployment 的流量转发到本地。比如线上 productpage 服务的请求可以按 header 路由到你本地跑的代码没带指定 header 的还是走集群原来的 Pod。还有一个 Docker 模式能把 Kubernetes Pod 的环境、卷、网络全部复制到本地容器里做到跟远程 Pod 一样的运行环境。2、 为什么要用它传统的 Kubernetes 开发流程是改代码、打镜像、推仓库、部署、等 Pod 起来、测试。一轮下来几分钟到十几分钟不等改个日志输出都要走一遍完整流程。KubeVPN 把这个循环缩短到本地改完直接测。集群里的服务调用、DNS 解析、网络路由全部在本地可用。做微服务联调的时候尤其有用。你负责 authors 服务同事负责 productpage用kubevpn proxy --headers foobar只把带特定 header 的流量引到本地其他请求还是走集群互不干扰。3、 核心功能连接集群网络一条命令kubevpn connect连上之后Pod IP、Service IP、集群 DNS 名称全部可访问。支持同时连多个集群每个连接有独立的状态管理。反向代理模式把集群流量引到本地kubevpn proxy deployment/productpage --headers foobar支持按 header 做流量分割HTTP、gRPC、WebSocket 都能走。Docker 开发模式把 Pod 跑在本地容器里kubevpn run deployment/authors --headers foobar --entrypoint sh本地会启动两个容器一个对应 Pod 的主容器一个 nginx 做 sidecar共享端口和网络。4、 安装方式macOS 和 Linux 用 brewbrew install kubevpnLinux 还支持 snapsudo snap install kubevpnWindows 用 scoopscoop bucket add extras scoop install kubevpn也支持 kubectl 插件方式安装或者直接从 GitHub Release 下载二进制。5、 适合谁用在 Kubernetes 上做微服务开发的工程师尤其是需要频繁调试服务间调用的场景。做联调、排查线上问题、本地复现集群环境都能用上。支持 macOS、Linux、Windows 三个平台协议覆盖 TCP、UDP、ICMP、gRPC、WebSocket 这些。本地复现集群环境都能用上。支持 macOS、Linux、Windows 三个平台协议覆盖 TCP、UDP、ICMP、gRPC、WebSocket 这些。