Длительность: 25 ч.
Описание
Существенной частью современной инфраструктуры являются контейнеры, и для управления ими нужны надежные средства. Технология Kubernetes стала одной из наиболее важных и эффективных платформ оркестрации для решения этих задач.
Данный курс предназначен для тех, кто только начинает знакомство с Kubernetes. Даже если вы пока ничего не знаете о Kubernetes, пройдя данный курс и выполнив все практические задания по программированию, вы сможете проводить развертывание собственных приложений на платформе Kubernetes.
В начале курса приводится обзор современных практик DevOps. Это поможет вам правильно ориентироваться в последующем материале.
Затем дается общее представление о технологии Kubernetes, архитектуре YAML, ее основных компонентах и сервисах, а также разъясняется, как они используются для создания инфраструктуры.
Вы научитесь описывать сущности с помощью языка YAML и читать другие описания, которые встречаются в книгах, документации и т.д.
Вы узнаете, как правильно настроить кластер Kubernetes на компьютере. В дальнейшем вы сможете использовать полученные знания в отношении облачной инфраструктуры сторонних провайдеров. Кроме того, вы освоите такой инструмент, как kubectl.
Шаг за шагом мы изучим основные сущности Kubernetes, такие как поды, метки, аннотации, наборы реплик и др., а также научимся управлять ими. Вы узнаете о сетевых элементах Kubernetes и о том, как создавать различные сервисы, научитесь использовать объемы для временного и постоянного хранения данных. Благодаря полученным знаниям вы сможете запускать приложения с сохранением и без сохранения состояния.
В конце курса обсуждается темы безопасности. Вы узнаете, что такое RBAC, и научитесь создавать пользователей, а также управлять ими и их разрешениями.
Данный курс поможет получить представление о том, что из себя представляет платформа Kubernetes и как она работает, а также приобрести навыки развертывания кластера Kubernetes и приложений. Кроме того, вы научитесь устранять неисправности в случае неправильной работы системы.
Разбираемые темы
0. Начало (теория – 25 мин, практика – 20 мин)- Конфигурация настройки и подключения
1. Введение. Общая картина (теория – 40 мин)
- Концепция DevOps
- Обзор современных подходов в DevOps
2. Kubernetes (теория – 45 мин)
- Обзор платформы Kubernetes: истории ее создания, основные понятия, архитектура и компоненты.
3. Развертывание кластера Kubernetes (теория – 30 мин, практика – 30 мин)
- Настройка локального кластера
- Получение статуса кластера
4. Kubernetes API (теория – 40 мин, практика – 45 мин)
- Использование API для взаимодействия с Kubernetes
- Описание утилиты kubectl
- Описание и настройка контекста
- Проверка статуса кластера с помощью kubectl
5. Описание объектов Kubernetes (теория – 30 мин, практика – 30 мин)
- Основные сведения о YAML
6. Пространства имен (теория – 20 мин, практика – 30 мин)
- Описание пространств имен
- Изучение файлов манифеста
- Создание пространства имен
7. Поды (теория – 1 ч 20 мин, практика – 1 ч 20 мин)
- Описание подов и основных операций с ними: создание, перечисление, удаление, получение доступа
- Жизненный цикл пода
- Управление ресурсами
8. Управление объектами (теория – 25 мин, практика – 15 мин)
- Различные способы управления объектами, плюсы и минусы
- Создание спецификации из живых объектов
9. Полезные инструменты (теория – 30 мин, практика – 30 мин)
- Инструменты экосистемы Kubernetes и сторонних провайдеров
- Запуск инструментов для решения задач
10. Управление ресурсами (теория – 30 мин, практика – 30 мин)
- Введение в управление ресурсами
- Применение к ЦП и запросам памяти, ограничения
11. Метки и аннотации (теория – 25 мин, практика – 20 мин)
- Описание меток и аннотаций
- Применение меток и аннотаций к подам и выбор объектов по критериям
12. ReplicaSets (наборы реплик) (теория – 40 мин, практика – 30 мин)
- Описание наборов ReplicaSets, как они связаны с подами
- Создание, проверка, масштабирование и удаление ReplicaSets
13. Развертывания (теория – 1 ч 30 мин, практика – 1 ч 40 мин)
- Описание развертываний и управление ими
- Общие стратегии развертывания, работа с историей развертываний
- Откат неудачных развертываний
14. Сервисы (теория – 1 ч 20 мин, практика – 1 ч)
- Описание сервисов и способов их обнаружения; как организованы сетевые ресурсы и как выполняются проверки готовности
- Создание сервиса на практике
15. ConfigMaps (теория – 35 мин, практика – 20 мин)
- Описание ConfigMaps, как сохранить текст и бинарные значения, как получить значения из них через файлы и переменные среды
16. Secrets (теория – 20 мин, практика – 20 мин)
- Описание Secrets и их подтипов, как сохранить необработанные и закодированные значения, как получить значения из них через файлы и переменные среды
17. Объемы (теория – 25 мин, практика – 30 мин)
- Понятие объема
- Описание emptyDir, hostPath и постоянного объема
- Статическое и динамическое предоставление с помощью требований
18. StatefulSet (теория – 1 ч, практика – 1 ч)
- Описание StatefulSet, запуск приложений с сохранением состояния, управление StatefulSet
19. Безопасность (теория – 20 мин, практика – 20 мин)
- Описание модели управления доступом на основе ролей, учетные записи сервисов, роли и привязки ролей, политики безопасности подов
20. Что дальше (теория – 10 мин, практика – 20 мин)
- Краткое резюме, рекомендуемые книги, финальный тест
Цели
- Получить представление о технологии Kubernetes и ее возможностях
- Разобраться в архитектуре Kubernetes
- Выполнить развертывание кластера Kubernetes на ноутбуке
- На практике выполнить основные операции с объектами Kubernetes
- Выполнить развертывание приложений с одним и несколькими контейнерами в Kubernetes
- Использовать сервисы Kubernetes для структурирования многоуровневых приложений
- Научиться управлять развертыванием приложений с выпуском в Kubernetes
- Обеспечить соблюдение предварительных условий и работоспособность контейнеров
- Научиться управлять конфигурационными, секретными и постоянно сохраняемыми данными в Kubernetes
- Рассмотреть популярные инструменты и темы, связанные с Kubernetes в рамках экосистемы
Целевая аудитория
Основная:- Инженеры DevOps
- Системные администраторы
- Разработчики полностековых приложений
- Инженеры по эксплуатации
- Все специалисты, которые занимаются созданием, развертыванием или эксплуатацией ПО на серверах
- Разработчики
- Архитекторы ПО
- Проектировщик систем
Предварительная подготовка
-
Знание Docker
- Знание основ Linux (ssh, работа с файлами)