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

3.5 KiB

Для создания кластера копируем мой шаблон в рабочую директорию и переименовываем. Переходим в свежую копию и готовимся к развертыванию ЧТо нам потребуется:

  • Создать 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"

Мы добавляем кавычки так как внутри содержится просто текст. Текст мы добавляем для каждого ресурса свой. Так как имя будет составное из переменной из файла и переменной счетчика то мы их экранируем друг от друга конструкцией ${}