Einrichten eines hochverfügbaren SUSE® Rancher Prime: K3s-Kubernetes-Clusters für SUSE Rancher Prime
In diesem Abschnitt wird beschrieben, wie man einen Kubernetes-Cluster gemäß den Best Practices für die Rancher-Serverumgebung installiert.
Für Systeme ohne direkten Internetzugang beachten Sie bitte die Anweisungen zur Air Gap-Installation.
|
Einzelknoten-Installationshinweis:
In einem Einzelknoten-Kubernetes-Cluster bietet der Rancher-Server keine hohe Verfügbarkeit, die für den Betrieb von Rancher in der Produktion wichtig ist. Die Installation von Rancher auf einem Einzelknoten-Cluster kann jedoch nützlich sein, wenn Sie kurzfristig Ressourcen sparen möchten, während Sie einen Migrationspfad zur hohen Verfügbarkeit beibehalten. Um ein Einzelknoten-K3s-Cluster einzurichten, führen Sie den Installationsbefehl für den Rancher-Server nur auf einem Knoten anstelle von zwei Knoten aus. In beiden Einzelknoten-Setups kann Rancher mit Helm auf dem Kubernetes-Cluster installiert werden, genau wie es auf jedem anderen Cluster installiert werden würde. |
Voraussetzungen
Diese Anweisungen setzen voraus, dass Sie zwei Knoten, einen Lastenausgleich, einen DNS-Eintrag und eine externe MySQL-Datenbank eingerichtet haben, wie in diesem Abschnitt beschrieben.
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.
Kubernetes installieren
1. Kubernetes installieren und den SUSE® Rancher Prime: K3s-Server einrichten
Wenn Sie den Befehl zum Starten des K3s-Kubernetes-API-Servers ausführen, geben Sie eine Option an, um den externen Datenspeicher zu verwenden, den Sie zuvor eingerichtet haben.
-
Verbinden Sie sich mit einem der Linux-Knoten, die Sie vorbereitet haben, um den Rancher-Server auszuführen.
-
Führen Sie auf dem Linux-Knoten diesen Befehl aus, um den K3s-Server zu starten und ihn mit dem externen Datenspeicher zu verbinden:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=<VERSION> sh -s - server \ --datastore-endpoint="<DATASTORE_ENDPOINT>"
Dabei ist
<DATASTORE_ENDPOINT>die Verbindungs-URI für Ihren Datenspeicher. Zum Beispielmysql://username:password@tcp(hostname:3306)/database-name, wenn Sie MySQL verwenden. Gültige Datenspeicher sind etcd, MySQL, PostgreSQL oder SQLite (Standard).Der Datenspeicher-Endpunkt kann auch über die Umgebungsvariable
$K3S_DATASTORE_ENDPOINTübergeben werden. -
Holen Sie sich das Token des Hauptserverknotens:
cat /var/lib/rancher/k3s/server/token
-
Führen Sie den Befehl auf Ihrem zweiten K3s-Serverknoten aus:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=<VERSION> sh -s - server \ --datastore-endpoint="<DATASTORE_ENDPOINT>" \ --token "<MAIN_SERVER_NODE_TOKEN>"
2. Bestätigen Sie, dass SUSE® Rancher Prime: K3s läuft
Um zu bestätigen, dass K3s erfolgreich eingerichtet wurde, führen Sie den folgenden Befehl auf einem der K3s-Serverknoten aus:
sudo k3s kubectl get nodes
Dann sollten Sie zwei Knoten mit der Master-Rolle sehen:
ubuntu@ip-172-31-60-194:~$ sudo k3s kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-31-60-194 Ready master 44m v1.17.2+k3s1 ip-172-31-63-88 Ready master 6m8s v1.17.2+k3s1
Testen Sie dann die Gesundheit der Cluster-Pods:
sudo k3s kubectl get pods --all-namespaces
Ergebnis: Sie haben erfolgreich ein K3s Kubernetes-Cluster eingerichtet.
3. 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 Datei zu verwenden,
-
Installieren Sie kubectl,, ein Kubernetes-Kommandozeilenwerkzeug.
-
Kopieren Sie die Datei unter
/etc/rancher/k3s/k3s.yamlund speichern Sie sie im Verzeichnis~/.kube/configauf Ihrem lokalen Computer. -
In der kubeconfig-Datei ist die
serverDirektive 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 Beispielk3s.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.
4. Überprüfen Sie die Gesundheit Ihrer Cluster-Pods.
Nachdem Sie die kubeconfig-Datei eingerichtet haben, können Sie kubectl verwenden, um von Ihrem lokalen Computer auf den Cluster zuzugreifen.
Überprüfen Sie, ob alle erforderlichen Pods und Container gesund sind und bereit sind, fortzufahren:
ubuntu@ip-172-31-60-194:~$ sudo kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system metrics-server-6d684c7b5-bw59k 1/1 Running 0 8d kube-system local-path-provisioner-58fb86bdfd-fmkvd 1/1 Running 0 8d kube-system coredns-d798c9dd-ljjnf 1/1 Running 0 8d
Ergebnis: Sie haben bestätigt, dass Sie mit kubectl auf den Cluster zugreifen können und der K3s-Cluster erfolgreich läuft. Jetzt kann der Rancher-Management-Server im Cluster installiert werden.