Managed Kubernetes

Описание

Kubernetes — это система оркестрации контейнеров. Managed Kubernetes от Selectel упрощает процесс развертывания, масштабирования и обслуживания контейнерной инфраструктуры. Обновлением версий, безопасностью и работоспособностью Control Plane Kubernetes занимается Selectel.

Сервис работает на базе Облачной платформы Selectel и использует ее ресурсы для рабочих нод кластера: серверы, балансировщики, сети, диски.

Control Plane состоит из 3 master-нод, которые запускаются в разных зонах доступности одного региона.

В качестве среды исполнения контейнеров (CRI) используется containerd.

Глоссарий

Термин Определение
Кластер Managed Kubernetes Объект, состоящий из нескольких мастер-нод и одной или нескольких групп нод
Мастер ноды Компонент, который управляет кластером
Группа нод Сгруппированные вместе ноды кластера одной конфигурации, находящиеся в одной зоне. Структурная единица кластера, в которой можно изменять количество нод
Нода Виртуальная машина, на которой пользователь разворачивает контейнеры и размещает сервисы своего кластера
Загрузочный диск Диск для операционной системы ноды и для временных данных контейнеров

Оплата

Ресурсы облачного сервера (виртуальной машины), используемые как ноды кластера, диски, балансировщики нагрузки и сетевые ресурсы, тарифицируются по стоимости ресурсов Облачной платформы.

Кластеры Kubernetes будут тарифицироваться, как остальные ресурсы облака по стоимости, указанной на сайте.

Сеть

При создании кластера через панель управления будет создана приватная сеть, в которую добавятся все ноды кластера.

В качестве CNI в кластерах Managed Kubernetes используется Calico.

Для предоставления публичного адреса приложениям, запущенным в кластере, воспользуйтесь сервисом (Service) типа LoadBalancer. После создания сервиса с типом LoadBalancer система создаст и настроит для вас Балансировщик нагрузки с публичным IP-адресом.

Пример описания сервиса с типом LoadBalancer:

# nginx-loadbalancer.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-loadbalancer
  labels:
    app: webservice
spec:
  type: LoadBalancer
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: webservice

Созданный балансировщик нагрузки появится в панели управления в разделе Балансировщики вашего проекта.

Рекомендуем все действия с балансировщиками производить через kubectl, чтобы избежать некорректного поведения.

Персистентные диски

Вы можете создать под с персистентным диском (Persistent Volume), который сохранится при удалении пода. Пример спецификации для создания пода с персистентным диском:

# nginx-with-volume.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: webservice
spec:
  containers:
  - name: nginx
    image: library/nginx:1.17-alpine
    ports:
    - containerPort: 80
    volumeMounts:
      - mountPath: "/var/www/html"
        name: data
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: my-pv-claim

Подробнее о спецификации для создания пода можно узнать в официальной документации.

Персистентные диски доступны только в пределах одной зоны.

В создании PersistentVolume используется объект StorageClass.

StorageClass позволяют заранее описать конфигурацию персистентных дисков, которые понадобятся в работе кластера. В объекте Storage Class необходимо указать тип и зону диска. Например, для создания быстрых дисков в зоне ru-1a в описании StorageClass в разделе parameters необходимо добавить поля type: fast.ru-1a и availablity: ru-1a. Примеры готовых манифестов StorageClass.

Диски fast, basic, universal обозначают сетевые диски в Облачной платформе Selectel.

Пример PersistentVolumeClaim, использующий этот StorageClass, выглядит следующим образом:

# my-pv-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pv-claim
spec:
  storageClassName: fast.ru-1a
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

Обратите внимание! Зона в типе PVC должна совпадать с зоной ноды, к которой она должна быть подключена. В случае использования нескольких зон для нод кластера и PVC вам потребуется указать в описании объектов Pod их привязку к зоне.

Работа с дисками возможна только в режиме ReadWriteOnce.

Все созданные диски отображаются в панели управления в разделе Диски.

Автовосстановление нод

Если рабочие ноды не отвечают на проверки доступности примерно в течение 15 минут, то ноды будут автоматически переустановлены. Эта опция работает сразу для всех нод кластера. В процессе восстановления поды перестанут запускаться на неработающей ноде и будут перераспределены на другие ноды.

Подключить автовосстановление нод можно при создании кластера в панели управления. Для уже работающего кластера управлять опцией можно в его карточке на вкладке НастройкиАвтоматизацияАвтовосстановление нод.

Обратите внимание! Если вы изменяли конфигурацию нод вручную для некоторых серверов, эти изменения будут сброшены до настроек всей группы нод. Также будут отменены настройки, которые не описаны в манифестах кластера.

Автообновление патч-версий Kubernetes

Патч-версии содержат исправление ошибок и уязвимостей безопасности минорной версии Kubernetes. Они совместимы между собой в пределах одной минорной версии. Если автообновление включено, кластер будет обновляться до последней доступной патч-версии во время ближайшего окна обслуживания кластера. Примечание: автообновление недоступно для зонального кластера.

Подключить автообновление патч-версий можно при создании кластера в панели управления. Для уже работающего кластера управлять опцией можно в его карточке на вкладке НастройкиАвтоматизацияАвтообновление патч-версий.

Обратите внимание! Если вы изменяли конфигурацию нод вручную для некоторых серверов, эти изменения будут сброшены до настроек всей группы нод. Также будут отменены настройки, которые не описаны в манифестах кластера.

Окно обслуживания

Во время окна обслуживания могут происходить автоматические действия по обслуживанию вашего кластера, автообновления системных сертификатов. Для этого каждый день в выбранный час кластер переходит в режим MAINTENANCE, во время которого недоступно любое масштабирование кластера. Этот период длится до двух часов.

При создании кластера в панели управления по умолчанию будет установлено время, соответствующее 4 часам утра в вашем часовом поясе. Вы можете изменить начало периода для уже работающего кластера в его карточке на вкладке НастройкиАвтоматизацияОкно обслуживания.

В статусе MAINTENANCE кластер работает в обычном режиме и доступен по сети. Приложение, запущенное в кластере, будет работать без изменений, остановок и задержек.

Проектные квоты

Ресурсы Облачной платформы, используемые в кластере, ограничены квотами в регионе. Квоты на ресурсы можно изменять на странице Проекты в карточке нужного проекта.

Ограничения сервиса

Вид ограничения Значение
Максимальное количество кластеров Kubernetes в одном проекте в одном регионе 2
Максимальное количество групп нод в одном кластере Kubernetes 4
Максимальное количество нод в одной группе нод 15
Максимальное количество vCPU ноды 8
Максимальное количество RAM ноды 64 ГБ
Максимальный объем загрузочного диска ноды 512 ГБ