Kubectl installieren und konfigurieren auf macOS

Bevor Sie beginnen

Um kubectl zu verwenden darf die kubectl-Version nicht mehr als eine Minor-Version Unterschied zu deinem Cluster aufweisen. Zum Beispiel: eine Client-Version v1.31 kann mit folgenden Versionen kommunizieren v1.30, v1.31, und v1.32. Die Verwendung der neuesten kompatiblen Version von kubectl hilft, unvorhergesehene Probleme zu vermeiden.

Kubectl auf macOS installieren

Um kubectl auf macOS zu installieren, gibt es die folgenden Möglichkeiten:

Kubectl Binary mit curl auf macOS installieren

  1. Das aktuellste Release downloaden:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
       
  2. 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/darwin/amd64/kubectl.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
       

    Kubectl Binary mit der Checksum-Datei validieren:

    echo "$(cat kubectl.sha256)  kubectl" | shasum -a 256 --check
    

    Wenn Valide, dann sieht die Ausgabe wie folgt aus:

    kubectl: OK
    

    Falls die Validierung fehlschlägt, beendet sich shasum mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte:

    kubectl: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. Kubectl Binary ausführbar machen.

    chmod +x ./kubectl
    
  4. Kubectl Binary zu einem Ordner in Ihrem PATH verschieben.

    sudo mv ./kubectl /usr/local/bin/kubectl
    sudo chown root: /usr/local/bin/kubectl
    
  5. Prüfen ob die installierte Version die aktuellste Version ist:

    kubectl version --client
    

    Oder benutzte diesen Befehl für eine detailliertere Ansicht:

    kubectl version --client --output=yaml
    
  6. Nach Installation des Plugins, die Installationsdateien aufräumen:

    rm kubectl kubectl.sha256
    

Mit Homebrew auf macOS installieren

Wenn macOS und Homebrew als Paketmanager benutzt wird, kann kubectl über diesen installiert werden.

  1. Führe den Installationsbefehl aus:

    brew install kubectl
    

    oder

    brew install kubernetes-cli
    
  2. Prüfen ob die installierte Version die aktuellste Version ist:

    kubectl version --client
    

Mit Macports auf macOS installieren

Wenn macOS und Macports als Paketmanager benutzt wird, kann kubectl über diesen installiert werden.

  1. Führe den Installationsbefehl aus:

    sudo port selfupdate
    sudo port install kubectl
    
  2. Prüfen ob die installierte Version die aktuellste Version ist:

    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 Kommandozeilenbefehle beschleunigt werden können.

Untenstehend ist beschrieben, wie die Autovervollständigungen für Fish und Zsh eingebunden werden.

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

  1. Neueste Version des Kommandozeilenbefehls herunterladen:

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
       
  2. 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/darwin/amd64/kubectl-convert.sha256"
       

    
       curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
       

    Validierung der kubectl-convert Binary mit der Checksum-Datei:

    echo "$(cat kubectl-convert.sha256)  kubectl-convert" | shasum -a 256 --check
    

    Wenn Valide, dann sieht die Ausgabe wie folgt aus:

    kubectl-convert: OK
    

    Falls die Validierung fehlschlägt, beendet sich shasum mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte:

    kubectl-convert: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    
  3. Kubectl-convert Binary ausführbar machen

    chmod +x ./kubectl-convert
    
  4. Kubectl-convert Binary zu einem Ordner in PATH Umgebungsvariable verschieben.

    sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
    sudo chown root: /usr/local/bin/kubectl-convert
    
  5. Verifizieren, dass das Pluign erfolgreich installiert wurde:

    kubectl convert --help
    

    Wenn kein Fehler ausgegeben wird, ist das Plugin erfolgreich installiert worden.

  6. Nach Installation des Plugins, die Installationsdateien aufräumen:

    rm kubectl-convert kubectl-convert.sha256
    

Nächste Schritte

Zuletzt geändert June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)