Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

3. Installieren Sie Kubernetes (Überspringen für Docker-Installationen)

Überspringen Sie diesen Abschnitt, wenn Sie Rancher auf einem einzelnen Knoten mit Docker installieren.

In diesem Abschnitt wird beschrieben, wie Sie einen Kubernetes-Cluster gemäß unseren Best Practices für die Rancher-Serverumgebung installieren. Dieser Cluster sollte ausschließlich für den Betrieb des Rancher-Servers verwendet werden.

Rancher kann auf jedem Kubernetes-Cluster installiert werden, einschließlich gehosteter Kubernetes-Anbieter.

Die Schritte zum Einrichten eines Air-Gapped-Kubernetes-Clusters auf RKE2 oder K3s sind unten aufgeführt.

  • K3s

  • RKE2

In diesem Leitfaden gehen wir davon aus, dass Sie Ihre Knoten in Ihrer Air-Gapped-Umgebung erstellt haben und über ein sicheres Docker-Privat-Registry auf Ihrem Bastion-Server verfügen.

1. Bereiten Sie das Verzeichnis für die Images vor

Holen Sie sich die TAR-Datei mit Images für Ihre Architektur von der releases-Seite für die Version von K3s, die Sie ausführen werden.

Legen Sie die TAR-Datei im images Verzeichnis ab, bevor Sie K3s auf jedem Knoten starten, zum Beispiel:

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/

2. Erstellen Sie die Registry YAML

Erstellen Sie die registries.yaml-Datei unter /etc/rancher/k3s/registries.yaml. Dies wird K3s die notwendigen Details mitteilen, um sich mit Ihrem privaten Registry zu verbinden.

Die registries.yaml-Datei sollte vor dem Einfügen der erforderlichen Informationen so aussehen:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

Bitte beachten Sie, dass derzeit nur sichere Registries mit K3s unterstützt werden (SSL mit benutzerdefinierter CA).

Für weitere Informationen zur Konfigurationsdatei für private Registries für K3s verweisen Sie auf die K3s-Dokumentation.

3. Installieren Sie K3s

Rancher muss auf einer unterstützten Kubernetes-Version installiert werden. Um herauszufinden, welche Kubernetes-Versionen für Ihre Rancher-Version unterstützt werden, beachten Sie die Rancher Support Matrix.

Um die K3s (Kubernetes)-Version anzugeben, verwenden Sie die Umgebungsvariable INSTALL_K3S_VERSION (z. B. INSTALL_K3S_VERSION="v1.24.10+k3s1"), wenn Sie das K3s-Installationsskript ausführen.

Holen Sie sich die K3s-Binärdatei von der releases-Seite, die mit der gleichen Version übereinstimmt, die zum Abrufen der TAR-Datei der Air-Gapped-Images verwendet wurde. Holen Sie sich auch das K3s-Installationsskript unter https://get.k3s.io.

Platzieren Sie die Binärdatei in /usr/local/bin auf jedem Knoten. Platzieren Sie das Installationsskript irgendwo auf jedem Knoten und benennen Sie es install.sh.

Installieren Sie K3s auf jedem Server:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> ./install.sh

Installieren Sie K3s auf jedem Agenten:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> K3S_URL=https://<SERVER>:6443 K3S_TOKEN=<TOKEN> ./install.sh

Dabei ist <SERVER> die IP oder der gültige DNS des Servers und <TOKEN> das Node-Token vom Server, das Sie unter /var/lib/rancher/k3s/server/node-token finden.

K3s bietet zusätzlich ein --resolv-conf Flag für Kubelets, das bei der Konfiguration von DNS in Air-Gapped-Netzwerken helfen kann.

4. Speichern und beginnen Sie mit der Verwendung der kubeconfig-Datei

