Тема 1: Kubernetes, основные понятия и архитектура
- Преимущества Kubernetes для разработки и развёртывания приложений
- Особенности проектирования приложений для Kubernetes
- Основные принципы контейнеризации
- Архитектура и концепты Kubernetes: Nodes, Pods, Containers, ReplicaSets, Deployments.
Тема 2: Установка и настройка Kubernetes-кластера. Подготовка приложений к работе
- Установка Kubectl, Minikube, Docker
- запуск Minikube для валидации инсталляции
- Подготовка kubespray
- Разворачивание и работа с кластером
- Упаковка приложений для запуска в Kubernetes
Тема 3: Работа c Kubernetes
- Развертывание приложений на Kubernetes: манифесты, ресурсы, жизненный цикл
- Механика запуска и взаимодействия контейнеров в Kubernetes. Основы Services, Labels и Selectors
- Изучение namespace, pod, deployment, service & ingress
- Масштабирование, обновление и мониторинг приложений в Kubernetes
- Безопасность и управление доступом
- Управление конфигурацией и секретами в Kubernetes: изучение config map, secret, persistent volume claim
Тема 4: Сетевая подсистема и хранение данных в Kubernetes. Background Processing в Kubernetes.
- Разбор дополнительных сущностей Kubernetes: Stateful set, Replica set, Storage class, Volume, Service accounts, Cert manager
- Разбор функционала и особенностей сущностей Job и CronJob
Тема 5: Внедрение CI/CD с использованием Gitlab
- Основы непрерывной интеграции и непрерывной доставки
- Установка и настройка Gitlab для CI/CD
- Создание пайплайнов CI/CD в Gitlab: настройка стадий, задач и триггеров
- Примеры сложных пайплайнов
- Полезные технологии для CI/CD (kaliko и т. д.)
- Интеграция Gitlab и Kubernetes для автоматического развертывания и обновления приложений
- Разбор готовой конфигурации-примера.
Тема 6: Оптимизация и мониторинг Kubernetes
- Пакетный менеджер Helm. Конфигурация и развертывание пакетов
- Методы оптимизации и мониторинга производительности Kubernetes
- Использование инструментов мониторинга и трассировки, таких как Prometheus, Grafana, Jaeger
- Получение и отображение метрик Kubernetes и запущенных приложениях на дашборде
- Логирование и трейсы. ElasticSearch, FluentD, Kibana
- Распределенное логирование с Jaeger
- Разработка и внедрение политик автомасштабирования и балансировки нагрузки.