news 2026/8/24 9:19:14

Kubetap 快速上手:3 条命令代理 Kubernetes Service,ArgoCD 实战演示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubetap 快速上手:3 条命令代理 Kubernetes Service,ArgoCD 实战演示

Kubetap 快速上手:3 条命令代理 Kubernetes Service,ArgoCD 实战演示

【免费下载链接】kubetapKubectl plugin to interactively proxy Kubernetes Services with ease项目地址: https://gitcode.com/gh_mirrors/ku/kubetap

Kubetap是一款开源的kubectl 插件(Kubernetes Service 代理工具)。只需一条kubectl tap on命令,它就能在目标 Service 旁部署 mitmproxy 旁路代理(sidecar),让你实时捕获并检查集群内任意 Service 的流量——无需配置 CNI、无需修改 YAML、无需等待 CI。特别适合调试微服务之间的内网流量,也方便初学者弄清 Kubernetes 集群内请求的走向。

本文以ArgoCD为例,10 分钟带你走完整套流程,掌握tap ontap listtap off三条核心命令。

为什么需要 Kubernetes Service 代理工具?

真实集群里,微服务之间的调用关系往往像一团乱麻:

传统做法很繁琐:手动给 Deployment 加 sidecar、patch Service 清单、部署 mitmweb、测试、再全部回滚……或者加几行日志,然后漫长地等 CI。Kubetap 把这一整套流程自动化为一条命令,让深藏技术栈内部、原本难以触碰的微服务也能被轻松代理和观测。

安装 Kubetap:3 种方式任选其一

方式一:krew 一键安装(推荐)

kubectl krew install tap

方式二:Homebrew(macOS)

brew tap soluble-ai/homebrew-kubetap brew install kubetap

方式三:从源码构建(需 Go 1.14+)

git clone https://gitcode.com/gh_mirrors/ku/kubetap cd kubetap go generate go install ./cmd/kubectl-tap

💡 详细安装说明见docs/getting_started/installation.md;若源码安装后提示unknown command "tap",多半是${GOPATH}/bin未加入PATH,可参考docs/FAQ.md

安装完成后,Kubetap 以kubectl tap调用,并天然继承--namespace-n)、--context等常用 kubectl 参数。

ArgoCD 实战演示:3 条命令完成代理

假设 ArgoCD 已安装在集群的argocd命名空间中。

第 1 步:找到目标 Service

先看看 ArgoCD 暴露了哪些 Service:

$ kubectl get svc -n argocd NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-server ClusterIP 10.43.118.109 <none> 80/TCP,443/TCP 5d20h argocd-repo-server ClusterIP 10.43.192.56 <none> 8081/TCP,8084/TCP 5d20h ...

本例代理argocd-server的 HTTPS 服务(443 端口)。

第 2 步:一条命令开启代理(核心命令)

$ kubectl tap on -n argocd -p 443 --https argocd-server --port-forward Establishing port-forward tunnels to service... Port-Forwards: mitmproxy - http://127.0.0.1:2244 argocd-server - http://127.0.0.1:4000

这一条命令做了三件事:

  • 📦 把mitmproxysidecar方式部署到目标 Service 旁(流量不出集群,性能损耗最小)
  • 🔗 自动建立 port-forward 隧道,把代理暴露到本地127.0.0.1:2244
  • 🌐 加上--browser参数还能直接在浏览器中打开代理界面

打开http://127.0.0.1:2244,通过代理访问一次 ArgoCD,所有 API 请求都会实时出现在 mitmproxy 界面中:

第 3 步:查看状态与一键清理

$ kubectl tap list Tapped Namespace/Service: argocd/argocd-server $ kubectl tap off -n argocd argocd-server Untapped Service "argocd-server"

代理即刻被移除,Service 完全恢复原状——这正是 Kubetap 区别于手工 patch 清单的最大优势:无侵入、可随时还原

完整的交互演示(以 Harbor 为目标)见下方动图:

Kubetap 工作原理:sidecar 代理如何生效?

Kubetap 不要求安装 CNI 插件。对某个 Service 执行 tap 后,它会临时注入代理 sidecar(默认 mitmproxy)并重写该 Service 的流量路径,所有经过它的流量都会先汇入代理:

代理流量始终留在集群内部,对线上影响小;tap off之后所有注入内容自动清理。架构与设计的更多细节可参阅docs/README.md

常见问题与文档导航

你可能遇到的情况去哪里看
源码安装后提示unknown command "tap"${GOPATH}/bin未进 PATH,见docs/FAQ.md
想在容器 / Pod 里直接跑 Kubetap使用gcr.io/soluble-oss/kubectl-tap:latest镜像,见docs/getting_started/usage.md
想换 mitmproxy 以外的代理参考proxies/mitmproxy/Dockerfile
完整命令与参数速查docs/getting_started/quick-start.md

小结

  • Kubetap是一个 Kubernetes Service 代理工具:kubectl 插件形态,kubectl tap即可调用
  • 三条命令走完实战流程:kubectl tap on(部署代理)→kubectl tap list(查看状态)→kubectl tap off(清理还原)
  • mitmproxy sidecar + port-forward 的组合,做到无侵入、秒级清理、零 CNI 配置

有了它,“看不见的内网流量、调不动的微服务”,一条命令就能看得明明白白 👀

【免费下载链接】kubetapKubectl plugin to interactively proxy Kubernetes Services with ease项目地址: https://gitcode.com/gh_mirrors/ku/kubetap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 9:15:50

数学建模竞赛:从问题识别到模型适配的3小时实战路径

1. 从“造轮子”到“找轮子”&#xff1a;数学建模竞赛的思维跃迁如果你参加过数学建模竞赛&#xff0c;或者正准备参加&#xff0c;大概率经历过这样的场景&#xff1a;拿到赛题后&#xff0c;团队立刻陷入激烈的头脑风暴&#xff0c;试图从零开始构建一个“完美”的模型。大家…

作者头像 李华
网站建设 2026/8/24 9:03:47

N_m3u8DL-RE · 流媒体下载:加密下载与直播录制的完整实战指南

N_m3u8DL-RE 流媒体下载&#xff1a;加密下载与直播录制的完整实战指南 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL…

作者头像 李华