|
| 1 | +--- |
| 2 | +title: Kubectl installieren und konfigurieren auf Linux |
| 3 | +content_type: task |
| 4 | +weight: 10 |
| 5 | +card: |
| 6 | + name: tasks |
| 7 | + weight: 20 |
| 8 | + title: Kubectl auf Linux installieren |
| 9 | +--- |
| 10 | + |
| 11 | +## {{% heading "prerequisites" %}} |
| 12 | + |
| 13 | +Sie müssen eine kubectl-Version verwenden, welche nicht mehr als eine Minor-Version Unterschied zu ihrem Cluster aufweist. Zum Beispiel: eine Client-Version v{{< skew currentVersion >}} kann mit folgenden Versionen kommunizieren v{{< skew currentVersionAddMinor -1 >}}, v{{< skew currentVersionAddMinor 0 >}}, und v{{< skew currentVersionAddMinor 1 >}}. |
| 14 | +Die Verwendung der neuesten kompatiblen Version von kubectl hilft, unvorhergesehene Probleme zu vermeiden. |
| 15 | + |
| 16 | +## Kubectl auf Linux installieren |
| 17 | + |
| 18 | +Um kubectl auf Linux zu installieren, gibt es die folgenden Möglichkeiten: |
| 19 | + |
| 20 | +- [{{% heading "prerequisites" %}}](#-heading-prerequisites-) |
| 21 | +- [Kubectl auf Linux installieren](#kubectl-auf-linux-installieren) |
| 22 | + - [Kubectl Binary mit curl auf Linux installieren](#kubectl-binary-mit-curl-auf-linux-installieren) |
| 23 | + - [Installieren mit Hilfe des Linux eigenen Paketmanagers](#installieren-mit-hilfe-des-linux-eigenen-paketmanagers) |
| 24 | + - [Installation mit anderen Paketmanagern](#installation-mit-anderen-paketmanagern) |
| 25 | +- [Kubectl Konfiguration verifizieren](#kubectl-konfiguration-verifizieren) |
| 26 | +- [Optionale kubectl Konfigurationen und Plugins](#optionale-kubectl-konfigurationen-und-plugins) |
| 27 | + - [Shell Autovervollständigung einbinden](#shell-autovervollständigung-einbinden) |
| 28 | + - [`kubectl-convert` Plugin installieren](#kubectl-convert-plugin-installieren) |
| 29 | +- [{{% heading "whatsnext" %}}](#-heading-whatsnext-) |
| 30 | + |
| 31 | +### Kubectl Binary mit curl auf Linux installieren |
| 32 | + |
| 33 | +1. Das aktuellste Release downloaden: |
| 34 | + |
| 35 | + ```bash |
| 36 | + curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" |
| 37 | + ``` |
| 38 | + |
| 39 | + {{< note >}} |
| 40 | + Um eine spezifische Version herunterzuladen, ersetzen Sie `$(curl -L -s https://dl.k8s.io/release/stable.txt)` mit der spezifischen Version. |
| 41 | + |
| 42 | + Um zum Beispiel Version {{< param "fullversion" >}} auf Linux herunterzuladen: |
| 43 | + |
| 44 | + ```bash |
| 45 | + curl -LO https://dl.k8s.io/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl |
| 46 | + ``` |
| 47 | + {{< /note >}} |
| 48 | + |
| 49 | +2. Binary validieren (optional) |
| 50 | + |
| 51 | + Downloaden Sie die kubectl Checksum-Datei: |
| 52 | + |
| 53 | + ```bash |
| 54 | + curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" |
| 55 | + ``` |
| 56 | + |
| 57 | + Validieren Sie die Kubectl Binary mit der Checksum-Datei: |
| 58 | + |
| 59 | + ```bash |
| 60 | + echo "$(cat kubectl.sha256) kubectl" | sha256sum --check |
| 61 | + ``` |
| 62 | + |
| 63 | + Wenn Valide, dann sieht die Ausgabe wie folgt aus: |
| 64 | + |
| 65 | + ```console |
| 66 | + kubectl: OK |
| 67 | + ``` |
| 68 | + |
| 69 | + Falls die Validierung fehlschlägt, beendet sich `sha256` mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte: |
| 70 | + |
| 71 | + ```bash |
| 72 | + kubectl: FAILED |
| 73 | + sha256sum: WARNING: 1 computed checksum did NOT match |
| 74 | + ``` |
| 75 | + |
| 76 | + {{< note >}} |
| 77 | + Laden Sie von der Binary und Checksum-Datei immer die selben Versionen herunter. |
| 78 | + {{< /note >}} |
| 79 | + |
| 80 | +3. kubectl installieren |
| 81 | + |
| 82 | + ```bash |
| 83 | + sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl |
| 84 | + ``` |
| 85 | + |
| 86 | + {{< note >}} |
| 87 | + Wenn Sie keinen root Zugriff auf das Zielsystem haben, können Sie dennoch kubectl in das Verzeichnis `~/.local/bin` installieren: |
| 88 | + |
| 89 | + ```bash |
| 90 | + chmod +x kubectl |
| 91 | + mkdir -p ~/.local/bin |
| 92 | + mv ./kubectl ~/.local/bin/kubectl |
| 93 | + # und ~/.local/bin zur Umgebungsvariable $PATH hinzufügen |
| 94 | + ``` |
| 95 | + |
| 96 | + {{< /note >}} |
| 97 | + |
| 98 | +4. Prüfen ob die installierte Version die aktuellste Version ist: |
| 99 | + |
| 100 | + ```bash |
| 101 | + kubectl version --client |
| 102 | + ``` |
| 103 | + |
| 104 | + {{< note >}} |
| 105 | + Der oben stehende Befehl wirft folgende Warnung: |
| 106 | + |
| 107 | + ``` |
| 108 | + WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. |
| 109 | + ``` |
| 110 | + |
| 111 | + Sie können diese Warnung ignorieren. Sie prüfen lediglich die `kubectl` Version, welche Sie installiert haben. |
| 112 | + |
| 113 | + {{< /note >}} |
| 114 | + |
| 115 | + Oder benutzten Sie diesen Befehl für eine detailliertere Ansicht: |
| 116 | + |
| 117 | + ```cmd |
| 118 | + kubectl version --client --output=yaml |
| 119 | + ``` |
| 120 | + |
| 121 | +### Installieren mit Hilfe des Linux eigenen Paketmanagers |
| 122 | + |
| 123 | +{{< tabs name="kubectl_install" >}} |
| 124 | +{{% tab name="Debian-basierte Distributionen" %}} |
| 125 | + |
| 126 | +1. Update des `apt` Paketindex und Installation der benötigten Pakete um das Kubernetes `apt` Repository zu nutzen: |
| 127 | + |
| 128 | + ```shell |
| 129 | + sudo apt-get update |
| 130 | + sudo apt-get install -y ca-certificates curl |
| 131 | + ``` |
| 132 | + |
| 133 | + Falls Sie Debian 9 (stretch) oder älter nutzen, müssen Sie zusätzlich das Paket `apt-transport-https` installieren: |
| 134 | + |
| 135 | + ```shell |
| 136 | + sudo apt-get install -y apt-transport-https |
| 137 | + ``` |
| 138 | + |
| 139 | +2. Den öffentlichen Google Cloud Signaturschlüssel herunterladen: |
| 140 | + |
| 141 | + ```shell |
| 142 | + sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg |
| 143 | + ``` |
| 144 | + |
| 145 | +3. Kubernetes zum `apt` Repository: |
| 146 | + |
| 147 | + ```shell |
| 148 | + echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list |
| 149 | + ``` |
| 150 | + |
| 151 | +4. Den `apt` Paketindex mit dem neuen Repository updaten und kubectl installieren: |
| 152 | + |
| 153 | + ```shell |
| 154 | + sudo apt-get update |
| 155 | + sudo apt-get install -y kubectl |
| 156 | + ``` |
| 157 | + |
| 158 | +{{< note >}} |
| 159 | +In releases älter als Debian 12 und Ubuntu 22.04, existiert `/etc/apt/keyrings` nicht per default. |
| 160 | +Falls sie es benötigen können sie es anlegen und von jedermann lesbar machen, aber nur schreibar durch Admins. |
| 161 | +{{< /note >}} |
| 162 | + |
| 163 | +{{% /tab %}} |
| 164 | + |
| 165 | +{{% tab name="Red Hat-basierte Distributionen" %}} |
| 166 | +```bash |
| 167 | +cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo |
| 168 | +[kubernetes] |
| 169 | +name=Kubernetes |
| 170 | +baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch |
| 171 | +enabled=1 |
| 172 | +gpgcheck=1 |
| 173 | +gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg |
| 174 | +EOF |
| 175 | +sudo yum install -y kubectl |
| 176 | +``` |
| 177 | + |
| 178 | +{{% /tab %}} |
| 179 | +{{< /tabs >}} |
| 180 | + |
| 181 | +### Installation mit anderen Paketmanagern |
| 182 | + |
| 183 | +{{< tabs name="other_kubectl_install" >}} |
| 184 | +{{% tab name="Snap" %}} |
| 185 | +Falls sie Ubuntu oder andere Linux Distributionen verwenden, welche den [snap](https://snapcraft.io/docs/core/install) Paketmanager unterstützen, können Sie kubectl als [snap](https://snapcraft.io/) Anwendung installieren. |
| 186 | + |
| 187 | +```shell |
| 188 | +snap install kubectl --classic |
| 189 | +kubectl version --client |
| 190 | +``` |
| 191 | + |
| 192 | +{{% /tab %}} |
| 193 | + |
| 194 | +{{% tab name="Homebrew" %}} |
| 195 | +Falls sie in Linux den [Homebrew](https://docs.brew.sh/Homebrew-on-Linux) |
| 196 | +Paketmanager nutzen, können sie kubectl über diesen [installieren](https://docs.brew.sh/Homebrew-on-Linux#install). |
| 197 | + |
| 198 | +```shell |
| 199 | +brew install kubectl |
| 200 | +kubectl version --client |
| 201 | +``` |
| 202 | + |
| 203 | +{{% /tab %}} |
| 204 | + |
| 205 | +{{< /tabs >}} |
| 206 | + |
| 207 | +## Kubectl Konfiguration verifizieren |
| 208 | + |
| 209 | +{{< include "included/verify-kubectl.md" >}} |
| 210 | + |
| 211 | +## Optionale kubectl Konfigurationen und Plugins |
| 212 | + |
| 213 | +### Shell Autovervollständigung einbinden |
| 214 | + |
| 215 | +kubectl stellt Autovervollständigungen für Bash, Zsh, Fish und Powershell zur Verfügung, mit welchem Sie Kommandozeilen Befehle beschleunigen können. |
| 216 | + |
| 217 | +Untenstehend ist beschrieben, wie die Autovervollständigungen für Fish und Zsh eingebunden werden. |
| 218 | + |
| 219 | +{{< tabs name="kubectl_autocompletion" >}} |
| 220 | +{{< tab name="Fish" include="included/optional-kubectl-configs-fish.md" />}} |
| 221 | +{{< tab name="Zsh" include="included/optional-kubectl-configs-zsh.md" />}} |
| 222 | +{{< /tabs >}} |
| 223 | + |
| 224 | +### `kubectl-convert` Plugin installieren |
| 225 | + |
| 226 | +{{< include "included/kubectl-convert-overview.md" >}} |
| 227 | + |
| 228 | +1. Neueste Version des Kommandozeilenbefehls herunterladen: |
| 229 | + |
| 230 | + ```bash |
| 231 | + curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert" |
| 232 | + ``` |
| 233 | + |
| 234 | +2. Binär-Datei validieren (optional) |
| 235 | + |
| 236 | + Downloaden Sie die kubectl-convert Checksum-Datei: |
| 237 | + |
| 238 | + ```bash |
| 239 | + curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256" |
| 240 | + ``` |
| 241 | + |
| 242 | + Validieren Sie die kubectl-convert Binary mit der Checksum-Datei: |
| 243 | + |
| 244 | + ```bash |
| 245 | + echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check |
| 246 | + ``` |
| 247 | + |
| 248 | + Wenn Valide, dann sieht die Ausgabe wie folgt aus: |
| 249 | + |
| 250 | + ```console |
| 251 | + kubectl-convert: OK |
| 252 | + ``` |
| 253 | + |
| 254 | + Falls die Validierung fehlschlägt, beendet sich `sha256` mit einem "nonzero"-Status und gibt einen Fehler aus, welcher so aussehen könnte: |
| 255 | + |
| 256 | + ```bash |
| 257 | + kubectl-convert: FAILED |
| 258 | + sha256sum: WARNING: 1 computed checksum did NOT match |
| 259 | + ``` |
| 260 | + |
| 261 | + {{< note >}} |
| 262 | + Laden Sie von der Binary und Checksum-Datei immer die selben Versionen herunter. |
| 263 | + {{< /note >}} |
| 264 | + |
| 265 | +3. kubectl-convert installieren |
| 266 | + |
| 267 | + ```bash |
| 268 | + sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert |
| 269 | + ``` |
| 270 | + |
| 271 | +4. Verifizieren, dass das Pluign erfolgreich installiert wurde: |
| 272 | + |
| 273 | + ```shell |
| 274 | + kubectl convert --help |
| 275 | + ``` |
| 276 | + |
| 277 | + If you do not see an error, it means the plugin is successfully installed. |
| 278 | + |
| 279 | +5. Nach Installation des Plugins, die Installationsdateien aufräumen: |
| 280 | + |
| 281 | + ```bash |
| 282 | + rm kubectl-convert kubectl-convert.sha256 |
| 283 | + ``` |
| 284 | + |
| 285 | +## {{% heading "whatsnext" %}} |
| 286 | + |
| 287 | +{{< include "included/kubectl-whats-next.md" >}} |
0 commit comments