2024/2025
Основы оркестрации в контейнерных средах
Статус:
Маго-лего
Кто читает:
Департамент компьютерной инженерии
Когда читается:
3 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
3
Программа дисциплины
Аннотация
Курс «Основы оркестрации в контейнерных средах» предназначен для инженеров и разработчиков, желающих получить практические знания о Kubernetes и контейнеризации на базе Linux. Участники изучат ключевые механизмы Linux, такие как namespaces и cgroups, и их применение в современных технологиях оркестрации.Курс фокусируется на основных объектах Kubernetes: Pods, Nodes, ReplicaSets, Deployments и Services. Особое внимание уделяется практическим аспектам развёртывания, масштабирования и обновления приложений. Студенты освоят сетевые технологии кластера, включая настройку сетевого взаимодействия и балансировку нагрузки с помощью сервисов и Ingress-контроллеров.Дополнительно рассматриваются темы хранения данных, масштабирования, мониторинга и безопасности, включая настройку RBAC и применение Network Policies. Завершается курс интеграцией Kubernetes с системами CI/CD и облачными сервисами для автоматизации процессов развёртывания и доставки приложений.
Цель освоения дисциплины
- Изучить основные механизмы Linux (namespaces, cgroups) и их применение для контейнеризации.
- Освоить архитектуру Kubernetes и ключевые объекты оркестрации (Pods, Nodes, ReplicaSets, Deployments, Services).
- Получить навыки настройки сетевого взаимодействия и управления сетевой безопасностью (Ingress-контроллеры, Network Policies).
- Научиться работать с системами хранения данных в Kubernetes, включая динамическое и статическое предоставление хранилищ.
- Овладеть методами масштабирования, мониторинга и оптимизации контейнерных приложений с использованием Prometheus и Grafana.
- Изучить подходы к обеспечению безопасности контейнеров и интеграции Kubernetes с CI/CD для автоматизации развёртывания и управления инфраструктурой.
Планируемые результаты обучения
- Знает основные виды систем хранения данных в Kubernetes, включая emptyDir, hostPath и persistentVolumeClaim.
- Знает принципы работы StatefulSets для управления состоянием приложений.
- Знает различия между динамическим и статическим предоставлением хранилищ.
- Знает механизмы управления данными при масштабировании и обновлении приложений.
- Умеет настраивать и управлять хранилищами данных в Kubernetes, включая создание и использование Persistent Volumes (PV) и Persistent Volume Claims (PVC).
- Умеет обеспечивать корректное поведение приложений при масштабировании и обновлении, сохраняя их данные.
- Владеет навыками работы с различными типами Volumes и их интеграцией в приложения.
- Владеет приёмами настройки и использования StatefulSets для обеспечения устойчивости приложений с состоянием.
- Знает механизмы масштабирования приложений в Kubernetes, включая Horizontal Pod Autoscaler (HPA) и Vertical Pod Autoscaler (VPA).
- Знает принципы управления ресурсами через запросы (requests) и лимиты (limits).
- Знает основы мониторинга приложений с использованием Prometheus и Grafana.
- Знает методы настройки алертинга и ключевых метрик для оценки производительности и стабильности приложений.
- Умеет настраивать HPA и VPA для автоматического масштабирования приложений на основе метрик нагрузки.
- Умеет конфигурировать запросы и лимиты ресурсов для обеспечения стабильности работы приложений.
- Умеет интегрировать приложения с системами мониторинга, такими как Prometheus и Grafana.
- Умеет настраивать алертинг для своевременного выявления проблем и реагирования на них.
- Владеет навыками работы с инструментами мониторинга, включая создание пользовательских дашбордов в Grafana.
- Владеет методами настройки масштабируемости приложений, обеспечивающими их устойчивую работу под нагрузкой.
- Знает основы аутентификации и авторизации в Kubernetes, включая использование TLS, сертификатов и RBAC.
- Знает принципы настройки и применения Network Policies для ограничения сетевого трафика.
- Знает подходы к обеспечению безопасности контейнеров, включая минимизацию привилегий и сканирование уязвимостей.
- Знает лучшие практики для повышения безопасности в Kubernetes.
- Умеет настраивать и управлять правами доступа в кластере с использованием RBAC.
- Умеет применять Network Policies для управления сетевым взаимодействием между объектами в кластере.
- Умеет использовать инструменты для анализа и сканирования контейнеров на наличие уязвимостей.
- Владеет навыками настройки безопасной аутентификации и авторизации в Kubernetes.
- Владеет техниками ограничения сетевого трафика и повышения безопасности сетевого взаимодействия с использованием Network Policies.
- Владеет приёмами работы с инструментами безопасности контейнеров, такими как сканеры уязвимостей и средства анализа конфигураций.
- Знает принципы работы систем CI/CD, таких как Jenkins, GitLab CI/CD и Argo CD, и их применение для автоматизации развёртывания.
- Знает основы паттернов GitOps для управления инфраструктурой через декларативные конфигурации.
- Знает особенности работы с контейнерными реестрами и управления образами.
- Знает подходы к безопасному управлению секретами и конфигурациями в процессах CI/CD.
- Умеет настраивать и оптимизировать CI/CD конвейеры для автоматизации процессов тестирования и развёртывания.
- Умеет управлять образами контейнеров: их версионированием, хранением и безопасной доставкой.
- Умеет использовать механизмы безопасного хранения и передачи секретов в рамках CI/CD процессов.
- Владеет навыками работы с популярными инструментами CI/CD (Jenkins, GitLab CI/CD, Argo CD) и их интеграцией с Kubernetes.
- Владеет методами безопасной работы с контейнерными реестрами, включая аутентификацию, доступ и управление образами
- Владеет практическими подходами к защите конфигураций и секретов в CI/CD пайплайнах.
- Знает основы архитектуры ОС Linux, включая взаимодействие между user space и kernel space.
- Знает назначение и функции системных вызовов в работе приложений.
- Знает основы безопасности в Linux: права доступа, управление пользователями и группами.
- Умеет использовать системные инструменты для анализа и управления ресурсами ОС.
- Умеет выполнять основные операции управления процессами: запуск, мониторинг, изменение приоритетов.
- Владеет практическими методами конфигурации операционной системы для обеспечения безопасности и эффективности.
Содержание учебной дисциплины
- Архитектура и механизмы операционной системы Linux
- Изоляция и ограничение ресурсов в Linux
- Основные объекты и примитивы Kubernetes
- Оркестрация контейнеров с Kubernetes
- Сетевые технологии в Kubernetes
- Хранение данных и состояние в Kubernetes
- Масштабирование, мониторинг и оптимизация
- Безопасность и лучшие практики
- CI/CD и интеграция с облачными сервисами
Промежуточная аттестация
- 2024/2025 3rd module0.39 * Домашние задания + 0.05 * Коллоквиум + 0.12 * Лабораторные работы + 0.24 * Тесты + 0.2 * Экзамен
Список литературы
Рекомендуемая основная литература
- Kubernetes Secrets management, Bueno, A. B., 2023
- Linux. Сборник рецептов : кн. практ. советов для пользователей и системных администраторов, Шредер, К., 2006
- Паттерны Kubernetes : шаблоны разработки собственных облачных приложений, Ибрам, Б., 2020
Рекомендуемая дополнительная литература
- Linux system programming, Love, R., 2007
- Linux на практике, Бреснахэн, К., 2017
- Командная строка Linux : полное руководство, Шоттс, У., 2021