it-wiki:kubernetes:rke2_install_guid
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| it-wiki:kubernetes:rke2_install_guid [2023/10/26 10:37] – [Linux Agent (Worker) Node installieren] marko | it-wiki:kubernetes:rke2_install_guid [2025/10/16 09:54] (aktuell) – [RKE2 HA] marko | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| Und mit folgendem Inhalt befüllen | Und mit folgendem Inhalt befüllen | ||
| <code bash> | <code bash> | ||
| + | write-kubeconfig-mode: | ||
| + | tls-san: | ||
| + | - 10.6.8.20 | ||
| + | disable: | ||
| + | - rke2-ingress-nginx | ||
| cni: calico | cni: calico | ||
| - | cluster-cidr: | + | cluster-cidr: |
| - | service-cidr: | + | service-cidr: |
| </ | </ | ||
| Damit geben wir gleich die service und cluster cidr an. Also welche IP Range sollen die Services bekommen und welche die Container. | Damit geben wir gleich die service und cluster cidr an. Also welche IP Range sollen die Services bekommen und welche die Container. | ||
| - | - Installer ausführen <code bash> | + | - Installer ausführen <code bash> |
| - Aktivieren des rke2-server service <code bash> | - Aktivieren des rke2-server service <code bash> | ||
| - | - Starten des Services <code bash> | + | - Starten des Services <code bash> |
| - Prüfe das Log nach belieben <code bash> | - Prüfe das Log nach belieben <code bash> | ||
| Zeile 33: | Zeile 38: | ||
| - A kubeconfig file will be written to / | - A kubeconfig file will be written to / | ||
| - A token that can be used to register other server or agent nodes will be created at / | - A token that can be used to register other server or agent nodes will be created at / | ||
| + | |||
| + | ==== RKE2 HA ==== | ||
| + | Wenn der rke2 Cluster HA fähig sein soll dann empfiehlt es sich dies mit kube-vip als Loadbalancer zu machen. | ||
| + | Eine Beispielkonfiguration für eine kube-vip.yml findest Du [[.installation# | ||
| + | |||
| + | ===== Eine Mögliche HA Konfig mittels kube-vip Daemonset ===== | ||
| + | > RBAC.yml | ||
| + | <code bash> | ||
| + | kubectl apply -f https:// | ||
| + | </ | ||
| + | |||
| + | > daemonset.yml | ||
| + | <code yaml> | ||
| + | apiVersion: apps/v1 | ||
| + | kind: DaemonSet | ||
| + | metadata: | ||
| + | annotations: | ||
| + | name: kube-vip-ds | ||
| + | namespace: kube-system | ||
| + | spec: | ||
| + | selector: | ||
| + | matchLabels: | ||
| + | name: kube-vip-ds | ||
| + | template: | ||
| + | metadata: | ||
| + | creationTimestamp: | ||
| + | labels: | ||
| + | name: kube-vip-ds | ||
| + | spec: | ||
| + | affinity: | ||
| + | nodeAffinity: | ||
| + | requiredDuringSchedulingIgnoredDuringExecution: | ||
| + | nodeSelectorTerms: | ||
| + | - matchExpressions: | ||
| + | - key: node-role.kubernetes.io/ | ||
| + | operator: Exists | ||
| + | - matchExpressions: | ||
| + | - key: node-role.kubernetes.io/ | ||
| + | operator: Exists | ||
| + | containers: | ||
| + | - args: | ||
| + | - manager | ||
| + | env: | ||
| + | - name: address | ||
| + | value: need-to-be-set | ||
| + | - name: vip_arp | ||
| + | value: " | ||
| + | - name: port | ||
| + | value: " | ||
| + | - name: vip_interface | ||
| + | value: ens3 # | ||
| + | - name: vip_cidr | ||
| + | value: " | ||
| + | - name: cp_enable | ||
| + | value: " | ||
| + | - name: cp_namespace | ||
| + | value: kube-system | ||
| + | - name: vip_ddns | ||
| + | value: " | ||
| + | - name: svc_enable | ||
| + | value: " | ||
| + | - name: vip_leaderelection | ||
| + | value: " | ||
| + | - name: vip_leaseduration | ||
| + | value: " | ||
| + | - name: vip_renewdeadline | ||
| + | value: " | ||
| + | - name: vip_retryperiod | ||
| + | value: " | ||
| + | image: ghcr.io/ | ||
| + | imagePullPolicy: | ||
| + | name: kube-vip | ||
| + | resources: {} | ||
| + | securityContext: | ||
| + | capabilities: | ||
| + | add: | ||
| + | - NET_ADMIN | ||
| + | - NET_RAW | ||
| + | - SYS_TIME | ||
| + | terminationMessagePath: | ||
| + | terminationMessagePolicy: | ||
| + | dnsPolicy: ClusterFirst | ||
| + | hostNetwork: | ||
| + | restartPolicy: | ||
| + | schedulerName: | ||
| + | securityContext: | ||
| + | serviceAccount: | ||
| + | serviceAccountName: | ||
| + | terminationGracePeriodSeconds: | ||
| + | tolerations: | ||
| + | - effect: NoSchedule | ||
| + | operator: Exists | ||
| + | - effect: NoExecute | ||
| + | operator: Exists | ||
| + | updateStrategy: | ||
| + | rollingUpdate: | ||
| + | maxSurge: 0 | ||
| + | maxUnavailable: | ||
| + | type: RollingUpdate | ||
| + | </ | ||
| + | |||
| + | <note tip> | ||
| + | Verzeichnisse für Manifeste und Static/ | ||
| + | Bei RKE2 gibt es zwei besondere Verzeichnisse für Manifeste und Static- oder Mirror- | ||
| + | Pods: | ||
| + | / | ||
| + | Alle Kubernetes-Manifeste, | ||
| + | automatisch in den Cluster übertragen („applied“), | ||
| + | oder auch zur Laufzeit. Wird ein bestehendes Manifest aus dem Verzeichnis ge- | ||
| + | löscht, wird das Manifest aus dem Cluster ebenso entfernt! | ||
| + | / | ||
| + | Verzeichnis für die Static- oder MirrorPods unter Kubernetes für RKE2. Liegen | ||
| + | dort Pod-Manifest-Dateien, | ||
| + | Besonderheit ist dabei, dass das kubelet für das Anstarten des Pods den API- | ||
| + | Server nicht benötigt. (Das gilt nur für Pod-Manifeste; | ||
| + | </ | ||
| + | |||
| + | ===Einrichten der zweiten Control Plane Node === | ||
| + | Erstellen einer passenden Cluster-Konfigurationsdatei | ||
| + | (/ | ||
| + | <code bash> | ||
| + | write-kubeconfig-mode: | ||
| + | tls-san: | ||
| + | - 10.6.8.20 | ||
| + | disable: | ||
| + | - rke2-ingress-nginx | ||
| + | cni: calico | ||
| + | cluster-cidr: | ||
| + | service-cidr: | ||
| + | server: https:// | ||
| + | token: <token from server node> | ||
| + | </ | ||
| + | <note important> | ||
| + | Achte darauf das die IP Adresse 10.6.8.20 bei der HA Konfiguration NICHT die IP einer Node sein darf sondern die IP welche Du bei der kube-vip Konfig als '' | ||
| + | </ | ||
| \\ | \\ | ||
| Zeile 48: | Zeile 188: | ||
| token: <token from server node> | token: <token from server node> | ||
| </ | </ | ||
| - | server: Der rke2-Serverprozess wartet auf Port 9345 auf die Registrierung neuer Knoten. Die Kubernetes-API wird weiterhin wie gewohnt auf Port 6443 bereitgestellt. | + | **Server:** Der rke2-Serverprozess wartet auf Port 9345 auf die Registrierung neuer Knoten. Die Kubernetes-API wird weiterhin wie gewohnt auf Port 6443 bereitgestellt. |
| - | token: Unter / | + | **Token:** Unter / |
| - | cluster-cidr: | + | **cluster-cidr: |
| - | - Installer ausführen <code bash> | + | - Installer ausführen <code bash> |
| - Aktivieren des rke2-server service <code bash> | - Aktivieren des rke2-server service <code bash> | ||
| - Starten des Services <code bash> | - Starten des Services <code bash> | ||
| - Prüfe das Log nach belieben <code bash> | - Prüfe das Log nach belieben <code bash> | ||
| + | ===== Konfigurationsänderungen ===== | ||
| + | ==== Beenden der RKE2-Prozesse ==== | ||
| + | <code bash> | ||
| + | rke2-killall.sh | ||
| + | </ | ||
| + | |||
| + | ==== rke2 deinstallieren ==== | ||
| + | <code bash> | ||
| + | rke2-uninstall.sh | ||
| + | </ | ||
| + | |||
| + | ===== Administration mit kubectl ===== | ||
| + | <code bash> | ||
| + | export KUBECONFIG=/ | ||
| + | export PATH=/ | ||
| + | </ | ||
| + | |||
| + | ===== Kontrolle mit crictl ===== | ||
| + | <code bash> | ||
| + | export PATH=/ | ||
| + | export CRI_CONFIG_FILE=/ | ||
| + | </ | ||
it-wiki/kubernetes/rke2_install_guid.1698316649.txt.gz · Zuletzt geändert: von marko