# Kubernetes

*Добро пожаловать на курс Kubernetes Admin!*

На этом курсе вы научитесь развёртывать, обслуживать и масштабировать self-hosted-кластеры Kubernetes. Вы освоите инструменты администратора Kubernetes и пройдёте путь от установки компонентов кластера до настройки отказоустойчивости, мониторинга, логирования и автоматического масштабирования.

### О технологии

Kubernetes — это платформа для оркестрации контейнерных приложений. Вы разберётесь во взаимодействии компонентов Control Plane, изучите устройство и обслуживание etcd, научитесь создавать кластеры с помощью Kubeadm и Kubespray и обеспечивать их высокую доступность. Вы также познакомитесь с инструментами управления ресурсами, входящим трафиком, TLS-сертификатами, логами и метриками.

### О практике

Вы будете развёртывать и обновлять кластеры Kubernetes, восстанавливать сертификаты, настраивать HA-конфигурацию и управлять ресурсами приложений. Вы установите Ingress-контроллер и Cert-manager, развернёте стек логирования на базе Elasticsearch, Kibana и Fluent Bit, настроите Prometheus Stack и реализуете масштабирование приложений на основе пользовательских метрик. В итоговом проекте вы объедините полученные навыки и подготовите инфраструктуру Kubernetes с мониторингом, логированием, резервным копированием и управлением ресурсами.

### О программе

Курс состоит из 17 уроков, которые последовательно проведут вас от знакомства с особенностями self-hosted-инфраструктуры до самостоятельного развёртывания и настройки кластера Kubernetes:

1. **Зачем вам self-hosted** — сценарии использования self-hosted-кластеров и взаимодействие компонентов Control Plane.
2. **Установка и обслуживание etcd** — развёртывание отказоустойчивого кластера etcd, настройка mTLS и восстановление данных.
3. **Kubeadm: инициализация кластера Kubernetes** — подготовка операционной системы, установка containerd и создание кластера.
4. **Kubeadm: обновление сертификатов и обслуживание кластера** — диагностика компонентов, управление сертификатами и восстановление работоспособности кластера.
5. **Kubeadm: обновление кластера** — последовательное обновление Control Plane и worker-нод.
6. **Инструменты развёртывания. Kubespray** — автоматизированное развёртывание Kubernetes с помощью Ansible.
7. **Kubespray: обновление кластера** — подготовка и выполнение последовательного обновления Kubernetes.
8. **Kubespray и Kubeadm. HA-конфигурация** — создание отказоустойчивого Control Plane и настройка балансировки запросов к API-серверу.
9. **Распределение ресурсов. Квоты** — управление потреблением ресурсов с помощью ResourceQuota и LimitRange.
10. **Вертикальное масштабирование** — настройка Vertical Pod Autoscaler и анализ рекомендаций по ресурсам.
11. **Введение в Helm** — создание чартов, шаблонизация манифестов и управление релизами.
12. **Развёртывание Ingress-контроллера** — настройка входящего трафика и Basic-аутентификации.
13. **Cert-manager** — автоматизация выпуска и обновления TLS-сертификатов.
14. **Развёртывание ELK-стека** — настройка хранения, сбора и визуализации логов.
15. **Развёртывание Prometheus Stack** — установка компонентов мониторинга и сбор метрик приложений.
16. **Развёртывание Prometheus Adapter. Custom Metrics** — подключение пользовательских метрик и настройка горизонтального масштабирования.
17. **Итоговый проект** — развёртывание кластера Kubernetes с мониторингом, логированием, резервным копированием, TLS-сертификатами и ограничением ресурсов.