RKE2 Install e Config¶
# =========================================================
# 1. PREPARAZIONE E INSTALLAZIONE MASTER
# =========================================================
sudo mkdir -p /etc/rancher/rke2/
sudo nano /etc/rancher/rke2/config.yaml
# Installazione RKE2 Server
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE=server INSTALL_RKE2_VERSION=v1.35.4+rke2r1 sh -
# Abilitazione e avvio del servizio master
sudo systemctl enable rke2-server
sudo systemctl start rke2-server
# Recupero del token necessario per l'unione dei worker
# Salvare questo valore per la configurazione successiva
sudo cat /var/lib/rancher/rke2/server/node-token
# =========================================================
# 2. CONFIGURAZIONE WORKER (da eseguire su ogni worker)
# =========================================================
sudo mkdir -p /etc/rancher/rke2/
# Configurazione del worker (sostituire IP e TOKEN)
# sudo nano /etc/rancher/rke2/config.yaml
# Contenuto del file:
# server: https://<IP_MASTER>:9345
# token: <TOKEN_RECUPERATO_DAL_MASTER>
# Installazione RKE2 Agent (Worker)
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE=agent INSTALL_RKE2_VERSION=v1.35.4+rke2r1 sh -
# Abilitazione e avvio del servizio worker
sudo systemctl enable rke2-agent
sudo systemctl start rke2-agent
token: "openssl rand -hex 32"
cluster-cidr: "10.50.0.0/16"
service-cidr: "10.60.0.0/16"
cni: canal or cilium other
disable:
- rke2-ingress-nginx
enable-servicelb: false
ingress-controller: traefik
tls-san:
- "ip"
kube-apiserver-arg:
- "oidc-issuer-url=https://domain"
- "oidc-client-id=kubernetes"
- "oidc-username-claim=email"
- "oidc-groups-claim=groups"
- "max-mutating-requests-inflight=200"
control-plane-resource-requests:
- kube-apiserver-cpu=500m
- kube-apiserver-memory=1200M
- kube-scheduler-cpu=100m
- kube-scheduler-memory=200M
- kube-controller-manager-cpu=200m
- kube-controller-manager-memory=300M
- etcd-cpu=500m
- etcd-memory=512M
control-plane-resource-limits:
- kube-apiserver-cpu=1000m
- kube-apiserver-memory=1400M
- kube-scheduler-cpu=200m
- kube-scheduler-memory=256M
- kube-controller-manager-cpu=400m
- kube-controller-manager-memory=400M
- etcd-cpu=500m
- etcd-memory=600M
kubelet-arg:
- "max-pods=60"
- "kube-reserved=cpu=100m,memory=500M"
- "system-reserved=cpu=100m,memory=500M"
- "eviction-hard=memory.available<800Mi"
- "allowed-unsafe-sysctls=net.ipv4.ip_forward"
# =========================================================
# 1. GESTIONE SNAPSHOT
# =========================================================
# Elenco snapshot disponibili
sudo rke2 etcd-snapshot ls
# Creazione nuovo snapshot manuale
sudo rke2 etcd-snapshot save --name <NOME_SNAPSHOT>
# Directory snapshot: /var/lib/rancher/rke2/server/db/snapshots/
# =========================================================
# 2. RIPRISTINO (DISASTER RECOVERY)
# =========================================================
# 1. Stop servizio
sudo systemctl stop rke2-server
# 2. Pulizia database corrotto
sudo rm -rf /var/lib/rancher/rke2/server/db/etcd
# 3. Ripristino (eseguire con token originale)
sudo rke2 server \
--cluster-reset \
--cluster-reset-restore-path=/var/lib/rancher/rke2/server/db/snapshots/<FILE>.db \
--token=<TOKEN>
# 4. Riavvio normale
sudo systemctl start rke2-server