Разграничение зон контроля пользователей Yandex Managed Service for Kubernetes и Yandex Cloud
Модель разделения ответственности (Shared Responsibility Model) для Managed Service for Kubernetes в Yandex Cloud распределяет зоны контроля между облачным провайдером и пользователем.
Зона контроля Yandex Cloud
В зону контроля Yandex Cloud входят:
- Управляемый Control Plane.
- Резервное копирование и восстановление.
- Обслуживание кластера.
- Инфраструктура кластера.
- Системные плагины.
Управляемый Control Plane
Yandex Cloud управляет всеми компонентами Control Plane в Kubernetes и отвечает за их корректную работу. Таким образом обеспечивается заявленная функциональность:
- Отказоустойчивая работа кластера или компонентов Control Plane при выборе типа мастера Высокодоступный с размещением хостов в трех зонах доступности.
- Процесс обновления компонентов Control Plane в автоматическом режиме или по запросу пользователя при наличии свежих версий.
- Мониторинг компонентов Control Plane, реакция на алерты кластеров Managed Service for Kubernetes по проблемам на уровне Control Plane.
- Сбор и хранение логов Control Plane при включенной настройке Запись логов.
Примечание
Пользователь не может изменять конфигурацию компонентов Control Plane напрямую. Влияние на конфигурацию ограничено опциями, доступными при создании или изменении кластера. Например, пользователь может включить интеграцию с федерацией сервисных аккаунтов на уровне кластера Managed Service for Kubernetes.
Подробнее о компонентах Control Plane в Kubernetes
Резервное копирование и восстановление
Yandex Cloud обеспечивает мониторинг, резервное копирование и восстановление etcd.
Обслуживание кластера
Yandex Cloud обеспечивает выпуск обновлений безопасности:
- для компонентов Control Plane;
- для операционной системы ВМ мастера и узлов при обнаружении уязвимостей;
- для системных компонентов на узлах.
Инфраструктура кластера
Yandex Cloud управляет следующими компонентами инфраструктуры кластера:
-
Сеть. Yandex Cloud обеспечивает создание, настройку и удаление сетевых балансировщиков Yandex Network Load Balancer с помощью объекта
Serviceс типомLoadBalancer. -
Хранилище. Yandex Cloud обеспечивает создание, настройку, подключение к подам и удаление сетевых дисков Yandex Cloud с помощью объектов
PersistentVolume. -
Системные компоненты на узлах. Yandex Cloud устанавливает на узлы следующие компоненты:
- Сервисы
kubeletиkube-proxy(опционально). - Среда запуска контейнеров.
- Сетевые плагины CNI (Calico / Cilium).
- CSI-драйверы для интеграции с облачным хранилищем.
- Гостевая операционная система (Ubuntu).
- Сервисы
-
Вычислительная и сетевая инфраструктура виртуальных машин. Yandex Cloud обеспечивает инфраструктуру виртуальных машин, на которых располагаются мастер и узлы.
-
Интеграция с другими сервисами Yandex Cloud. Обеспечивается взаимодействие с сервисами Yandex Identity and Access Management, Yandex Virtual Private Cloud, Yandex Container Registry, шифрование через Yandex Key Management Service.
Системные плагины
Примечание
Пользователь не может изменять или удалять системные плагины.
Для Managed Service for Kubernetes используются системные плагины под управлением Yandex Cloud:
- csi-driver — ресурс
DaemonSet, который устанавливается на все узлы кластера и обеспечивает работу csi-driver . - kube-proxy
— поддерживает сетевые правила на узлах. Эти правила разрешают сетевое взаимодействие с подами из сетевых сессий внутри и снаружи кластера. - coreDNS
— основной DNS-сервер, отвечающий за разрешение имен внутри кластера Kubernetes. - cilium
— управляет сетевыми политиками. Включает в себя компоненты cilium-cni, cilium-agent, cilium-operator, hubble. При использовании замещает плагин kube-proxy. - cluster-autoscaler
— управляет автоматическим масштабированием групп узлов. - metrics-server
— собирает метрики использования ресурсов (CPU, RAM) с узлов, подов и ограниченно мастеров. - node-problem-detector — обнаруживает проблемы на узлах кластера и сообщает о них.
- nvidia-device-plugin — позволяет узлам кластера автоматически предоставлять и управлять графическими процессорами (GPU) для приложений в контейнерах.
- ip-masq-agent — управляет маскарадингом IP-адресов в кластере, чтобы контейнеры могли взаимодействовать с внешними сервисами, а узлы кластера могли обращаться к внешним IP-адресам.
- metadata-server — ресурс
DaemonSet, который устанавливается на все узлы кластера и обеспечивает автоматический обмен JWT-токена сервисного аккаунта Kubernetes на IAM-токен облачного сервисного аккаунта. - bindings — роли для системных компонентов кластера.
Примечание
Состав системных плагинов может видоизменяться и дополняться.
Зона контроля клиентов Yandex Cloud
В зону контроля клиентов Yandex Cloud входят:
- Конфигурация кластера.
- Ресурсы кластера.
- Конфигурируемые ресурсы.
- Управление доступом.
- Анализ работы кластера.
- Самостоятельное обновление версий ПО.
Конфигурация кластера
Пользователь управляет конфигурацией кластера, к которой относятся:
-
Схема размещения хостов мастера — базовый или высокодоступный мастер (в одной или разных зонах доступности).
-
Версия Kubernetes для мастера и релизный канал.
-
Конфигурация сети (сеть, подсети, публичный адрес, группы безопасности, сетевые политики, туннельный режим и т. д.).
-
Сервисные аккаунты с необходимыми правами для ресурсов и узлов.
-
Вычислительные ресурсы мастера (тип платформы, vCPU, RAM).
-
Настройка окна обновлений кластера.
-
Включение логирования Control Plane: аудитные логи, логи Cluster Autoscaler, логи событий, логи API-сервера Kubernetes.
Примечание
Если пользователь не включил поставку логов Control Plane кластеров в Cloud Logging или Audit Trails, при возникновении инцидентов и других событий хранение логов на стороне сервиса ограничено по времени и размеру:
- Аудитные логи хранятся не более 5 дней или до достижения размера 5 ГБ.
- Другие системные логи хранятся не более 1 дня или до достижения размера 7 ГБ.
Ресурсы кластера
Пользователь управляет конфигурацией и содержимым узлов:
- Вычислительные ресурсы узлов (тип платформы, vCPU, RAM, размер и тип дисков и т. д.).
- Конфигурация сети (публичный адрес, группы безопасности, подсети и зоны доступности).
- Настройка масштабирования для групп узлов.
- Версия Kubernetes для групп узлов.
- Установка дополнительных пакетов/агентов.
- Настройка доступа к узлам (SSH, OS Login).
- Настройка метаданных, переменных
sysctlи др. - Настройка окна обновлений групп узлов.
Важно
Пользователи имеют полный доступ к узлам кластера Managed Service for Kubernetes и могут изменять системные компоненты, пакеты и их конфигурации. Это может привести к непредсказуемым последствиям и нарушению работы узлов. Не рекомендуется вносить такие изменения для групп узлов.
Конфигурируемые ресурсы
Пользователь может управлять следующими ресурсами:
-
Конфигурация некоторых плагинов. Доступно изменение ресурсов
ConfigMapв плагинах ip-masq-agent и coreDNS. -
Приложения:
- Развертывание
Deployment,StatefulSet,DaemonSetи других объектов в кластерах Kubernetes. - Управление Ingress-контроллерами (например, NGINX Ingress).
- Развертывание
-
Данные:
- Резервное копирование данных приложений (Persistent Volumes).
- Шифрование секретов и данных на уровне приложения.
Управление доступом
Пользователь может управлять доступом при помощи Kubernetes RBAC:
- Настраивать
ServiceAccounts,ClusterRolesи другие объекты Kubernetes. - Управлять правами доступа к кластеру.
Анализ работы кластера
Пользователь может использовать мониторинг и логирование для анализа работы кластера:
- Настраивать алерты для метрик приложений.
- Анализировать логи подов с помощью Fluent Bit или сторонних инструментов.
Самостоятельное обновление версий ПО
Пользователь может:
-
Обновлять группы узлов на новые минорные версии Kubernetes, доступные в сервисе Managed Service for Kubernetes, например с версии 1.32 на 1.33.
-
Отслеживать уязвимости на уровне приложений в кластере, в том числе:
- Сканировать и обновлять образы контейнеров пользовательских приложений.
- Устранять уязвимости в пользовательском коде и зависимостях.
- Применять Pod Security Policies или аналоги для ограничения привилегий подов.