Zum Inhalt

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:

ARCH="arm64"
if [ $(uname -m) = "x86_64" ]; then
    ARCH="amd64"
fi
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/${ARCH}/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
ARCH="arm64"
if [ $(uname -m) = "x86_64" ]; then
    ARCH="amd64"
fi
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/${ARCH}/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl
curl.exe -LO "https://dl.k8s.io/release/v1.35.2/bin/windows/amd64/kubectl.exe"
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
snap install kubectl --classic
brew install kubectl
sudo port selfupdate
sudo port install kubectl
choco install kubernetes-cli
scoop install kubectl
winget install -e --id Kubernetes.kubectl

Überprüfung der Installation

Die erfolgreiche Installation der kubectl CLIs kann mit folgendem Befehl geprüft werden:

kubectl version --client

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.

Download der kubeconfig aus MyNWS

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

Downloadoptionen für NWS-ID oder Adminkontext

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.

KUBECONFIG=/tmp/nws-kubeconfig.yaml kubectl cluster-info

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