Files
mkdocs/docs/Заметки/proxmox/Создание кластера через мой шаблон тофу.md
2025-05-10 13:20:57 +03:00

38 lines
3.5 KiB
Markdown

Для создания кластера копируем мой шаблон в рабочую директорию и переименовываем. Переходим в свежую копию и готовимся к развертыванию
ЧТо нам потребуется:
- Создать 3 мастер ноды
- Создать 3 воркер ноды
- Сгенерировать инвентарь для ансибл
- Установить кубспрей
- установить зависимости
- Запустить плейбук установки кубера
Действия для выполнения.
ТАк как надо создавать 2 вида вм то создадим 2 файла где опишем ресурсы и назовем их k8s-cp-node-01 и k8s-worker-node-01
Копируем в эти файлы содержимое темплейта и меняем название ресурса.
С переменными в данной ситуации все сложно.
Можно создать набор переменных для каждой установки, но тогда на потребуется указывать 2 набора переменных под каждый тип машин.
Можно использовать переменные из шаблона не вводя новые, но так как ресурса 2 разных мы столкнемся с проблемой что переменные пересекаются в ресурсах и мешают друг другу (например Id вм должно быть индивидуальным, но без колхозинга оно таким не является и падает в ошибку )
Я предпочел колхозинг второму набору, так как его немного. А так же не надо городить второй набор практических неизменных значений. (подумать над решением такой проблемы)
Меняем значения переменных в файле значений. СЛЕДИМ ЗА ID!!!!! Так можно убить инфру. По хорошему надо добавить автотест с отдельной ручкой на случай сушествования ВМ с таким айди.
Так как у нас добавился счетчик, то для подставления значений в имя, ip и тд, нам нужно экранировать переменные, а так же добавить простой текст для того, что бы не городить второй набор. Этот текст будет различать разные виды ресурса.
Переменные которые обязательно меняются:
vm_id
vm_hostname
ip_address
Значение для них записываются в виде :
```
"${var.vm_hostname}-cp-${count.index + 1}"
```
```
"${var.vm_id}1${count.index + 1}"
```
```
"${var.ip_address}${count.index + 1}/24"
```
Мы добавляем кавычки так как внутри содержится просто текст. Текст мы добавляем для каждого ресурса свой.
Так как имя будет составное из переменной из файла и переменной счетчика то мы их экранируем друг от друга конструкцией ${}