Mehr Informationen bekommt man von der offiziellen Dokumentationsseite von RKE2
Überprüfe ob curl und iptables auf dem System installiert ist
Konfiguration für den Cluster erstellen
mkdir -p /etc/rancher/rke2/ vim /etc/rancher/rke2/config.yaml
Und mit folgendem Inhalt befüllen
write-kubeconfig-mode: 0600 tls-san: - 10.6.8.20 # tls-san nur wenn HA disable: - rke2-ingress-nginx cni: calico cluster-cidr: "100.73.0.0/16" service-cidr: "100.74.0.0/16"
Damit geben wir gleich die service und cluster cidr an. Also welche IP Range sollen die Services bekommen und welche die Container.
curl -sfL https://get.rke2.io | sh -
Wenn eine bestimmte Version gewünscht ist
curl -sfL https://get.rke2.io | INSTALL_RKE2_VERSION=v1.30.5+rke2r1 sh -
systemctl enable rke2-server.service
systemctl start rke2-server.service
oder
systemctl start --no-block rke2-server.service
journalctl -u rke2-server -f
After running this installation:
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 hier im Wiki im Bereich Kubernetes.
RBAC.yml
kubectl apply -f https://kube-vip.io/manifests/rbac.yaml
daemonset.yml
apiVersion: apps/v1 kind: DaemonSet metadata: annotations: name: kube-vip-ds namespace: kube-system spec: selector: matchLabels: name: kube-vip-ds template: metadata: creationTimestamp: null labels: name: kube-vip-ds spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists containers: - args: - manager env: - name: address value: need-to-be-set # use your own kubevip - name: vip_arp value: "true" - name: port value: "6443" - name: vip_interface # use your own network interface value: ens3 # e.g. ens3, eth0 - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "true" - name: vip_leaderelection value: "true" - name: vip_leaseduration value: "5" - name: vip_renewdeadline value: "3" - name: vip_retryperiod value: "1" image: ghcr.io/kube-vip/kube-vip:v1.0.1 imagePullPolicy: Always name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW - SYS_TIME terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst hostNetwork: true restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: kube-vip serviceAccountName: kube-vip terminationGracePeriodSeconds: 30 tolerations: - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists updateStrategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 type: RollingUpdate
Erstellen einer passenden Cluster-Konfigurationsdatei (/etc/rancher/rke2/config.yaml):
write-kubeconfig-mode: 0600 tls-san: - 10.6.8.20 disable: - rke2-ingress-nginx cni: calico cluster-cidr: "100.73.0.0/16" service-cidr: "100.74.0.0/16" server: https://10.6.8.20:9345 token: <token from server node>
ENV address
konfiguriert hast.
Überprüfe ob curl und iptables auf dem System installiert ist
Konfiguration für den Cluster erstellen
mkdir -p /etc/rancher/rke2/ vim /etc/rancher/rke2/config.yaml
Und mit folgendem Inhalt befüllen
server: https://10.6.8.20:9345 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.
Token: Unter /var/lib/rancher/rke2/server/node-token wird ein Token erstellt, der zum Registrieren anderer Server- oder Agentenknoten verwendet werden kann
cluster-cidr: und service-cidr: Damit geben wir gleich die service und cluster cidr an. Also welche IP Range sollen die Services bekommen und welche die Container.
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
Wenn eine bestimmte Version gewünscht ist
curl -sfL https://get.rke2.io | INSTALL_RKE2_VERSION=v1.30.5+rke2r1 INSTALL_RKE2_TYPE="agent" sh -
systemctl enable rke2-agent.service
systemctl start rke2-agent.service
journalctl -u rke2-agent -f
rke2-killall.sh
rke2-uninstall.sh
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml export PATH=/var/lib/rancher/rke2/bin/kubectl:$PATH
export PATH=/var/lib/rancher/rke2/bin:$PATH export CRI_CONFIG_FILE=/var/lib/rancher/rke2/agent/etc/crictl.yaml