Kubectl installieren und konfigurieren auf Linux
Bevor Sie beginnen
Um kubectl zu verwenden darf die kubectl-Version nicht mehr als eine Minor-Version Unterschied zu dem Cluster aufweisen. Zum Beispiel: eine Client-Version v1.34 kann mit folgenden Versionen kommunizieren v1.33, v1.34, und v1.35. Die Verwendung der neuesten kompatiblen Version von kubectl hilft, unvorhergesehene Probleme zu vermeiden.
Kubectl auf Linux installieren
Um kubectl auf Linux zu installieren, gibt es die folgenden Möglichkeiten:
- Bevor Sie beginnen
- Kubectl auf Linux installieren
- Kubectl Konfiguration verifizieren
- Optionale kubectl Konfigurationen und Plugins
- Nächste Schritte
Kubectl Binary mit curl auf Linux installieren
-
Das aktuellste Release downloaden:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"Hinweis:
Um eine spezifische Version herunterzuladen, ersetze
$(curl -L -s https://dl.k8s.io/release/stable.txt)mit der spezifischen Version.Um zum Beispiel Version 1.34.0 auf Linux herunterzuladen:
curl -LO https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl -
Binary validieren (optional)
Download der kubectl Checksum-Datei:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"Kubectl Binary mit der Checksum-Datei validieren:
echo "$(cat kubectl.sha256) kubectl" | sha256sum --checkWenn Valide, dann sieht die Ausgabe wie folgt aus:
kubectl: OKFalls die Validierung fehlschlägt, beendet sich
sha256mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte:kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT matchHinweis:
Lade von der kubectl Binary und Checksum-Datei immer die selben Versionen herunter. -
kubectl installieren
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlHinweis:
Wenn kein root Zugriff auf das Zielsystem möglich ist, kann kubectl in das Verzeichnis
~/.local/bininstalliert werden:chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # und ~/.local/bin zur Umgebungsvariable $PATH hinzufügen -
Prüfen ob die installierte Version die aktuellste Version ist:
kubectl version --clientHinweis:
Der oben stehende Befehl wirft folgende Warnung:
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.Diese Warnung kann ignoriert werden. Prüfe lediglich die
kubectlVersion, welche installiert wurde.Oder benutzte diesen Befehl für eine detailliertere Ansicht:
kubectl version --client --output=yaml
Installieren mit Hilfe des Linux eigenen Paketmanagers
-
Update des
aptPaketindex und Installation der benötigten Pakete um das KubernetesaptRepository zu nutzen:sudo apt-get update sudo apt-get install -y ca-certificates curl gnupgFalls Debian 9 (stretch) oder älter genutzt wird, müssen zusätzlich das Paket
apt-transport-httpsinstalliert werden:sudo apt-get install -y apt-transport-https -
Den öffentlichen Signaturschlüssel für die Kubernetes Repositories herunterladen:
# Falls der Ordner `/etc/apt/keyrings` nicht existiert, sollte er vor dem curl Kommando erstellt werden, siehe folgende Zeile # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # nicht privilegierten APT Applikationen den Lesezugriff auf diesen Keyring erlauben -
Kubernetes
aptRepository hinzufügen:echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # dies hilft tools wie command-not-found korrekt zu funktionieren -
Den
aptPaketindex mit dem neuen Repository updaten und kubectl installieren:sudo apt-get update sudo apt-get install -y kubectl
Hinweis:
In Releases älter als Debian 12 und Ubuntu 22.04, existiert/etc/apt/keyrings nicht per default.
Falls es benötigt wird, kann es angelegt werden. Hierzu sollte es danach von jedermann lesbar, aber nur von Admins schreibar gemacht werden.-
Hinzufügen des Kubernetes
yumRepository. Wenn eine andere Kubernetes Version als v1.34 installiert werden soll, muss v1.34 im unteren Block durch die gewünschte Version ersetzt werden.# Bestehende Inhalte in /etc/yum.repos.d/kubernetes.repo werden überschrieben cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/repodata/repomd.xml.key EOF
Hinweis:
Wenn eine andere minor Version von kubectl installiert werden soll muss/etc/yum.repos.d/kubernetes.repo angepasst werden
bevor yum install ausgeführt wird. Eine genauere Beschreibung findet sich hier
Wechseln des Kubernetes Package Repository.-
Installieren von kubectl mit Hilfe von
yum:sudo yum install -y kubectl
-
Hinzufügen des Kubernetes
zypperRepository. Wenn eine andere Kubernetes Version als v1.34 installiert werden soll, muss v1.34 im unteren Block durch die gewünschte Version ersetzt werden.# Bestehende Inhalte in /etc/zypp/repos.d/kubernetes.repo werden überschrieben cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/repodata/repomd.xml.key EOF
Hinweis:
Wenn eine andere minor Version von kubectl installiert werden soll muss/etc/zypp/repos.d/kubernetes.repo angepasst werden
bevor zypper update ausgeführt wird. Eine genauere Beschreibung findet sich hier
Wechseln des Kubernetes Package Repository.-
Install kubectl using
zypper:sudo zypper install -y kubectl
Installation mit anderen Paketmanagern
Falls Ubuntu oder andere Linux Distributionen verwendet wird, und diese den snap Paketmanager unterstützen, kann kubectl als snap Anwendung installiert werden.
snap install kubectl --classic
kubectl version --client
Falls in Linux Homebrew als Paketmanager genutzt wird, kann kubectl über diesen installiert werden.
brew install kubectl
kubectl version --client
Kubectl Konfiguration verifizieren
Um mithilfe von kubectl ein Cluster zu finden und darauf zuzugreifen benötigt es eine
kubeconfig Datei,
welche automatisch angelegt wird, wenn ein Cluster mit Hilfe der
kube-up.sh
oder erfolgreich ein Cluster mit Minicube erstellt wurde.
Standardmäßig liegt die kubectl Konfigurationsdatei unter folgendem Pfad ~/.kube/config.
Um zu überprüfen ob kubectl korrekt konfiguriert ist, kann der Cluster-Status abgefragt werden:
kubectl cluster-info
Wenn als Antwort eine URL ausgegeben wird, ist kubectl korrekt konfiguriert und kann auf das Cluster zugreifen.
Falls eine Nachricht ähnlich wie die Folgende zu sehen ist, ist kubectl nicht korrekt konfiguriert oder nicht in der Lage das Cluster zu erreichen.
The connection to the server <server-name:port> was refused - did you specify the right host or port?
Wenn zum Beispiel versucht wird ein Kubernetes Cluster lokal auf dem Laptop zu starten, muss ein Tool wie zum Beispiel Minikube zuerst installiert werden. Danach können die oben erwähnten Befehle erneut ausgeführt werden.
Falls kubectl cluster-info eine URL zurück gibt, aber nicht auf das Cluster zugreifen kann, prüfe ob kubectl korrekt konfiguriert wurde:
kubectl cluster-info dump
Optionale kubectl Konfigurationen und Plugins
Shell Autovervollständigung einbinden
kubectl stellt Autovervollständigungen für Bash, Zsh, Fish und Powershell zur Verfügung, mit welchem sich Kommandozeilen Befehle beschleunigen lassen.
Untenstehend ist beschrieben, wie die Autovervollständigungen für Fish und Zsh eingebunden werden.
Hinweis:
Autovervollständigung für Fish benötigt kubectl 1.23 oder neuer.Das kubectl Autovervollständigungsskript für Fish kann mit folgendem Befehl kubectl completion fish generiert werden. Mit dem Befehl kubectl completion fish | source wird die Autovervollständigung in der aktuellen Sitzung aktiviert.
Um die Autovervollständigung in allen Sitzungen einzurichten, muss folgender Befehl in die ~/.config/fish/config.fish Datei eingetragen werden:
kubectl completion fish | source
Nach dem Neuladen der Shell, sollte die kubectl Autovervollständigung funktionieren.
Das kubectl Autovervollständigungsskript für Zsh kann mit folgendem Befehl kubectl completion zsh generiert werden. Mit dem Befehl kubectl completion zsh | source wird die Autovervollständigung in der aktuellen Sitzung aktiviert.
Um die Autovervollständigung in allen Sitzungen einzurichten, muss folgender Befehl in die ~/.zshrc Datei eingetragen werden:
source <(kubectl completion zsh)
Falls ein Alias für kubectl eingerichtet wurde, funktioniert die kubectl Autovervollständung automatisch.
Nach dem Neuladen der Shell, sollte die kubectl Autovervollständigung funktionieren.
Sollte ein Fehler auftreten wie dieser: 2: command not found: compdef, muss bitte folgendes am Anfang der ~/.zshrc Datei eingefügt werden:
autoload -Uz compinit
compinit
kubectl-convert Plugin installieren
Ein Plugin für das Kubernetes Kommandozeilentool kubectl, welches es ermöglicht Manifeste von einer Version der
Kubernetes API zu einer anderen zu konvertieren. Kann zum Beispiel hilfreich sein, Manifeste zu einer nicht als veraltet (deprecated)
markierten API Version mit einem neuerem Kubernetes Release zu migrieren.
Weitere Infos finden Sich unter: zu nicht veralteten APIs migrieren
-
Neueste Version des Kommandozeilenbefehls herunterladen:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert" -
Binär-Datei validieren (optional)
Download der kubectl-convert Checksum-Datei:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"Kubectl-convert Binary mit der Checksum-Datei validieren:
echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --checkWenn Valide, dann sieht die Ausgabe wie folgt aus:
kubectl-convert: OKFalls die Validierung fehlschlägt, beendet sich
sha256mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte:kubectl-convert: FAILED sha256sum: WARNING: 1 computed checksum did NOT matchHinweis:
Lade von der kubectl Binary und Checksum-Datei immer die selben Versionen herunter. -
kubectl-convert installieren
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert -
Verifizieren, dass das Pluign erfolgreich installiert wurde:
kubectl convert --help
Wenn kein Fehler ausgegeben wird, ist das Plugin erfolgreich installiert worden.
-
Nach Installation des Plugins, die Installationsdateien aufräumen:
rm kubectl-convert kubectl-convert.sha256
Nächste Schritte
- Minikube installieren
- Installations Guides ansehen um mehr über die Clustererstellung zu erfahren.
- Lernen wie man Applikationen startet und erreichbar macht.
- Falls Zugriff auf ein Cluster benötigt wird, welches nicht von einem selbst erstellt wurde, könnte Clusterzugang teilen interessant sein.
- Lies die kubectl Referenzdokumentation