Краткое описание курса:
+ Знакомство с популярной системой оркестрации контейнеризированных приложений
+ Участники получат практические навыки использования Kubernetes с концептами DevOps - Continuous Integration, benchmark тестирование, мониторинг и пр.
+ Прагматичный подход который показывает как использовать Kubernetes в процессе разработки
Цель курса:
+ Практическое освоение навыков работы в проектах где активно используется Kubernetes
Целевая аудитория курса:
+ Если Вы Системный Инженер, DevOps Инженер, Full-stak или Backend разработчик который интересуется, любопытсвует или которого попросили тестировать и запускать код, Вы можете использовать Kubernetes чтобы сделать этот процесс проще и прозрачнее, независимо от того куда вы deploy’итесь. Ну а если вы ищите примеры в NodeJS и Python - это просто незаменимый курс для вас!
Получаемые знания и навыки:
По окончании курса слушатели научатся:
+ Понимать принцип работы основных элементов Kubernetes: Pod/Deployment/Stateful Set и тп.
+ Build’ить ПО в контейнеры
+ Деплоить и дебажить приложения запущенные в контейнерах внутри Kubernetes
+ Декларировать и добавлять конфигурацию через Kubernetes
+ Добавлять фидбек в код (тесты и другое)
+ Мониторить и измерять сервисы используя интеграционное тестирование
Необходимая предварительная подготовка:
+ Базовые знания операционной системы Linux
+ Умение пользоваться Git
Занятия проводятся дистанционно, с преподавателями.
Живое общение с преподавателями, инновационная Online платформа,
а также профессионально подобранный материал,
позволяют эффективно и максимально комфортно погрузиться в предмет,
сохраняя высокий уровень интереса и мотивации на протяжении всего обучения.
Продолжительность курса: 30 ак. часов. Набор на данный курс уже завершен
Online, 2 раза в неделю, с 20.00 - 22.00
Стоимость курса: 90000р.
Программа курса:
Занятие 1 - Вводное
- установка Kubernetes – инсталляция Kubectl, Minikube, Docker и запуск Minikube для валидации инсталляции. В этом блоке мы рассматриваем введение в концепты Kubernetes – Nodes, Pods, Containers, ReplicaSets, Deployments.
ДЗ и практика: Работа с Minikube на Вашей локальной Linux-машине, либо на облачном хостинге
Занятие 2
- упаковка приложений для запуска в Kubernetes. Посмотрим как упаковать приложение в контейнеры для использования в k8s с примерами на Python и Node.js
ДЗ и практика: работа с Github репозиторием, сбор учебного контейнера и push образа в реестр контейнеров.
Занятие 3
- взаимодействие с кодом в Kubernetes. Разберем как запускать контейнеры в Kubernetes, как связаться с ними, и познакомимся с фундаментом концептов Services, Labels и Selectors.
ДЗ и практика: работа с метками , сервисами и селекторами.
Занятие 4
- декларативная инфраструктура. Поместим приложение в декларативную структуру и посмотрим как развить его для утилизации концептов Kubernetes ConfigMaps, Annotations и Secrets.
ДЗ и практика: создание ConfigMaps, Annotations и Secrets для проекта.
Занятие 5
- pods и containers, жизненный цикл. Научимся вызвать hooks из приложений для того, чтобы разобраться, как Kubernetes запускает код, и посмотрим как закончить работу приложения изящно.
ДЗ и практика: работа с SIGTERM на примере Python, а также знакомство c liveness и readiness пробами.
Занятие 6, 7
- background Processing в Kubernetes. Запустим batch processing концепты – Job и CronJob и разберем как Kubernetes обеспечивает постоянство с Persistent Volumes, Persistent Volume Claims и Stateful Sets – наборами с сохранением состояния
ДЗ и практика: настройка Job и CronJob, создание Persistent Volume’ов и Stateful Sets
Занятие 8, 9
- мониторинг и метрики. Будем мониторить Kubernetes, используя Prometheus и Grafana. Поймаем и отобразим метрики на Dashboards о Kubernetes в общем а также о приложениях, запущенных в нем.
Познакомимся с пакетным менеджером Helm 3
ДЗ и практика: создаем и настраиваем наш Prometheus, используя Helm 3, получаем и работаем с метриками в Grafana
Занятие 10, 11
- логирование и трейсы. Посмотрим как собирать логи с Kubernetes и ElasticSearch, FluentD и Kibana и как можно настроить распределенное логирование с Jaeger.
ДЗ и практика: собираем EFK, настраиваем Jaeger
Занятие 12, 13
- интеграционное тестирование. Разбераем стратегии тестирования которые можно использовать в k8s, а также использовать Kubernetes в интеграционном и e2e тестах
ДЗ и практика: создаем интеграционные тесты для наших примеров и настраиваем pipelin’ы в TravisCI, Jenkins и GithubActions
Занятие 14
- траблшутинг типичных проблем и следующие шаги. Основные боли и как их решить плюс несколько проектов обзорно внутри экосистемы которые могут быть интересны разработчикам и для процесса разработки. Практика использование Kubernetes в облачных провайдерах и обзор Kubernetes IDE (K9S) для работы и решения типичных проблем в наших примерах.