Примеры подготовки кластера Kubernetes#

Если у вас отсутствует кластер Kubernetes, приведенные далее примеры помогут в его подготовке.

Подготовка кластера в Yandex Cloud Managed Service for Kubernetes#

Yandex Cloud предоставляет услуги по созданию кластеров Kubernetes в облаке, которые обеспечены всеми необходимыми сервисами, включая управление узлами master и группами рабочих узлов, автоматическое масштабирование, автоматические обновления, резервное копирование. Также предоставлены услуги по сбору метрик, служба DNS, постоянные тома.

Предварительная подготовка#

Необходимо предварительно подготовить следующие ресурсы:

  • Создание кластера следует привязать к каталогу, на который у вас есть привилегии по созданию и управлению ресурсами.

  • Поскольку запросы будут направляться через Yandex Cloud API, необходима сервисная учетная запись (SA, Service Account), которой назначены роли, достаточные для создания ресурсов в каталоге и управления ими. Для упрощения задачи достаточно назначить роль editor. Однако можно использовать более гранулярный подход согласно документации Yandex Cloud.

  • Если по каким-либо причинам необходимо использовать сеть, привязанную к другому каталогу, необходимо назначить роли для SA на этот каталог:

    • vpc.privateAdmin;

    • vpc.user;

    • vpc.bridgeAdmin (если надо создавать публичные IP-адреса);

    • vpc.publicAdmin (если надо создавать публичные IP-адреса).

  • Для хранения контента приватного реестра потребуется объектное хранилище в виде S3 bucket, объемом минимум 3 ГБ. Его можно также создать в Yandex Cloud. Назначьте роль editor для SA на S3 bucket.

  • Для управления кластером со своей локальной рабочей станции используйте утилиту командного интерфейса Yandex Cloud CLI (Command Line Interface).

Создание кластера#

Создание кластера происходит в два этапа:

  1. В группе ресурсов Yandex Cloud Managed Service for Kubernetes создайте кластер:

    • Назначьте созданную ранее учетную запись SA для ресурсов и узлов кластера.

    • Выберите автоматическое или статическое назначение публичного IP-адреса, если необходим доступ через интернет.

    • Выберите тип мастера Basic для базовой топологии или High available для топологии уровня предприятия.

    • Выберите сеть, обеспечивающую требуемые коммуникации, например сеть, связанную с вашим управляемым сегментом по VPN.

    • Выберите Enable tunnel mode.

  2. Добавьте группу рабочих узлов для кластера:

    • Задайте необходимые ресурсы согласно рекомендациям:

      • для базовой топологии достаточно одного рабочего узла Kubernetes;

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

    • Выберите тип диска SSD.

    • Если необходимо назначить публичные IP-адреса, выберите автоматическое или статическое назначение публичного IP-адреса.

Управление кластером Kubernetes#

Убедитесь, что вы можете управлять кластером со своей рабочей станции. Следуйте инструкциям в документации провайдера для настройки. Например, для Yandex Cloud Managed Service for Kubernetes, настройте это через Yandex Cloud CLI (Command Line Interface) как описано в инструкции:

  1. Убедитесь, что у вас установлена утилита kubectl и установите соединение с вашим кластером, следуя указаниям в описании свойств кластера. Например:

    yc managed-kubernetes cluster get-credentials --id cat8...i7d --external
    
  2. Проверьте доступность кластера:

    kubectl get pods -A
    

    Команда выводит список служебных подов.

Общие настройки#

Для повышения производительности измените класс хранилища по умолчанию, так чтобы использовать диски SSD:

  1. Проверьте список классов:

    kubectl get storageclass
    
  2. Если настроено на использование по умолчанию yc-network-hdd, измените это следующими командами:

    kubectl patch storageclass yc-network-hdd \
    -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
    
    kubectl patch storageclass yc-network-ssd \
    -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'