# Kubectl installieren und konfigurieren auf macOS

LLMS index: [llms.txt](/llms.txt)

---

## 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.36 kann mit folgenden Versionen kommunizieren v1.35, v1.36, und v1.37.
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:

- [Bevor Sie beginnen](#-heading-prerequisites-)
- [Kubectl auf macOS installieren](#kubectl-auf-macos-installieren)
  - [Kubectl Binary mit curl auf macOS installieren](#kubectl-binary-mit-curl-auf-macos-installieren)
  - [Mit Homebrew auf macOS installieren](#mit-homebrew-auf-macos-installieren)
  - [Mit Macports auf macOS installieren](#mit-macports-auf-macos-installieren)
- [Kubectl Konfiguration verifizieren](#kubectl-konfiguration-verifizieren)
- [Optionale kubectl Konfigurationen und Plugins](#optionale-kubectl-konfigurationen-und-plugins)
  - [Shell Autovervollständigung einbinden](#shell-autovervollständigung-einbinden)
  - [`kubectl-convert` Plugin installieren](#kubectl-convert-plugin-installieren)
- [Nächste Schritte](#-heading-whatsnext-)

### Kubectl Binary mit curl auf macOS installieren

1. Das aktuellste Release downloaden:

   <ul class="nav nav-tabs" id="tabs-download-binary-macos" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-download-binary-macos-0" role="tab" aria-controls="tabs-download-binary-macos-0" aria-selected="true">Intel</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-download-binary-macos-1" role="tab" aria-controls="tabs-download-binary-macos-1">Apple Silicon</a></li></ul>

<div class="tab-content" id="tabs-download-binary-macos-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-download-binary-macos-0" role="tabpanel" aria-labelledby="tabs-download-binary-macos-0-tab" tabindex="download-binary-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/amd64/kubectl&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-download-binary-macos-1" role="tabpanel" aria-labelledby="tabs-download-binary-macos-1-tab" tabindex="download-binary-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/arm64/kubectl&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div></div>


   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4><p>Um eine spezifische Version herunterzuladen, ersetze <code>$(curl -L -s https://dl.k8s.io/release/stable.txt)</code> mit der spezifischen Version</p>
<p>Um zum Beispiel Version 1.36.0 auf Intel macOS herunterzuladen:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -LO <span class="s2">&#34;https://dl.k8s.io/release/v1.36.0/bin/darwin/amd64/kubectl&#34;</span>
</span></span></code></pre></div><p>Für macOS auf Apple Silicon (z.B. M1/M2):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -LO <span class="s2">&#34;https://dl.k8s.io/release/v1.36.0/bin/darwin/arm64/kubectl&#34;</span>
</span></span></code></pre></div></div>


2. Binary validieren (optional)

   Download der kubectl Checksum-Datei:

   <ul class="nav nav-tabs" id="tabs-download-checksum-macos" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-download-checksum-macos-0" role="tab" aria-controls="tabs-download-checksum-macos-0" aria-selected="true">Intel</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-download-checksum-macos-1" role="tab" aria-controls="tabs-download-checksum-macos-1">Apple Silicon</a></li></ul>

<div class="tab-content" id="tabs-download-checksum-macos-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-download-checksum-macos-0" role="tabpanel" aria-labelledby="tabs-download-checksum-macos-0-tab" tabindex="download-checksum-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/amd64/kubectl.sha256&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-download-checksum-macos-1" role="tabpanel" aria-labelledby="tabs-download-checksum-macos-1-tab" tabindex="download-checksum-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/arm64/kubectl.sha256&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div></div>

  
   Kubectl Binary mit der Checksum-Datei validieren:

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

   Wenn Valide, dann sieht die Ausgabe wie folgt aus:

   ```console
   kubectl: OK
   ```

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

   ```bash
   kubectl: FAILED
   shasum: WARNING: 1 computed checksum did NOT match
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4>Lade von der kubectl Binary und Checksum-Datei immer die selben Versionen herunter.</div>


3. Kubectl Binary ausführbar machen.

   ```bash
   chmod +x ./kubectl
   ```

4. Kubectl Binary zu einem Ordner in Ihrem `PATH` verschieben.

   ```bash
   sudo mv ./kubectl /usr/local/bin/kubectl
   sudo chown root: /usr/local/bin/kubectl
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4>Stelle sicher, dass <code>/usr/local/bin</code> in deiner PATH Umgebungsvariable gesetzt ist.</div>


5. Prüfen ob die installierte Version die aktuellste Version ist:

   ```bash
   kubectl version --client
   ```
   
   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4><p>Der oben stehende Befehl wirft folgende Warnung:</p>
<pre tabindex="0"><code>WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.
</code></pre><p>Diese Warnung kann ignoriert werden. Prüfe lediglich die <code>kubectl</code> Version, welche installiert wurde.</p>
</div>

   
   Oder benutzte diesen Befehl für eine detailliertere Ansicht:

   ```cmd
   kubectl version --client --output=yaml
   ```

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

   ```bash
   rm kubectl kubectl.sha256
   ```

### Mit Homebrew auf macOS installieren

Wenn macOS und [Homebrew](https://brew.sh/) als Paketmanager benutzt wird,
kann kubectl über diesen installiert werden.

1. Führe den Installationsbefehl aus:

   ```bash
   brew install kubectl
   ```

   oder

   ```bash
   brew install kubernetes-cli
   ```

2. Prüfen ob die installierte Version die aktuellste Version ist:

   ```bash
   kubectl version --client
   ```

### Mit Macports auf macOS installieren

Wenn macOS und  [Macports](https://macports.org/) als Paketmanager benutzt wird, kann kubectl über diesen installiert werden.

1. Führe den Installationsbefehl aus:

   ```bash
   sudo port selfupdate
   sudo port install kubectl
   ```

2. Prüfen ob die installierte Version die aktuellste Version ist:

   ```bash
   kubectl version --client
   ```

## Kubectl Konfiguration verifizieren


	<p>Um mithilfe von kubectl ein Cluster zu finden und darauf zuzugreifen benötigt es eine
<a href="/docs/concepts/configuration/organize-cluster-access-kubeconfig/">kubeconfig Datei</a>,
welche automatisch angelegt wird, wenn ein Cluster mit Hilfe der
<a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh">kube-up.sh</a>
oder erfolgreich ein Cluster mit Minicube erstellt wurde.
Standardmäßig liegt die kubectl Konfigurationsdatei unter folgendem Pfad <code>~/.kube/config</code>.</p>
<p>Um zu überprüfen ob kubectl korrekt konfiguriert ist, kann der Cluster-Status abgefragt werden:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info
</span></span></code></pre></div><p>Wenn als Antwort eine URL ausgegeben wird, ist kubectl korrekt konfiguriert und kann auf das Cluster zugreifen.</p>
<p>Falls eine Nachricht ähnlich wie die Folgende zu sehen ist, ist kubectl nicht korrekt konfiguriert oder nicht in der Lage das Cluster zu erreichen.</p>
<pre tabindex="0"><code>The connection to the server &lt;server-name:port&gt; was refused - did you specify the right host or port?
</code></pre><p>Wenn zum Beispiel versucht wird ein Kubernetes Cluster lokal auf dem Laptop zu starten, muss ein Tool wie zum Beispiel <a href="https://minikube.sigs.k8s.io/docs/start/">Minikube</a> zuerst installiert werden. Danach können die oben erwähnten Befehle erneut ausgeführt werden.</p>
<p>Falls <code>kubectl cluster-info</code> eine URL zurück gibt, aber nicht auf das Cluster zugreifen kann, prüfe ob kubectl korrekt konfiguriert wurde:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info dump
</span></span></code></pre></div>

## 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.

<ul class="nav nav-tabs" id="tabs-kubectl-autocompletion" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-kubectl-autocompletion-0" role="tab" aria-controls="tabs-kubectl-autocompletion-0" aria-selected="true">Fish</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-autocompletion-1" role="tab" aria-controls="tabs-kubectl-autocompletion-1">Zsh</a></li></ul>

<div class="tab-content" id="tabs-kubectl-autocompletion-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-kubectl-autocompletion-0" role="tabpanel" aria-labelledby="tabs-kubectl-autocompletion-0-tab" tabindex="kubectl-autocompletion">
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4>Autovervollständigung für Fish benötigt kubectl 1.23 oder neuer.</div>

<p>Das kubectl Autovervollständigungsskript für Fish kann mit folgendem Befehl <code>kubectl completion fish</code> generiert werden. Mit dem Befehl <code>kubectl completion fish | source</code> wird die Autovervollständigung in der aktuellen Sitzung aktiviert.</p>
<p>Um die Autovervollständigung in allen Sitzungen einzurichten, muss folgender Befehl in die <code>~/.config/fish/config.fish</code> Datei eingetragen werden:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl completion fish <span class="p">|</span> <span class="nb">source</span>
</span></span></code></pre></div><p>Nach dem Neuladen der Shell, sollte die kubectl Autovervollständigung funktionieren.</p>
</div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-autocompletion-1" role="tabpanel" aria-labelledby="tabs-kubectl-autocompletion-1-tab" tabindex="kubectl-autocompletion"><p>Das kubectl Autovervollständigungsskript für Zsh kann mit folgendem Befehl <code>kubectl completion zsh</code> generiert werden. Mit dem Befehl <code>kubectl completion zsh | source</code> wird die Autovervollständigung in der aktuellen Sitzung aktiviert.</p>
<p>Um die Autovervollständigung in allen Sitzungen einzurichten, muss folgender Befehl in die <code>~/.zshrc</code> Datei eingetragen werden:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zsh" data-lang="zsh"><span class="line"><span class="cl"><span class="nb">source</span> &lt;<span class="o">(</span>kubectl completion zsh<span class="o">)</span>
</span></span></code></pre></div><p>Falls ein Alias für kubectl eingerichtet wurde, funktioniert die kubectl Autovervollständung automatisch.</p>
<p>Nach dem Neuladen der Shell, sollte die kubectl Autovervollständigung funktionieren.</p>
<p>Sollte ein Fehler auftreten wie dieser: <code>2: command not found: compdef</code>, muss bitte folgendes am Anfang der <code>~/.zshrc</code> Datei eingefügt werden:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-zsh" data-lang="zsh"><span class="line"><span class="cl">autoload -Uz compinit
</span></span><span class="line"><span class="cl">compinit
</span></span></code></pre></div></div></div>


### `kubectl-convert` Plugin installieren


	<p>Ein Plugin für das Kubernetes Kommandozeilentool <code>kubectl</code>, 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: <a href="/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis">zu nicht veralteten APIs migrieren</a></p>


1. Neueste Version des Kommandozeilenbefehls herunterladen:

   <ul class="nav nav-tabs" id="tabs-download-convert-binary-macos" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-download-convert-binary-macos-0" role="tab" aria-controls="tabs-download-convert-binary-macos-0" aria-selected="true">Intel</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-download-convert-binary-macos-1" role="tab" aria-controls="tabs-download-convert-binary-macos-1">Apple Silicon</a></li></ul>

<div class="tab-content" id="tabs-download-convert-binary-macos-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-download-convert-binary-macos-0" role="tabpanel" aria-labelledby="tabs-download-convert-binary-macos-0-tab" tabindex="download-convert-binary-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/amd64/kubectl-convert&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-download-convert-binary-macos-1" role="tabpanel" aria-labelledby="tabs-download-convert-binary-macos-1-tab" tabindex="download-convert-binary-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/arm64/kubectl-convert&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div></div>


2. Binär-Datei validieren (optional)

   Download der kubectl-convert Checksum-Datei:

   <ul class="nav nav-tabs" id="tabs-download-convert-checksum-macos" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-download-convert-checksum-macos-0" role="tab" aria-controls="tabs-download-convert-checksum-macos-0" aria-selected="true">Intel</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-download-convert-checksum-macos-1" role="tab" aria-controls="tabs-download-convert-checksum-macos-1">Apple Silicon</a></li></ul>

<div class="tab-content" id="tabs-download-convert-checksum-macos-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-download-convert-checksum-macos-0" role="tabpanel" aria-labelledby="tabs-download-convert-checksum-macos-0-tab" tabindex="download-convert-checksum-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/amd64/kubectl-convert.sha256&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-download-convert-checksum-macos-1" role="tabpanel" aria-labelledby="tabs-download-convert-checksum-macos-1-tab" tabindex="download-convert-checksum-macos"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">   curl -LO <span class="s2">&#34;https://dl.k8s.io/release/</span><span class="k">$(</span>curl -L -s https://dl.k8s.io/release/stable.txt<span class="k">)</span><span class="s2">/bin/darwin/arm64/kubectl-convert.sha256&#34;</span>
</span></span><span class="line"><span class="cl">   </span></span></code></pre></div></div></div>


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

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

   Wenn Valide, dann sieht die Ausgabe wie folgt aus:

   ```console
   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:

   ```bash
   kubectl-convert: FAILED
   shasum: WARNING: 1 computed checksum did NOT match
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4><pre><code>  Lade von der kubectl Binary und Checksum-Datei immer die selben Versionen herunter.
</code></pre>
</div>


3. Kubectl-convert Binary ausführbar machen

   ```bash
   chmod +x ./kubectl-convert
   ```

4. Kubectl-convert Binary zu einem Ordner in `PATH` Umgebungsvariable verschieben.

   ```bash
   sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
   sudo chown root: /usr/local/bin/kubectl-convert
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">Hinweis:</h4><pre><code>Stelle sicher, dass `/usr/local/bin` in der PATH Umgebungsvariable gesetzt ist.
</code></pre>
</div>


5. Verifizieren, dass das Pluign erfolgreich installiert wurde:

   ```shell
   kubectl convert --help
   ```

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

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

   ```bash
   rm kubectl-convert kubectl-convert.sha256
   ```

## Nächste Schritte


	<ul>
<li><a href="https://minikube.sigs.k8s.io/docs/start/">Minikube installieren</a></li>
<li><a href="/de/docs/setup/">Installations Guides</a> ansehen um mehr über die Clustererstellung zu erfahren.</li>
<li><a href="/docs/tasks/access-application-cluster/service-access-application-cluster/">Lernen wie man Applikationen startet und erreichbar macht.</a></li>
<li>Falls Zugriff auf ein Cluster benötigt wird, welches nicht von einem selbst erstellt wurde, könnte
<a href="/docs/tasks/access-application-cluster/configure-access-multiple-clusters/">Clusterzugang teilen</a> interessant sein.</li>
<li>Lies die <a href="/docs/reference/kubectl/kubectl/">kubectl Referenzdokumentation</a></li>
</ul>
