Пройдите короткий тест — определим ваш текущий уровень и подскажем, с какого курса лучше начать обучение
Шаг 1 из 3 · База
С основами Kubernetes вы знакомы. Теперь проверим, насколько уверенно вы разбираетесь в типовых проблемах: Service, readinessProbe, ресурсах и RBAC.
Вы хорошо справляетесь с типовыми задачами Kubernetes. Остался последний шаг — проверим знания на более сложных сценариях, близких к production.
Отправляем данные…
Введение в Kubernetes. Создаем кластер и деплоим туда приложение
Курс для продвинутых: разбираем в теории и на практике тонкости установки и конфигурации production-ready кластера
88 000 ₽
Без скидки
110 000 ₽
Введение в Kubernetes. Создаем кластер и деплоим туда приложение
Узнаете, как собирать метрики, настраивать алерты для оперативного поиска проблем в кластере
76 000 ₽
Без скидки 95 000 ₽
Мы подготовили для вас ответы на самые частые вопросы по Kubernetes. Время чтения материала — около 10 минут.
Основы
Kubernetes - это платформа с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Простыми словами, это система, которая автоматически управляет работой приложений, распределяет их между серверами, следит за состоянием и поддерживает работоспособность приложений при сбоях отдельных компонентов.
Название K8s - это сокращение от Kubernetes, в котором восемь букв между первой буквой K и последней s заменены цифрой 8. Оба варианта обозначают одну и ту же платформу.
Kubernetes работает по принципу желаемого состояния: пользователь задает конфигурацию приложения, а платформа стремится поддерживать ее в кластере.
Кластер Kubernetes состоит из управляющей части (control plane) и рабочих узлов (worker nodes), на которых запускаются приложения. Основные компоненты - API server, scheduler, controller manager, хранилище etcd, kubelet и среда выполнения контейнеров.
Control plane - управляющая часть Kubernetes, которая обрабатывает запросы, планирует размещение подов и поддерживает желаемое состояние кластера. В ее состав входят API server, scheduler, controller manager и хранилище etcd.
К альтернативам Kubernetes относятся Docker Swarm, HashiCorp Nomad и управляемые облачные сервисы, например Amazon ECS и Google Cloud Run. OpenShift также построен на Kubernetes, но дополняет его инструментами управления и безопасности.
Docker предназначен для создания образов и запуска контейнеров, а Kubernetes для оркестрации контейнеризированных приложений в кластере.
Эти технологии дополняют друг друга: Docker можно использовать для сборки образов, а Kubernetes — для управления приложениями на их основе. При этом Kubernetes не использует Docker Engine в качестве своего контейнерного runtime.
Объекты и ресурсы
Поды (Pods) - минимальные развертываемые единицы Kubernetes, содержащие один или несколько контейнеров. Контейнеры внутри пода используют общее сетевое пространство и могут совместно работать с томами хранения.
Контейнер - это изолированная среда для запуска приложения и его зависимостей на основе образа. В Kubernetes контейнеры запускаются внутри подов с помощью совместимой среды выполнения, например containerd или CRI-O.
Namespace - это механизм логического разделения ресурсов внутри одного кластера Kubernetes. Он позволяет организовывать ресурсы по проектам и командам, а также настраивать права доступа и квоты, но сам по себе не обеспечивает полной изоляции.
ConfigMap - это объект Kubernetes для хранения неконфиденциальных настроек приложений отдельно от контейнерного образа. Его данные можно передавать в контейнеры через переменные окружения или файлы, а для паролей и токенов следует использовать Secret.
DaemonSet - это ресурс Kubernetes, который обеспечивает запуск пода на каждом подходящем узле кластера. Его часто используют для агентов мониторинга, сбора логов, сетевых компонентов и средств безопасности.
Статус Evicted означает, что под был вытеснен с узла, чаще всего из-за нехватки памяти, дискового пространства или inode.
Sidecar - дополнительный контейнер, который запускается в одном поде с основным приложением и выполняет вспомогательные задачи. Например, он может собирать логи, передавать метрики или обрабатывать сетевой трафик.
StatefulSet - ресурс Kubernetes для управления приложениями, которым нужны стабильные идентификаторы подов и постоянное хранилище. Его используют для баз данных и других приложений с состоянием, однако сам по себе он не обеспечивает репликацию данных или отказоустойчивость приложения.
Сеть и хранилище
Cilium - это сетевое решение для Kubernetes, основанное на технологии eBPF. Оно обеспечивает сетевое взаимодействие между приложениями, поддерживает сетевые политики и предоставляет инструменты наблюдаемости и контроля трафика.
Ingress - это API-ресурс, описывающий правила маршрутизации HTTP- и HTTPS-трафика к сервисам внутри кластера. Для обработки этих правил необходим Ingress-контроллер, а в современных инфраструктурах также может использоваться Gateway API.
Istio - это сервисная сетка (service mesh), которая управляет взаимодействием между сервисами в распределенных приложениях. Она поддерживает шифрование трафика, политики доступа, маршрутизацию запросов и сбор телеметрии.
Longhorn - это система распределенного блочного хранения для Kubernetes, предназначенная для управления постоянными томами приложений. Она поддерживает репликацию данных, резервное копирование и восстановление при соответствующей настройке инфраструктуры.
Развертывание и инструменты
Основные риски безопасности Kubernetes связаны с избыточными правами доступа, открытым API, уязвимыми образами контейнеров и неправильной настройкой сетевых политик. Для защиты используют RBAC, регулярные обновления, сканирование образов и ограничение привилегий контейнеров.
Kubernetes можно развернуть локально с помощью minikube или kind, самостоятельно на серверах через kubeadm либо воспользоваться управляемым облачным сервисом. Также существуют другие дистрибутивы Kubernetes и способы установки, например k3s и MicroK8s, которые подходят для разных сценариев использования. Выбор зависит от целей: для обучения достаточно локального кластера, а промышленная среда требует настройки безопасности, мониторинга и отказоустойчивости.
Для работы с Kubernetes подходят Visual Studio Code с профильными расширениями, IntelliJ IDEA с поддерживаемыми плагинами, а также графические инструменты Lens и Headlamp.
Rancher- платформа для централизованного управления кластерами Kubernetes через единый интерфейс. Она помогает администрировать несколько кластеров, настраивать доступ пользователей и управлять инфраструктурой.
Prometheus - система мониторинга, которая собирает и хранит метрики и позволяет анализировать их с помощью PromQL. Для развертывания можно использовать Helm chart или создать YAML-манифесты с ConfigMap, Deployment и Service.