All Projects → soluble-ai → Kubetap

soluble-ai / Kubetap

Licence: apache-2.0
Kubectl plugin to interactively proxy Kubernetes Services with ease

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kubetap

Dev Sidecar
开发者边车,github打不开,github加速,git clone加速,git release下载加速,stackoverflow加速
Stars: ✭ 163 (-45.12%)
Mutual labels:  proxy, mitmproxy
Mastermind
Man in the middle testing
Stars: ✭ 341 (+14.81%)
Mutual labels:  proxy, mitmproxy
Gomitmproxy
gomitmproxy是想用golang语言实现[mitmproxy],实现http(s)代理
Stars: ✭ 337 (+13.47%)
Mutual labels:  proxy, mitmproxy
Secret Agent
The web browser that's built for scraping.
Stars: ✭ 151 (-49.16%)
Mutual labels:  proxy, mitmproxy
Proxy.py
⚡⚡⚡Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging
Stars: ✭ 1,291 (+334.68%)
Mutual labels:  proxy, mitmproxy
Gsnova
Private proxy solution & network troubleshooting tool.
Stars: ✭ 509 (+71.38%)
Mutual labels:  proxy, mitmproxy
Ssh Mitm
ssh mitm server for security audits supporting public key authentication, session hijacking and file manipulation
Stars: ✭ 335 (+12.79%)
Mutual labels:  proxy, mitmproxy
Proxify
Swiss Army knife Proxy tool for HTTP/HTTPS traffic capture, manipulation, and replay on the go.
Stars: ✭ 1,153 (+288.22%)
Mutual labels:  proxy, mitmproxy
Mitm Scripts
🔄 A collection of mitmproxy inline scripts
Stars: ✭ 109 (-63.3%)
Mutual labels:  proxy, mitmproxy
Kubefwd
Bulk port forwarding Kubernetes services for local development.
Stars: ✭ 2,713 (+813.47%)
Mutual labels:  proxy, kubectl
Infini Gateway
INFINI-GATEWAY(极限网关), a high performance and lightweight gateway written in golang, for elasticsearch and his friends.
Stars: ✭ 272 (-8.42%)
Mutual labels:  proxy
Radioactive State
☢ Make Your React App Truly Reactive!
Stars: ✭ 273 (-8.08%)
Mutual labels:  proxy
Mosn
The Cloud-Native Network Proxy Platform.
Stars: ✭ 3,451 (+1061.95%)
Mutual labels:  proxy
Company Crawler
天眼查爬虫&企查查爬虫,指定关键字爬取公司信息
Stars: ✭ 285 (-4.04%)
Mutual labels:  proxy
Pushpin
Proxy server for adding push to your API
Stars: ✭ 3,050 (+926.94%)
Mutual labels:  proxy
Scrapy Crawlera
Crawlera middleware for Scrapy
Stars: ✭ 281 (-5.39%)
Mutual labels:  proxy
Proxyspider
代理IP 采集程序
Stars: ✭ 264 (-11.11%)
Mutual labels:  proxy
Manba
HTTP API Gateway
Stars: ✭ 3,000 (+910.1%)
Mutual labels:  proxy
Multiple Host
虚拟host解决方案,轻松实现两套host环境
Stars: ✭ 258 (-13.13%)
Mutual labels:  proxy
Lunnel
fast reverse-proxy
Stars: ✭ 293 (-1.35%)
Mutual labels:  proxy

Kubetap

Build status Latest release Go version License

What is Kubetap?

Kubetap is a kubectl plugin that enables an operator to easily deploy intercepting proxies for Kubernetes Services.

Here is a video presentation and demo of the project.

A short demo of using Kubetap to proxy Harbor is shown below:

kubetap-demo

Why Kubetap?

Kubetap arose from a need to quickly and efficiently proxy Kubernetes Services without imposing a CNI mandate.

It has always been possible to manually: add a sidecar to Deployment manifests, patch Service manifests, add a mitmweb Service, deploy, test, code push the bugfix, remove the sidecar from the Deployment, un-patch the Service, remove the mitmweb Service, deploy, and test again....

Or, if you own the app, could build and push some Printf debugging... then wait for CI... then track down the pod to get logs...

But both of those are long, laborious processes that are ripe for automation. Thus, Kubetap was born.

Documentation

The documentation website, https://soluble-ai.github.io/kubetap/, contains formatted documentation. The documentation site source is available in the docs folder, however an abridged documentation is provided below.

Installation

From Source

The recommended installation method is to clone the repository and run:

$ go generate

$ go install ./cmd/kubectl-tap

Homebrew

Soluble provides a homebrew formula repository.

brew tap soluble-ai/homebrew-kubetap

brew install kubetap

Binary Release

Binary releases for Mac (non-notarized), Windows, and Linux of varying architectures are available from the Releases page.

With Krew

Kubetap can be installed with krew:

kubectl krew install tap

Usage

Kubetap's binary is kubectl-tap. This makes kubetap a kubectl plugin, allowing it to be invoked as kubectl tap.

Kubetap inherits many configuration options from kubectl, such as: --context, --namespace (or -n), --as, etc.

Tap On

Deploy a MITMproxy container to tap the target Service, in the case of this example, the grafana Service's exposed port 443, which uses HTTPS. This uses the --browser flag (which implies --port-forward) to automatically open the proxy and target Service in a browser window.

$ kubectl tap on grafana -p443 --https --browser
Establishing port-forward tunnels to service...

Port-Forwards:

  mitmproxy - http://127.0.0.1:2244
  grafana - https://127.0.0.1:4000

Tap Off

Remove the tap from the grafana Service.

$ kubectl tap off grafana
Untapped Service "grafana"

List Active Taps

The namespaces can be constrained with -n, but by default it lists taps in all namespaces:

$ kubectl tap list
Tapped Namespace/Service:

default/grafana

In a container

It is possible to schedule kubetap as a Pod in Kubernetes using the grc.io/soluble-oss/kubectl-tap:latest container. When run in a cluster, kubetap will automatically detect and use serviceaccount tokens that are mounted to the container's filesystem.

Additionally, it is possible to run the containers from a developer laptop as follows:

docker run -v "${HOME}/.kube/:/.kube/:ro" 'gcr.io/soluble-oss/kubectl-tap:latest' on -p80 myservice
docker run -v "${HOME}/.kube/:.kube/:ro" 'gcr.io/soluble-oss/kubectl-tap:latest' off myservice

Made by Soluble.ai

This project was created to compliment the Soluble platform.

Building Kubetap is a blog post detailing the creation and implementation of kubetap.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].