Развернуть мультинодное окружения для On-Premise микросервисного приложения Elma365.
1. master-node
2. observer-node
3. worker-n1-node
4. worker-n2-node
Было сделано
1. Подготовка инфраструктуры
• Было сформировано Ansible-проекта с инвентарём и ролями для автоматизации.
• Было настроено inventory.ini, group_vars, host_vars для master- и worker-нод.
• Было автоматизировано редактирование /etc/hosts на всех нодах через Ansible.
• Было использовано Ansible Vault для хранения паролей.
2. Развёртывание Kubernetes через kubeadm
• Было выполнено kubeadm init на мастер-ноде (автоматизировано плейбуком).
• Была указана сеть подов (92.217.0.0/16).
• Было произведено подключение worker-нод через kubeadm join.
3. Сетевая подсистема (CNI)
• Было установлено Calico как плагин сети подов.
• Было настроено IP-пулы и проверено сетевое взаимодействие между подами.
4. Ingress-контроллер
• Был установлен NGINX Ingress Controller через Ansible и Helm.
• Было настроено публикация приложений через ingress-ресурсы.
5. Наблюдаемость и мониторинг
• Был развернут Prometheus + Grafana Stack (Prometheus, Alertmanager, Grafana).
• Были подключены метрики Kubernetes через kube-state-metrics и node-exporter.
• Были настроены Grafana-дашборды для мониторинга состояния кластера.
6. CI/CD и GitOps
• Был установлен ArgoCD.
• Было настроено автоматическое развёртывание приложений из Git-репозиториев.
• Была проверена синхронизация изменений из Git с кластером.
• Мультинодный Kubernetes-кластер (мастер + несколько воркеров).
• Обеспечено функционирование Calico — сеть подов и DNS работают корректно.
• Ingress NGINX — приложения публикуются через ingress-ресурсы.
• Внедрен Grafana Stack — наблюдаемость и алертинг функционируют.(отказоустойчивость и observablity)
• ArgoCD — GitOps-подход реализован, приложения синхронизируются из Git.
Было достигнуто соответствие best practices:
• Автоматизация Ansible
• IaC
• GitOps-ориентированный CI/CD
• мониторинг и алертинг.