Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Подключение к узлу по SSH
    • Обновление Kubernetes
    • Настройка автомасштабирования
    • Подключение к кластеру
      • Обзор способов подключения
      • Настройка групп безопасности
      • Создание статического файла конфигурации
    • Установка приложений
      • Основы работы с Yandex Cloud Marketplace
      • Установка Jaeger
      • Установка Metrics Provider
    • Сетевые сценарии
      • Обеспечение доступа к приложению, запущенному в кластере Kubernetes
      • Настройка контроллера сетевых политик Calico
      • Настройка контроллера сетевых политик Cilium
      • Настройка Node Local DNS для контроллера сетевых политик Cilium
    • Работа с постоянными томами
      • Динамическая подготовка тома
      • Статическая подготовка тома
      • Управление классами хранилищ
      • Увеличение размера тома для подов
      • Увеличение размера тома для контроллера StatefulSet
      • Подключение тома в блочном режиме
      • Интеграция с Object Storage
    • Управление кластером Kubernetes
      • Получение информации о кластере Kubernetes
      • Создание кластера Kubernetes
      • Изменение кластера Kubernetes
      • Создание пространства имен в кластере Kubernetes
      • Удаление кластера Kubernetes
    • Управление группой узлов
      • Информация об имеющихся группах узлов
      • Создание группы узлов
      • Подключение к узлу по SSH
      • Настройка автомасштабирования
      • Изменение группы узлов
      • Управление метками узлов кластера Kubernetes
      • Удаление группы узлов
    • Подключение внешних узлов к кластеру
  • Практические руководства
    • Все руководства
    • Интеграция с Yandex Container Registry
    • Запуск рабочих нагрузок с GPU
    • Установка NGINX Ingress-контроллера с Let's Encrypt®
    • Настройка Yandex Application Load Balancer Ingress-контроллера
    • Резервное копирование в Object Storage
    • Горизонтальное масштабирование приложения в кластере
    • Работа со снапшотами
    • Интеграция с корпоративной зоной DNS
    • Автоматическое масштабирование DNS по размеру кластера
    • Настройка локального кеширования DNS
    • Настройка Fluent Bit для работы с Yandex Cloud Logging
    • Синхронизация с секретами Yandex Lockbox
    • Использование продуктов Cloud Marketplace
      • Использование Jaeger для трассировки запросов в Managed Service for YDB
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Релизные каналы и обновления
    • Шифрование секретов
    • Использование объектов API Kubernetes
      • Том
      • Сервис
    • Группа узлов
      • Автоматическое масштабирование группы узлов
      • Расселение подов с узла
      • Динамическое резервирование ресурсов для узла
      • Группы узлов с GPU
    • Сеть в Managed Service for Kubernetes
    • Внешние узлы кластера
    • Сетевые настройки и политики кластера
    • Автоматическое масштабирование
    • Квоты и лимиты
    • Рекомендации по использованию Managed Service for Kubernetes
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ClusterService
      • NodeGroupService
      • VersionService
      • OperationService
    • REST (англ.)
      • Overview
      • Cluster
        • Overview
        • create
        • delete
        • get
        • list
        • listNodeGroups
        • listNodes
        • listOperations
        • start
        • stop
        • update
      • NodeGroup
        • Overview
        • create
        • delete
        • get
        • list
        • listNodes
        • listOperations
        • update
      • Version
        • Overview
        • list
  • Вопросы и ответы
    • Общие вопросы
    • Хранилище данных
    • Настройка и обновление
    • Автоматическое масштабирование
    • Ресурсы
    • Логи
    • Все вопросы на одной странице
  1. Вопросы и ответы
  2. Все вопросы на одной странице

Вопросы и ответы про Managed Service for Kubernetes

Статья создана
Yandex Cloud
  • Общие вопросы
  • Хранилище данных
  • Автоматическое масштабирование
  • Настройка и обновление
  • Ресурсы
  • Логи

Общие вопросы

Какие сервисы доступны по умолчанию в кластерах Managed Service for Kubernetes?

По умолчанию доступны:

  • Cервер метрик (Metrics Server) для агрегации данных об использовании ресурсов в кластере Kubernetes.
  • Плагин Kubernetes для CoreDNS для разрешения имен в кластере.
  • DaemonSet с поддержкой CSI-плагинов для работы с постоянными томами (PersistentVolume).

Какая версия Kubernetes CLI (kubectl) должна быть установлена для полноценной работы с кластером?

Мы рекомендуем использовать последнюю доступную официальную версию kubectl, чтобы избежать проблем совместимости.

