38 lines
3.5 KiB
Markdown
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"
|
|
```
|
|
Мы добавляем кавычки так как внутри содержится просто текст. Текст мы добавляем для каждого ресурса свой.
|
|
Так как имя будет составное из переменной из файла и переменной счетчика то мы их экранируем друг от друга конструкцией ${}
|