Целевая аудитория
- инженеры DevOps
- системные администраторы
- разработчики
Предварительные требования
опыт работы администратором в системе Linux не менее года, базовые знания стека сетевых протоколов TCP/IP, базовые навыки программирования в shell.
Приобретаемые знания и навыки
По окончании курса слушатели будут:
уметь:
- устанавливать и производить настройку docker на архитектуре Linux
- работать с реестром, разворачивать и изменять образы docker, работать с контейнерами docker, с файлами конфигурации, настраивать сеть и хранилище
- конфигурировать безопасность приложений
- разворачивать и выполнять настройку кластера Swarm
- развёртывать кластер kubernetes
- управлять кластером kubernetes - настраивать приложения, узлы, поды, сервисы
- управлять масштабированием приложений в kubernetes
- поддерживать работоспособность кластера kubernetes, выполнять монитортинг, журналирование и выявлять проблемы
знать:
- архитектуру docker;
- стек команд docker и docker-compose;
- механизмы развёртывания, настройки и управления приложениями в docker
- реестры docker;
- архитектуру kubernetes и основные ресурсы кластера;
- процедуру развёртывания кластера kubernetes;
- стек команд kubectl;
- формат манифеста yaml для основных ресурсов;
- базовые средства для мониторинга и выявления проблем;
- принципы и технологии функционирования выбранной интеграционной платформы
- технические условия соглашения об уровне обслуживания сопровождаемого интеграционного решения.
Программа курса
Модуль 1. Введение
- Микросервисная архитектура – обзор, основные компоненты и их назначение.
- Существующие контейнерные решения (podman, docker, rkt, cri-o, ..).
- Оркестрация кластера контейнеров (mesos, kubernetes, swarm ).
Модуль 2. Docker
- Проект, документация, ресурсы.
- Принцип работы, основные компоненты, установка в Ubuntu.
- Образы и репозитории. Реестры. Работа с DockerHub.
- Базовые команды в контексте docker (ps, top, start/stop, login/logout, create/rm, exec, cp, pull/push, update, volume, network,…).Установка простого контейнера (httpd, mysqld, …) из репозитория DockerHub, его настройка.
- Базовая настройка портов, переменных и файловой системы.
- Работа с томами, публикацией каталогов и дисками.
- Настройка сетевой инфраструктуры.
- Ведение и сбор журналов.
- Настройка ресурсов cpu и ram, резервирование и лимиты.
- Работа с образами. Сборка образа, файл Dockerfile. Коммиты контейнеров, tar архивы. Export/Import, Save/Load. Сборка образа из бинарных файлов.
- Выгрузка образов в реестр DockerHub. Создание и сопровождение собственного реестра с безопасным доступом по локальной сети и регистрацией
- Работа с docker compose. YAML конфигурация. Сервисы. Примеры развёртывания связанных контейнеров, healthcheck.
- Управление контейнерами через приложение Portainer.
- Кластер Swarm. Развёртывание контейнеров и реплики, сопровождение, изменение конфигурации, откат, режим multi-manager, тестирование отказа узлов. Существующие проблемы и ограничения.
- Вопросы безопасности и производительности.
Модуль 3. Kubernetes: Теоретические основы.
- История проекта, основные ресурсы в сети.
- Базовые принципы, логическая и физическая архитектура кластера (Nodes, Pods, Replicas, Services, Volumes,...).
- Сетевая инфраструктура. Сети кластера и подов. Разрешение имён.
- Хранилище etcd.
- API-сервер, планировщик, развёртывание и реплики. Назначение узлов. Контроллеры.
Модуль 4. Установка и конфигурация узлов кластера: Workers и Master.
- Развёртывание и конфигурирования мастер узла.
- Служба kubelet.
- Основные системные ресурсы кластера на мастер узле (etcd, kube-apiserver, … ), просмотр их состояния и проверка.
- Развёртывание рабочих узлов.
- Основные системные ресурсы кластера на рабочем узле (kube-proxy,..)
- Общая проверка функциональности кластера, инструменты kubeadm, kubectl.
Модуль 5. Работа с кластером: ресурсы, приложения и сервисы.
- Обзор api ресурсов кластера.
- Формат манифестов: YAML и JSON. Обзор и примеры использования.
- Основные команды клиента k8s kubectl - введение и примеры использования.
- Контейнеры и поды (pods, модули).
- Чтение конфигурации ресурса. Применение измененной json или yaml конфигурации.
- Поды – метки, спецификации и назначение узлов. Примеры манифестов.
- Использование заданий. Jobs и CronJobs.
- Управление развертыванием приложения, стратегии Rolling Update. Ресурсы Deployment и ReplicaSet.
- Настройка и развёртывание DaemonSet.
- Обзор StatefullSet.
- Методы публикации сервисов (Service) и приложений. Метки и селекторы. Настройка сети - clusterIP и nodePort.
- Проксирование внутренних приложений кластера.
- Работа с Volume и Storage. Тома Persistent Volume (pv) и заявки Persistent Volume Claim (pvc). emptyDir, gitRepo, pvc (hostPath и nfs), обзор configMap, secret, dawnwardAPI
- Безопасность: регистрация и авторизация пользователей в кластере. Сервисные учётные записи. RBAC – роли и привязки ролей.
- Масштабирование кластера. Вертикальное и горизонтальное масштабирование (hpa).
- Обслуживание, откат и очистка узлов.
Модуль 6. Просмотр событий и мониторинг. Дополнительные ресурсы.
- kubectl CLI – подробно, настройки безопасности.
- Web dashboard - подробно.
- Управление сертификатами и секретами в k8s.
- Настройка кластера на использование локального сетевого реестра (docker registry:2).
- Репозитории приложений k8s. Работа с менеджером пакетов Helm.
- Мониторинг кластера, стек Prometheus-Grafana.
Документы об окончании курса
- Сертификат Учебного центра Noventiq
- Cертификат об обучении установленного образца