Als Sie K3s auf jedem Rancher-Serverknoten installiert haben, wurde eine kubeconfig-Datei auf dem Knoten unter /etc/rancher/k3s/k3s.yaml erstellt. Diese Datei enthält Anmeldeinformationen für den vollständigen Zugriff auf das Cluster, und Sie sollten diese Datei an einem sicheren Ort speichern.

Um diese kubeconfig&#8209;Datei zu verwenden,

  1. Installieren Sie kubectl, als Kubernetes-Kommandozeilenwerkzeug.

  2. Kopieren Sie die Datei unter /etc/rancher/k3s/k3s.yaml und speichern Sie sie im Verzeichnis ~/.kube/config auf Ihrem lokalen Computer.

  3. In der kubeconfig-Datei ist die server Direktive als localhost definiert. Konfigurieren Sie den Server als DNS Ihres Load Balancers und verweisen Sie auf Port 6443. (Der Kubernetes-API-Server wird über Port 6443 erreicht, während der Rancher-Server über die Ports 80 und 443 erreicht wird.) Hier ist ein Beispiel k3s.yaml:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

Ergebnis: Sie können jetzt kubectl verwenden, um Ihr K3s-Cluster zu verwalten. Wenn Sie mehr als eine kubeconfig-Datei haben, können Sie angeben, welche Sie verwenden möchten, indem Sie den Pfad zur Datei beim Verwenden von kubectl übergeben:

kubectl --kubeconfig ~/.kube/config/k3s.yaml get pods --all-namespaces

Weitere Informationen zur kubeconfig-Datei finden Sie in der K3s-Dokumentation oder der offiziellen Kubernetes-Dokumentation zur Organisation des Clusterzugriffs mit kubeconfig-Dateien.

Hinweis zum Upgrade

Das Upgrade einer Air-Gapped-Umgebung kann auf folgende Weise durchgeführt werden:

  1. Laden Sie die neuen Air-Gapped-Images (TAR-Datei) von der releases-Seite für die Version von K3s herunter, auf die Sie ein Upgrade durchführen werden. Legen Sie die TAR-Datei im /var/lib/rancher/k3s/agent/images/ Verzeichnis auf jedem Knoten ab. Löschen Sie die alte tar-Datei.

  2. Kopieren und ersetzen Sie die alte K3s-Binärdatei in /usr/local/bin auf jedem Knoten. Kopieren Sie das Installationsskript unter https://get.k3s.io (da es möglich ist, dass es sich seit der letzten Version geändert hat). Führen Sie das Skript erneut aus, genau wie Sie es in der Vergangenheit mit denselben Umgebungsvariablen getan haben.

  3. Starten Sie den K3s-Dienst neu (falls er nicht automatisch vom Installer neu gestartet wurde).

In diesem Leitfaden gehen wir davon aus, dass Sie Ihre Knoten in Ihrer Air-Gapped-Umgebung erstellt haben und über ein sicheres Docker-Privat-Registry auf Ihrem Bastion-Server verfügen.

1. Erstellen Sie die RKE2-Konfiguration

Erstellen Sie die config.yaml-Datei unter /etc/rancher/rke2/config.yaml. Diese enthält alle Konfigurationsoptionen, die erforderlich sind, um einen hochverfügbaren RKE2-Cluster zu erstellen.

Auf dem ersten Server ist die minimale Konfiguration:

token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

Auf jedem anderen Server sollte die Konfigurationsdatei dasselbe Token enthalten und RKE2 anweisen, sich mit dem bestehenden ersten Server zu verbinden:

server: https://ip-of-first-server:9345
token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

Weitere Informationen finden Sie in der RKE2-Dokumentation.

RKE2 bietet zusätzlich eine resolv-conf Option für Kubelets, die bei der Konfiguration von DNS in Air-Gapped-Netzwerken helfen kann.

2. Erstellen Sie die Registry YAML

Erstellen Sie die registries.yaml-Datei unter /etc/rancher/rke2/registries.yaml. Dies wird RKE2 die notwendigen Details mitteilen, um sich mit Ihrem privaten Registry zu verbinden.

