# Запускаем RKE2 что нам понадобиться: * [helm](https://helm.sh) ## План действий 1. В чем разница между RKE <> RKE2 2. Запускаем RKE2 через комм строку 3. Тестируем кластер в линзе ## Выполнение на первой ноде: ```bash curl -sfL https://get.rke2.io | sh - systemctl enable --now rke2-server.service ``` Подключаем "кластер" к линзе, взяв конфиг из `/etc/rancher/rke2/rke2.yaml` и поправив там верный ip-адрес. на второи и третьей: ```bash mkdir -p /etc/rancher/rke2/ && nano /etc/rancher/rke2/config.yaml ``` и заполняем его конфигом: (токен берем из первой ноды в файле `/var/lib/rancher/rke2/server/node-token`) ```yaml server: https://192.168.20.2:9345 token: K10a251c5c4fc92ca9d08d3aa534e232bd9cf1f6c192d42551c98020ffec17464cc::server:1b306239dd7e878eda35084137aa9626 tls-san: - rke.bildme.ru node-taint: - "CriticalAddonsOnly=true:NoExecute" ``` ## Траефик запускаем траефик, балансирую только на первую cp-ноду траефик у меня будет висеть на адресе 192.168.20.2, от сюда этот адрес указан и в конфиге в разделе server ## Подключаем 2\3 ноды активируем сервис, ждем подключения нод в кластер `systemctl enable --now rke2-server.service` ## Правим подключение 1. идем на первую ноду, так же создаем конфиг, сохраняем и перезапускаем машину 2. перенастраиваем подключение в линзе по доменному имени 3. открываем балансировку в траефике на все три ноды ## Добавляем воркер-ноду 1. качаем бинари - `curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -` 2. создаем более простой конфиг: ```bash mkdir -p /etc/rancher/rke2/ && nano /etc/rancher/rke2/config.yaml ``` заполняем: ```yaml server: https://192.168.20.2:9345 token: K10a251c5c4fc92ca9d08d3aa534e232bd9cf1f6c192d42551c98020ffec17464cc::server:1b306239dd7e878eda35084137aa9626 ``` запускаем службу: `systemctl enable --now rke2-agent.service` ждем адопта, затем добавляем в лейбы ноды значение (исключительно для красоты): `node-role.kubernetes.io/worker: 'true'` ## Со стороны кластера 1. поправим taints на первой ноде, так, что бы на нее не пошла боевая нагрузка 2. поправим nginx ingress controller, что бы он работал только на CP-нодах меняем селектор нод: ```yaml nodeSelector: node-role.kubernetes.io/control-plane: 'true' ``` добавляем разрешение на запуск на CP-нодах: ```yaml tolerations: - key: CriticalAddonsOnly operator: Exists - operator: Exists effect: NoExecute ``` проверяем, что у нас запущены 3 реплики rke2-ingress-nginx-controller