Складчина: Эксплуатация и разработка в Kubernetes [Евгений Ахметзянов, Кирилл Демченко, Дарья Меленцова]
Kubernetes даёт вам фреймворк для гибкой работы распределённых систем
Контейнеры — отличный способ связать и запустить ваши приложения, но контейнерами необходимо управлять, и с этим как раз поможет Kubernetes. Он занимается масштабированием приложений и обработкой ошибок в них, предоставляет шаблоны развёртывания и многое другое.
Это курс для специалистов с опытом, которые хотят профессионально вырасти
Нужно знать основы программирования, операционную систему Linux и популярные DevOps-инструменты, такие как Git и Docker
Программа:
Знакомство с Kubernetes
- Знакомство с курсом
- Узнаете, как организовано обучение: из чего состоит программа курса, как устроен учебник, какие учебные активности вас ждут.
- Настройка окружения
- Узнаете, что такое Kubernetes, установите и настроите основные утилиты, которые нужны для работы с кластером и создания контейнеров.
- Упаковка приложения в контейнер
- Познакомитесь с Docker, Image, Container Registry и Dockerfile. Напишете инструкцию для создания образа с приложением, поднимете приложение локально в Docker и проверите, корректно ли оно работает.
- Погружение в Kubernetes
- Напишете инструкции по развёртыванию приложения на понятном для Kubernetes языке «манифестов» — специальных YAML‑файлов. Убедитесь, что приложение работает корректно.
- Работа с Ingress и вывод приложения в мир
- Сделаете приложение доступным для внешнего мира по доменному имени, чтобы к запущенному приложение в K8s было удобно подключаться.
- Приложения в облаке
- Узнаете о принципах Cloud Native, которые используются для запуска приложений в облачной инфраструктуре. Ключевые из них: контейнеризация, микросервисная архитектура и оркестрация контейнеров.
- Docker и Kubernetes
- Разберётесь в работе контейнеров: как они запускаются и какие механизмы используют. Затем запустите своё приложение в Docker‑контейнере.
- Базовые абстракции в Kubernetes
- Запустите приложение в Kubernetes.
- Развернёте приложение в Kubernetes и запустите его с помощью утилиты kubectl, создадите базовые абстракции
Проектирование, создание приложений и управление ими в Kubernetes
- Stateful- и stateless-приложения
- Познакомитесь с понятиями stateless и stateful, узнаете об их особенностях, преимуществах и недостатках. Научитесь классифицировать приложения с точки зрения stateless и stateful.
- Deployment, запуск stateless-приложений
- Узнаете, как связаны объекты Kubernetes и YAML‑манифесты, познакомитесь с абстракциями ReplicaSet и Deployment, а также развернёте в кластере stateless-приложение.
- StatefulSet, запуск stateful‑приложений
- Поймёте, чем StatefulSet отличается от Deployment и как правильно с ним работать.
- Абстракция DaemonSet
- Познакомитесь с «демонами» и узнаете, как с помощью DaemonSet запускать приложение в кластере.
- Job, CronJob
- Научитесь управлять процессами, которые завершаются после выполнения работы с помощью абстракции Job, и запускать подобные задачи по расписанию с помощью CronJob.
- Архитектура Kubernetes
- Узнаете, из каких компонентов состоит кластер, как эти компоненты взаимодействуют друг с другом, какая роль отводится каждому из них в процессе запуска контейнеров и управления ими.
- Сеть в Kubernetes
- Поймёте, как поды и узлы (англ. nodes) связываются между собой, а также расширите свои знания о типах Service.
- Service Discovery
- Разберётесь, как приложения в Kubernetes взаимодействуют друг с другом и с сервисами внутри и вне кластера, а также как реализуется механизм динамического обнаружения нагрузок и как маршрутизируется трафик.
- Настроите взаимодействие приложений в кластере с помощью механизма Service Discovery, предоставите внешний доступ к приложению и маршрутизируете трафик при помощи Ingress, выполните траблшутинг в Kubernetes
- Жизненный цикл подов
- Рассмотрите, какие состояния у контейнеров и подов могут быть в Kubernetes. Узнаете, на какие инструменты опирается платформа, чтобы управлять подом, как смотреть журнал событий, какие события бывают в кластере.
- Управление жизненным циклом подов
- Поймёте, какие сигналы Kubernetes может посылать запущенным в нём приложениям и как он это делает.
- Структурные паттерны
- Разберёте структурные паттерны в Kubernetes, которые помогают создать более чёткую иерархию компонентов и улучшить взаимодействие между сервисами.
- Развернёте небольшое самописное приложение в Kubernetes и настроите различные пробы, чтобы сделать его более надёжным
- Введение в Helm и управление пакетами в Kubernetes
- Разберёте, что такое пакетные менеджеры и какой из них подходит для приложений в Kubernetes. Узнаете, что из себя представляет Helm и какие проблемы может решать, из чего состоит Helm-чарт, как пользоваться шаблонами и как можно сформировать свой Helm-пакет.
- Разработка Helm-чартов
- Погрузитесь в процесс создания собственного чарта: подробно рассмотрите структуру чарта, возможности шаблонизации, а также инструменты для диагностики и устранения ошибок при разработке чарта.
- Управление Helm-релизами
- Узнаете, как можно управлять Helm-релизами, задавать параметры, устанавливать релизы, откатывать их или удалять при необходимости.
- Продвинутые возможности Helm и управление зависимостями
- Поймёте, как управлять зависимостями чартов, выполнять операции на разных этапах их жизненного цикла и использовать плагины для расширения возможностей Helm.
- Управление ресурсами: введение
- Поймёте, какие ресурсы кластера Kubernetes нам доступны, какое количество ресурсов на самом деле можно использовать. Научитесь заранее оценивать, насколько кластер Kubernetes готов для развёртывания нашего приложения.
- Что такое Scheduler и зачем это нужно
- Узнаете, как Kubernetes выбирает узел, на котором стоит разместить под, что такое запрашиваемые ресурсы и каким образом можно ограничить их потребление, познакомитесь с механизмами распределения ресурсов узлов между подами.
- Умное размещение приложения в кластере
- Разберётесь в отказоустойчивости и доступности приложений — насколько Kubernetes заботится об этих факторах «из коробки», какие инструменты предоставляет и что мы можем получить при их использовании.
- Виды масштабирования в Kubernetes
- Погрузитесь в масштабирование в Kubernetes: узнаете, какие бывают виды масштабирования и чем они различаются, какой вид использовать в том или ином случае и как это делать.
- Практическое применение автомасштабирования в Kubernetes
- Поймёте, как ведёт себя автомасштабирование в реальных условиях и как можно дорабатывать его в зависимости от специфики приложения.
- Понятие CI/CD-конвейера и его назначение
- Познакомитесь с практиками и методиками CI/CD, инструментами для их реализации, поймёте связь между CI/CD и Kubernetes, научитесь решать проблемы при помощи CI/CD‑конвейера и рассмотрите лучшие практики в этом.
- CI/CD-конвейер на примере GitLab CI
- Подготовите окружение и познакомитесь с пайплайном, настроите раннер/воркер для CI/CD‑инструмента, развернёте приложение.
- Настройка версионирования в GitLab
- Рассмотрите подходы к версионированию, их преимущества и недостатки. Разберёте пример настройки версионирования в GitLab. Узнаете, как работают helm lint и kubectl --dry-run.
- Организуете процесс Continuous Delivery при помощи GitLab CI
- Введение в мониторинг приложений
- Разберётесь, что такое мониторинг, какие перед ним стоят цели и задачи, какие есть виды классификации мониторинга.
- Мониторинг приложений Kubernetes с помощью Prometheus
- Познакомитесь с Prometheus: узнаете, как использовать его инструменты для мониторинга приложений, как собирать разные метрики с его помощью и какую функциональность он предлагает.
- Продвинутые стратегии масштабирования с использованием Prometheus
- Научитесь масштабировать приложения в соответствии с реальными условиями нагрузки, избегать избыточного или недостаточного использования ресурсов, создавать более стабильную и предсказуемую инфраструктуру.
- Настроите мониторинг приложения в K8s
- Обзор продвинутых стратегий развёртывания в Kubernetes
- Познакомитесь с базовыми концепциями продвинутых стратегий развёртывания: Blue/Green, Canary, Rolling Updates. Поймёте их различия, преимущества и недостатки, а также как эти подходы помогают минимизировать простои и риски при вводе новых версий приложений.
- Практическая реализация Blue/Green-развёртывания
- Настроите Blue/Green-развёртывание, научитесь использовать Service и Ingress для переключения трафика.
- Развёртывание Canary и прогрессивный выпуск изменений
- Узнаете, как Canary-развёртывание позволяет постепенно вводить новую версию для части трафика, анализировать её работу по метрикам и принимать решение о полном переключении или откате.
- Выберете и реализуете одну стратегию развёртывания приложения
Цена 96000 руб.
Скрытая ссылка