kc – Ein curl für den Kubernetes Cluster

Wer kennt das nicht, schnell ein POD gestartet um die Verbindung zu einem Service/Deployment zu prüfen. Auch wenn es schnell geht, dann geht es noch schneller!

Hier nun ein Tipp, um das Testen im Cluster zu beschleunigen.

kc – Eine Bash Funktion

Um das Problem zu lösen kann man eine Bash Funktion definieren, die dann die Arbeit übernimmt. Die Funktion kc erwartet eine URL und optional einen Namespace (sofern dieser nicht im Kontext bereits gesetzt ist). Der Name kc ist aus kubectl und curl abgeleitet.

Der Aufruf ist also denkbar einfach:

kc web nginx:80/

ruft den Service nginx im Namespace web auf dem Port 80 auf. Die Funktion kc verwendet hier einen Timeout von 5 Sekunden, um die Webseite per curl abzurufen. Diese kann aber nach belieben angepasst werden.

Das kc Skript

Damit die Funktion in der Bash bereitsteht, sollte sie am besten in der ~/.bashrc definiert werden. Fügen Sie folgende Funktion ein:

#
# curl into Kubernetes cluster
#
kc() {
  case "$#" in
  "2")
     kubectl run temp --image=nginx:alpine --restart=Never --rm -i --namespace="$1" -- curl -s -m 5 "$2"
    ;;
  "1")
     kubectl run temp --image=nginx:alpine --restart=Never --rm -i -- curl -s -m 5 "$1"
    ;;
  "0")
    echo "Synopsis: kc [namespace] url"
    echo "if no namespace is given the current namespace is used"
    echo "url consists service name colon port of service"
    echo "e.g.: kc web nginx:80/"
  esac
}