Die registries.yaml-Datei sollte vor dem Einfügen der erforderlichen Informationen so aussehen:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

Für weitere Informationen zur Konfigurationsdatei privater Registries für RKE2 beachten Sie die RKE2-Dokumentation.

3. Install RKE2

Rancher muss auf einer unterstützten Kubernetes-Version installiert werden. Um herauszufinden, welche Versionen von Kubernetes für Ihre Rancher-Version unterstützt werden, beziehen Sie sich auf die Wartungsbedingungen für den Support.

Laden Sie das Installationsskript, rke2, rke2-images und die sha256sum-Archive von der Veröffentlichung herunter und laden Sie sie in ein Verzeichnis auf jedem Server hoch:

mkdir /tmp/rke2-artifacts && cd /tmp/rke2-artifacts/
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2-images.linux-amd64.tar.zst
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2.linux-amd64.tar.gz
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/sha256sum-amd64.txt
curl -sfL https://get.rke2.io --output install.sh

Führen Sie dann install.sh mit dem Verzeichnis auf jedem Server aus, wie im folgenden Beispiel:

INSTALL_RKE2_ARTIFACT_PATH=/tmp/rke2-artifacts sh install.sh

Aktivieren und starten Sie den Dienst auf allen Servern:

` systemctl enable rke2-server.service systemctl start rke2-server.service `

Weitere Informationen finden Sie in der RKE2-Dokumentation.

4. Speichern und beginnen Sie mit der Verwendung der kubeconfig-Datei

Als Sie RKE2 auf jedem Rancher-Serverknoten installiert haben, wurde eine kubeconfig&#8209;Datei auf dem Knoten unter /etc/rancher/rke2/rke2.yaml erstellt. Diese Datei enthält Anmeldeinformationen für den vollständigen Zugriff auf den Cluster, und Sie sollten diese Datei an einem sicheren Ort speichern.

Um diese kubeconfig&#8209;Datei zu verwenden,

  1. Installieren Sie kubectl, ein Kubernetes-Kommandozeilenwerkzeug.

  2. Kopieren Sie die Datei unter /etc/rancher/rke2/rke2.yaml und speichern Sie sie im Verzeichnis ~/.kube/config auf Ihrem lokalen Computer.

  3. In der kubeconfig-Datei ist die server Direktive als localhost definiert. Konfigurieren Sie den Server als DNS Ihres Load Balancers und verweisen Sie auf Port 6443. (Der Kubernetes-API-Server wird über Port 6443 erreicht, während der Rancher-Server über die Ports 80 und 443 erreicht wird.) Hier ist ein Beispiel rke2.yaml:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

Ergebnis: Sie können jetzt kubectl verwenden, um Ihr RKE2-Cluster zu verwalten. Wenn Sie mehr als eine kubeconfig-Datei haben, können Sie angeben, welche Sie verwenden möchten, indem Sie den Pfad zur Datei beim Verwenden von kubectl übergeben:

kubectl --kubeconfig ~/.kube/config/rke2.yaml get pods --all-namespaces

Für weitere Informationen zur kubeconfig-Datei verweisen Sie auf die RKE2-Dokumentation oder die offizielle Kubernetes-Dokumentation zur Organisation des Clusterzugriffs mit kubeconfig-Dateien.

Hinweis zum Upgrade

Das Upgrade einer Air-Gapped-Umgebung kann auf folgende Weise durchgeführt werden:

  1. Laden Sie die neuen Air-Gapped-Artefakte und das Installationsskript von der releases-Seite für die Version von RKE2 herunter, auf die Sie aktualisieren möchten.

  2. Führen Sie das Skript erneut aus, genau wie Sie es in der Vergangenheit mit denselben Umgebungsvariablen getan haben.

  3. Starten Sie den RKE2-Dienst neu.

Probleme oder Fehler?

Siehe die Fehlerbehebung-Seite.