Skip to content

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