Сможет ли Yandex Cloud восстановить работоспособность кластера, если я допущу ошибки при его настройке?

Мастер находится под управлением Yandex Cloud, поэтому вы не сможете его повредить. Если у вас возникли проблемы с компонентами кластера Kubernetes, обратитесь в техническую поддержку.

Кто будет заниматься мониторингом здоровья кластера?

Yandex Cloud. В кластере проводится мониторинг повреждений файловой системы (corrupted file system), неисправностей ядра (kernel deadlock), потери связи с интернетом и проблем с компонентами Kubernetes. Мы также разрабатываем механизм автоматического восстановления для неисправных компонентов.

Как быстро Yandex Cloud закрывает уязвимости, обнаруженные в системе безопасности? Что делать, если злоумышленник успеет воспользоваться уязвимостью, и мои данные пострадают?

Сервисы Yandex Cloud, образы и конфигурация мастера изначально проходят различные проверки на безопасность и соответствие стандартам.

Пользователи могут выбрать периодичность установки обновлений в зависимости от решаемых задач и конфигурации кластера. Необходимо учитывать направления атаки и уязвимость приложений, развернутых в кластере Kubernetes. Факторами, влияющими на безопасность приложений, могут быть политики сетевой безопасности между приложениями, уязвимости внутри Docker-контейнеров, а также некорректный режимом запуска контейнеров в кластере.

Хранилище данных

Какие существуют особенности работы с дисковым хранилищем при размещении БД (MySQL, PostgreSQL и т. д.) в кластере Kubernetes?

При размещении БД в кластере Kubernetes используйте контроллеры StatefullSet. Мы не рекомендуем запускать в Kubernetes statefull-сервисы в постоянными томами. Для работы с базами данных statefull-сервисов используйте управляемые базы данных Yandex Cloud, например Managed Service for MySQL или Managed Service for PostgreSQL.

Как подключить под к управляемым базам данных Yandex Cloud?

Чтобы подключиться к управляемой базе данных Yandex Cloud, расположенной в той же сети, укажите имя ее хоста и FQDN.

Для подключения сертификата базы данных к поду используйте объекты типа secret или configmap.

Как правильно подключить постоянный том к контейнеру?

Вы можете выбрать режим для подключения дисков Compute Cloud в зависимости от ваших нужд:

  • Чтобы Kubernetes автоматически подготовил объект PersistentVolume и настроил новый диск, создайте под с динамически подготовленным томом.
  • Чтобы использовать уже существующие диски Compute Cloud, создайте под со статически подготовленным томом.

Подробнее читайте в разделе Работа с постоянными томами.

Какие типы томов поддерживает Managed Service for Kubernetes?

Managed Service for Kubernetes поддерживает работу с временными (Volume) и постоянными (PersistentVolume) томами. Подробнее читайте в разделе Том.

Автоматическое масштабирование

Почему в моем кластере стало N узлов и он не уменьшается?

Автоматическое масштабирование не останавливает узлы с подами, которые не могут быть расселены. Масштабированию препятствуют:

  • Поды, расселение которых ограничено с помощью PodDisruptionBudget.
  • Поды в пространстве имен kube-system:
    • которые созданы не под управлением контроллера DaemonSet;
    • для которых не установлен PodDisruptionBudget или расселение которых ограничено с помощью PodDisruptionBudget.
  • Поды, которые не были созданы под управлением контроллера репликации (ReplicaSet, Deployment или StatefulSet).
  • Поды с local-storage.
  • Поды, которые не могут быть расселены куда-либо из-за ограничений. Например, при недостатке ресурсов или отсутствии узлов, подходящих по селекторам affinity или anti-affinity.
  • Поды, на которых установлена аннотация, запрещающая расселение: "cluster-autoscaler.kubernetes.io/safe-to-evict": "false".

Примечание

Поды kube-system, поды с local-storage и поды без контроллера репликации можно расселить. Для этого установите аннотацию "safe-to-evict": "true":

kubectl annotate pod <имя пода> cluster-autoscaler.kubernetes.io/safe-to-evict=true

