Einrichtung von kubectl
kubectl ist die offizielle CLI des Kubernetes-Projekts.
Es ermöglicht vollumfängliche Interaktion mit bestehenden Kubernetes-Clustern
über deren API.
Im Kontext von NETWAYS Managed Kubernetes kann kubectl entweder mit einer
generischen Admin-Konfiguration oder im Kontext einer
NWS-ID verwendet werden.
Installation von kubectl
kubectl ist für alle gängigen Betriebssysteme verfügbar. Die Installation
kann entweder durch Paketmanager oder als Download der Binary erfolgen.
Installation als Binary
Das Kubernetes-Projekt bietet Releasebinaries für kubectl in mindestens
allen unterstützten Kubernetes-Versionen an:
PATH-Variable auf Windows
Im Anschluss der Installation auf Windows muss das
Downloadverzeichnis der kubectl Binary zur PATH-
Umgebungsvariable hinzugefügt werden.
Installation durch Paketmanager
Alternativ zum Download der Releasebinaries kann kubectl auf vielen gängigen
Betriebssystemen auch durch Paketmanager installiert werden:
version=$(curl -L -s https://dl.k8s.io/release/stable.txt)
version=${version%.*}
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL "https://pkgs.k8s.io/core:/stable:/$version/deb/Release.key" | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/$version/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
version=$(curl -L -s https://dl.k8s.io/release/stable.txt)
version=${version%.*}
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/$version/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/$version/rpm/repodata/repomd.xml.key
EOF
sudo dnf install -y kubectl
version=$(curl -L -s https://dl.k8s.io/release/stable.txt)
version=${version%.*}
cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/$version/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/$version/rpm/repodata/repomd.xml.key
EOF
sudo zypper update
# confirm key handling with 't' or 'a'
sudo zypper install -y kubectl
Überprüfung der Installation
Die erfolgreiche Installation der kubectl CLIs kann mit folgendem Befehl
geprüft werden:
Die momentan aktuellste Version ist v1.35.x
Konfiguration von kubectl
Im Anschluss an die Installation muss kubectl konfiguriert werden,
um mit den gewünschten Clustern zu interagieren.
Wie eingangs erwähnt, kann das entweder im Admin-Kontext oder im Kontext einer NWS-ID geschehen.
kubectl mit NWS-ID
Für die Einrichtung von kubectl mit der NWS-ID wird das Tool
kubelogin benötigt.
Die sogenannte Kubeconfig kann aus MyNWS heruntergeladen werden.
Hierfür navigiert man in MyNWS in die Cluster-Übersicht und wählt im Aktionsmenü des gewünschten Clusters Download Kubeconfig.

Es öffnet sich ein Popup mit Downloadoptionen für NWS-ID oder den Admin- Kontext.

Die gewünschte Option kann durch Auswahl des entsprechenden Reiters ausgewählt und mit Klick auf Kubeconfig heruntergeladen werden.
Konfiguration unter $HOME/.kube/config
Im Anschluss wird die Kubeconfig unter $HOME/.kube/config hinterlegt.
Dies ist das Standardverzeichnis, das kubectl auf der Suche nach einer
Konfiguration durchsucht.
Konfiguration mittels Umgebungsvariable $KUBECONFIG
Alternativ kann die zu verwendende Kubeconfig mittels der Umgebungsvariable
$KUBECONFIG gesetzt werden.
Dies ermöglicht das Arbeiten mit mehreren Konfigurationsdateien.
Konfiguration mehrerer Kubeconfigs
Arbeitet man häufig mit mehreren kubectl-Konfigurationen, bieten sich
Dritttools an.
kubie oder
kubectx ermöglichen beispielsweise
das Verwalten und Laden mehrerer voneinander unabhängiger
Konfigurationsdateien