DevOps, Linux, DevOps
40 ак.часов
Работа с контейнерами Docker и введение в администрирование кластера Kubernetes
-
О КУРСЕ
Программа повышения квалификации. Настоящая программа предназначена для системных администраторов Linux, системных и сервисных инженеров и инженеров профилей DevOps и BigData.
DevOps-инженеры
Системные администраторы
Разработчики
Модуль 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
-
Получаемый документ:
или
* в зависимости от вида реализуемой программы и уровня образования слушателя
-
Цель курса:
Уверенно управлять инфраструктурой контейнеров Docker, разворачивать и управлять микросервисными приложениями в кластере Kubernetes
-
Для успешного прохождения курса необходимы:
◉ опыт работы администратором в системе Linux не менее года
◉ базовые знания стека сетевых протоколов TCP/IP
◉ базовые навыки программирования в shell -
По окончании курса слушатели смогут:
🗸 устанавливать и производить настройку docker на архитектуре Linux;
🗸 работать с реестром, разворачивать и изменять образы docker, работать с контейнерами docker, с файлами конфигурации, настраивать сеть и хранилище;🗸 конфигурировать безопасность приложений;🗸 разворачивать и выполнять настройку кластера Swarm;🗸 развёртывать кластер kubernetes;🗸 управлять кластером kubernetes - настраивать приложения, узлы, поды, сервисы;🗸 управлять масштабированием приложений в kubernetes;🗸 поддерживать работоспособность кластера kubernetes, выполнять монитортинг, журналирование и выявлять проблемы
-
После успешного окончания курса, слушатель будет знать:🗸 архитектуру docker;🗸 стек команд docker и docker-compose;🗸 механизмы развёртывания, настройки и управления приложениями в docker;🗸 реестры docker;🗸 архитектуру kubernetes и основные ресурсы кластера;🗸 процедуру развёртывания кластера kubernetes;🗸 стек команд kubectl;🗸 формат манифеста yaml для основных ресурсов;🗸 базовые средства для мониторинга и выявления проблем;🗸 принципы и технологии функционирования выбранной интеграционной платформы;🗸 технические условия соглашения об уровне обслуживания сопровождаемого интеграционного решения