Другие возможные причины:

  • Группа узлов уже достигла минимального размера.

  • Узел простаивает менее 10 минут.

  • В течение последних 10 минут группа узлов была масштабирована в сторону увеличения.

  • В течение последних 3 минут в группе узлов была неудачная попытка масштабирования в сторону уменьшения.

  • Произошла неудачная попытка остановить определенный узел. В этом случае следующая попытка происходит по истечении 5 минут.

  • На узле установлена аннотация, которая запрещает останавливать его при масштабировании: "cluster-autoscaler.kubernetes.io/scale-down-disabled": "true". Аннотация можно добавить или снять с помощью kubectl.

    Проверьте наличие аннотации на узле:

    kubectl describe node <имя узла> | grep scale-down-disabled
    

    Результат выполнения команды:

    Annotations:        cluster-autoscaler.kubernetes.io/scale-down-disabled: true
    

    Установите аннотацию:

    kubectl annotate node <имя узла> cluster-autoscaler.kubernetes.io/scale-down-disabled=true
    

    Снять аннотацию можно, выполнив команду kubectl со знаком -:

    kubectl annotate node <имя узла> cluster-autoscaler.kubernetes.io/scale-down-disabled-
    

Почему под удалился, а размер группы узлов не уменьшается?

Если узел недостаточно нагружен, он удаляется по истечении 10 минут.

Почему автоматическое масштабирование не выполняется, хотя количество узлов меньше минимума / больше максимума?

Установленные лимиты не будут нарушены при масштабировании, но Managed Service for Kubernetes не следит за соблюдением границ намеренно. Масштабирование в сторону увеличения сработает только в случае появления подов в статусе unschedulable.

Ответы на другие вопросы об автоматическом масштабировании смотрите в документации Kubernetes.

Настройка и обновление

Что делать, если часть моих данных потеряется при обновлении версии Kubernetes?

Данные не потеряются: перед обновлением версии Kubernetes Managed Service for Kubernetes подготавливаем для них резервные копии. Вы можете самостоятельно настроить резервное копирование кластера в Yandex Object Storage. Также мы рекомендуем выполнять резервное копирование баз данных средствами самого приложения.

Можно ли настроить резервное копирование для кластера Kubernetes?

Данные в кластерах Managed Service for Kubernetes надежно хранятся и реплицируются в инфраструктуре Yandex Cloud. Однако в любой момент вы можете сделать резервные копии данных из групп узлов кластеров Kubernetes и хранить их в Yandex Object Storage или другом хранилище.

Подробнее читайте в разделе Резервное копирование кластера Managed Service for Kubernetes в Yandex Object Storage.

Будут ли ресурсы простаивать при обновлении версии Kubernetes?

При обновлении мастера будут простаивать ресурсы Control Plane. Поэтому такие операции, как создание или удаление группы узлов, будут недоступны. Пользовательская нагрузка на приложение продолжит обрабатываться.

Если значение max_expansion больше нуля, при обновлении групп узлов создаются новые узлы. На них переводится вся нагрузка, а старые группы узлов удаляются. Простой при этом будет равен времени рестарта пода при перемещении в новую группу узлов.

Можно ли прислать вам YAML-файл с конфигурацией, чтобы вы применили его к моему кластеру?

Нет. Вы можете использовать kubeconfig-файл, чтобы применить YAML-файл с конфигурацией кластера самостоятельно.

Можете ли вы установить Web UI Dashboard, Rook и другие инструменты?

Нет. Вы можете установить все необходимые инструменты самостоятельно.

Ресурсы

Какие ресурсы требуются для обслуживания кластера Kubernetes, в который входит группа, например, из трех узлов?

Для каждого узла необходимы ресурсы для запуска компонентов, которые отвечают за функционирование узла как части кластера Kubernetes. Подробнее читайте в разделе Динамическое резервирование ресурсов.

Можно ли изменять ресурсы для каждого узла в кластере Kubernetes?

Вы можете изменять ресурсы только для группы узлов. В одном кластере Kubernetes можно создавать группы с разными конфигурациями и размещать их в разных зонах доступности. Подробнее читайте в разделе Изменение группы узлов.

Кто будет следить за масштабированием кластера Kubernetes?

В Managed Service for Kubernetes можно включить автоматическое масштабирование кластера.

Логи

Я могу получить логи моей работы в сервисах?

Да, вы можете запросить записи о том, что происходило с вашими ресурсами, из логов сервисов Yandex Cloud. Подробнее читайте в разделе Запросы данных.

Можно ли самостоятельно сохранять логи?

Для сбора и хранения логов используйте Fluent Bit.

Есть ли поддержка Horizontal Pod Autoscaler?

Да, Managed Service for Kubernetes поддерживает механизм горизонтального автомасштабирования подов (Horizontal Pod Autoscaler).

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Общие вопросы
  • Хранилище данных
  • Автоматическое масштабирование
  • Настройка и обновление
  • Ресурсы
  • Логи