This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
методологии_devops [2022/09/13 13:29] val [Примерный план] |
методологии_devops [2022/09/19 13:17] (current) val [Примерный план] |
||
---|---|---|---|
Line 96: | Line 96: | ||
</code> | </code> | ||
- | ТЗ: Горизонтально масштабируем веб сервер используя общий каталог | + | - Разрабатываем/знакомимся с [[Технология Docker]] (без sftp) на gitlab-runner@server (удобно для тестов CI/CD из командной строки) |
- | + | ||
- | - [[Сервис NFS]] на server | + | |
- | - [[Сервис NFS#Установка nfs клиента]] на nodeN (может добавить в [[Сервис Ansible]] редактирование fstab?) | + | |
- | - Разрабатываем на node1 используя [[Технология Docker]] (без sftp) | + | |
- | - Готовимся масштабировать через [[Технология Docker#docker-compose]] | + | |
- Создаем проект webd в [[Сервис Git#On-Premise gitlab]] | - Создаем проект webd в [[Сервис Git#On-Premise gitlab]] | ||
- Включаем [[Инструмент GitLab#GitLab Docker Registry]] | - Включаем [[Инструмент GitLab#GitLab Docker Registry]] | ||
- | - Cохраняем образ в используя [[Технология Docker#Локальные репозитории]] | + | - Cохраняем образ используя [[Технология Docker#Локальные репозитории]] |
- | - Используем ссылку на образ в docker-compose | + | - Автоматизируем сборку образа используя [[Средства программирования shell#Проверка синтаксиса]] и (уже на локальной системе) [[Инструмент GitLab#GitLab CI/CD]] не забыв [[Технология Docker#Предоставление прав непривилегированным пользователям]] на docker для пользователя gitlab-runner |
- | - Используя [[Инструмент GitLab#Подключение через API]] скачиавем на node2 и node3 файл [[Технология Docker#docker-compose]], настраиваем [[Технология Docker#Локальные репозитории]] и пробуем масштабировать | + | |
+ | ТЗ: Горизонтально масштабируем веб сервер используя общий каталог на node1,2,3 | ||
+ | |||
+ | - [[Сервис NFS]] на server | ||
+ | - [[Сервис NFS#Установка nfs клиента]] на node1,2,3 (может добавить в [[Сервис Ansible]] редактировать fstab не будем, поскольку это временное решение) | ||
+ | - Используя vagrant ansible provisioning устанавливаем docker и docker-compose на node1,2,3 | ||
+ | - Настраиваем [[Технология Docker#Локальные репозитории]] на node1,2,3 | ||
+ | - Готовимся масштабировать добавив в проект файл [[Технология Docker#docker-compose]] с ссылкой на образ | ||
+ | - Используя [[Инструмент GitLab#Подключение через API]] скачиваем на node1,2,3 файл [[Технология Docker#docker-compose]] и пробуем масштабировать | ||
- | * Что пришлось делать "вручную": выбирать узлы, монтировать nfs, загружать файл docker-compose, выяснять порты - выход: [[Система Kubernetes]] | + | * Считаем, что пришлось делать "вручную": выбирать узлы, монтировать nfs, загружать файл docker-compose, выяснять порты - выход: [[Система Kubernetes]] |
=== Разработка и распространение ПО с использованием Kubernetes === | === Разработка и распространение ПО с использованием Kubernetes === | ||
- | - Студенты и преподаватель выполняют [[Система Kubernetes#Установка minikube]] | + | - Производим [[Система Kubernetes#Установка minikube]] для gitlab-runner@server (для доступа к репозиторию, на нем же, понадобится включить [[Сервисы Gateway и routing]]) |
- | - Преподаватель удаляет minikube и разворачивает [[Система Kubernetes#Кластер Kubernetes]] | + | - Преподаватель разворачивает [[Система Kubernetes#Кластер Kubernetes]] на node1,2,3 |
- [[Система Kubernetes#Инструмент командной строки kubectl]] для gitlab-runner@server | - [[Система Kubernetes#Инструмент командной строки kubectl]] для gitlab-runner@server | ||
- | - Изучаем [[Система Kubernetes#Базовые объекты k8s]] (может без ingress?) | + | - Изучаем [[Система Kubernetes#Базовые объекты k8s]] |
+ | - Автоматизируем deploy используя [[Инструмент GitLab#GitLab CI/CD]], сталкиваемся с необходимостью править версию в манифесте, рассмотрев вариант envsubst (здесь же можно и keepalived и нагрузочное тестирование и автоматическое увеличение подов ...) приходим к Helm | ||
+ | - Изучаем тему [[Система Kubernetes#Ingress]] для minikube и используем [[Система Kubernetes#Helm]] для его развертывании в кластере | ||
+ | - Изучаем тему [[Система Kubernetes#Helm]] на примере разработки чарта для приложения webd | ||
+ | - Возвращаемся к deploy используя [[Инструмент GitLab#GitLab CI/CD]] и чарта [[Система Kubernetes#Helm]] приложения webd | ||
==== ToDo ==== | ==== ToDo ==== | ||