The purpose of kpoof is to provide an opinionated port-forwarder into a kubernetes container. Traditionally, if one wanted to port-forward into a kubernetes container, one had to kubectl get pods --namespace foo
, visually identify the pod of interest, copy that pod to the buffer, and then kubectl --namespace foo port-forward <paste_buffer> <local-port>:<remote-port>
to port-forward into the pod. This simple utility aims to provide a namespace-specific pod selector for quick port-forwarding. The default behavior of kpoof is to port-forward all exposed ports. Because *nix denies binding to ports below 1024, kpoof assigns a port of n
+50000, where n
is a sub-1024 port.
kpoof(1)
NAME
kpoof - Quick k8s pod port-forward utility.
REQUIRES
kubectl(1)
SYNOPSIS
kpoof [OPTIONS]
DESCRIPTION
${SCRIPT} is a quick kubernetes (k8s) utility to port-forward a pod to localhost (127.0.0.1). ${SCRIPT} prompts for:
- <NAMESPACE> (defaults to current ns. See kubens(1))
- <POD> (defaults to "1")
ENTER to use defaults.
OPTIONS
-h, --help
Show this help message
-d, --daemon
Run kpoof as a daemon
-k, --killd
Kills a kpoof command daemon, if running
-a, --killd-all
Kills all running kpoof command daemons defined in $HOME/.kpoof/kpoofd
SEE ALSO
kubectx(1), kubens(1), kex(1)
$ kpoof
Namespace? (default qux):
1 qux
2 quux
3 quuz
4 corge
5 grault
6 garply
7 waldo
8 fred
9 plugh
10 xyzzy
11 thud
4
Pod number? (default 1):
1 foo-drupal
2 bar-mariadb
3 baz-alpine
2
Forwarding from 127.0.0.1:3306 -> 3306
For macOS:
Use the Homebrew package manager:
brew tap farmotive/k8s
brew install kpoof
NOTE: If using gcloud sdk to manage the installation and versioning of kubectl
, install with the --without-kubernetes-cli
flag to omit the brew dependency:
brew install kpoof --without-kubernetes-cli
See farmotive homebrew k8s install section for more options.
Other platforms:
- Download the
kpoof
script - Add it somewhere in your PATH
- Make it executable (
chmod +x
)
Disclaimer: This is not an official Google product.
Thanks to ahmetb for the inspiration!