---
title: 'Managed Kubernetes: быстрый старт'
sidebar_label: 'Быстрый старт'
sidebar_position: 2
description: 'Как начать работу с Managed Kubernetes: создать кластер, подключиться к нему и настроить Ingress'
toc_max_heading_level: 2
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'
import InstallEnvoyGatewayViaPanel from '@site/docs/_partials/managed-kubernetes/install-envoy-gateway-via-panel.mdx'
import InstallEnvoyGatewayViaHelm from '@site/docs/_partials/managed-kubernetes/install-envoy-gateway-via-helm.mdx'

# Managed Kubernetes: быстрый старт

Работать с кластером Managed Kubernetes можно в [панели управления](https://my.selectel.ru/mks/), через [API Managed Kubernetes](/api/managed-kubernetes/) или [Terraform](/terraform/providers/).

1. [Создайте кластер на облачном сервере в панели управления](#create-cluster-in-control-panel).
2. [Подключитесь к кластеру](#connect-to-cluster).
3. [Установите Envoy Gateway](#install-envoy-gateway).

Подробнее о планировании инфраструктуры и размещении приложений в Managed Kubernetes — в статье блога [Cloud-native в Kubernetes](https://selectel.ru/blog/tutorials/cloud-native-in-kubernetes/).

## 1. Создать кластер на облачном сервере в панели управления \{#create-cluster-in-control-panel}

1. [Настройте кластер на облачном сервере](#configure-cluster).
2. [Настройте группу нод](#configure-node-group).
3. [Настройте автоматизацию](#configure-automation).

### 1. Настроить кластер на облачном сервере \{#configure-cluster}

1. В [панели управления](https://my.selectel.ru/mks/) в верхнем меню нажмите **Продукты** и выберите **Managed Kubernetes**.

2. В разделе **Кластеры** нажмите **Создать кластер**.

3. Введите имя кластера. Имя будет отображаться в именах объектов кластера: группах нод, нодах, балансировщиках, сетях и дисках. Например, если имя кластера `kelsie`, то имя группы нод будет `kelsie-node-gdc8q`, а загрузочного диска — `kelsie-node-gdc8q-volume`.

4. Выберите [локацию](/infrastructure/locations.mdx#pool), в которой будут находиться мастер-ноды. После создания кластера локацию нельзя изменить.

5. Выберите [версию Kubernetes](/managed-kubernetes/about/about-managed-kubernetes.mdx#versions). После создания кластера можно [обновить версию Kubernetes](/managed-kubernetes/clusters/upgrade-version.mdx).

6. Опционально: выберите сетевой плагин (CNI). По умолчанию в кластере используется Calico. После создания кластера CNI нельзя изменить.

   В сетевом плагине Cilium по умолчанию:

   * включена настройка `envoy daemonset` – подробнее о настройке в статье [Envoy](https://docs.cilium.io/en/latest/security/network/proxy/envoy/#envoy) документации Cilium;
   * отключена настройка `hubble-relay` – подробнее о настройке в подразделе [Hubble Relay](https://docs.cilium.io/en/stable/internals/hubble/#hubble-relay) статьи Hubble internals в документации Cilium.

   Если вы хотите изменить эти настройки, создайте кластер с помощью [Managed Kubernetes API](/api/managed-kubernetes/). Учитывайте, что для использования настройки `hubble-relay` на ноде должно быть не менее 4 ГБ RAM.

7. Выберите [тип кластера](/managed-kubernetes/about/about-managed-kubernetes.mdx#cluster-types). После создания кластера тип кластера нельзя изменить.

8. Опционально: чтобы кластер был доступен по приватной сети и был недоступен из интернета, отметьте чекбокс **Приватный kube API**. По умолчанию кластер создается в публичной сети и ему автоматически присваивается публичный IP-адрес kube API, доступный из интернета. После создания кластера тип доступа к kube API нельзя изменить.

9. Нажмите **Продолжить**.

### 2. Настроить группу нод \{#configure-node-group}

1. В поле **Тип сервера** выберите **Облачный сервер**.

2. Выберите [локацию](/infrastructure/locations.mdx#pool), в которой будут располагаться все рабочие ноды в группе. После создания кластера локацию нельзя изменить.

3. Настройте конфигурацию рабочих нод в группе:

   3.1. Нажмите **Выбрать конфигурацию** и выберите конфигурацию рабочих нод в группе:

   * [произвольную](/managed-kubernetes/node-groups/configurations.mdx#custom-configurations) — можно указать любое соотношение ресурсов;
   * или [фиксированную с GPU](/managed-kubernetes/node-groups/configurations.mdx#fixed-configurations-with-gpu) — готовые конфигурации нод с графическими процессорами и с заданным соотношением ресурсов.

   Если стандартные конфигурации не подходят, после создания кластера можно [добавить группу нод с фиксированной конфигурацией облачного сервера](/managed-kubernetes/node-groups/create-node-group.mdx#add-node-group-with-cloud-nodes) через API Managed Kubernetes или Terraform.

   3.2. Если вы выбрали произвольную конфигурацию, укажите количество vCPU, RAM, выберите [загрузочный диск](/managed-kubernetes/volumes/about-volumes.mdx#boot-volumes). Укажите размер диска.

   3.3. Если вы выбрали фиксированную конфигурацию с GPU, выберите готовую конфигурацию нод с графическими процессорами, [загрузочный диск](/managed-kubernetes/volumes/about-volumes.mdx#boot-volumes) и укажите размер диска. Чтобы [установить драйверы GPU самостоятельно](/managed-kubernetes/node-groups/gpu-drivers.mdx#install-gpu-drivers), отключите тумблер **Драйверы GPU**. По умолчанию тумблер **Драйверы GPU** включен и в кластере используются предустановленные драйверы.

   3.4. Нажмите **Сохранить**.

4. Настройте количество рабочих нод. Для отказоустойчивой работы системных компонентов и сетевого плагина Cilium рекомендуем иметь не менее двух рабочих нод в кластере, ноды могут находиться в разных группах:

   4.1. Чтобы в группе нод было фиксированное количество нод, откройте вкладку **Фиксированное** и укажите количество нод.

   4.2. Чтобы в группе нод использовалось [автомасштабирование с помощью Cluster Autoscaler](/managed-kubernetes/node-groups/autoscaling.mdx#autoscaling-with-cluster-autoscaler) — откройте вкладку **С автомасштабированием** и установите минимальное и максимальное количество нод в группе — значение нод будет меняться только в этом диапазоне. Для групп нод с GPU без драйверов автомасштабирование недоступно.

5. Опционально: чтобы сделать группу нод [прерываемой](/managed-kubernetes/node-groups/preemptible-node-groups.mdx), отметьте чекбокс **Прерываемая группа нод**. Прерываемые группы нод доступны в [регионах](/infrastructure/locations.mdx#region) Санкт-Петербург, Москва и Новосибирск.

6. Опционально: добавьте метки группы нод:

   6.1. В поле **Метки** нажмите **Добавить**.

   6.2. Введите ключ метки.

   6.3. Введите значение метки.

   6.4. Нажмите **Добавить**.

7. Опционально: добавьте тейнты группы нод:

   7.1. В поле **Тейнты** нажмите **Добавить**.

   7.2. Введите ключ тейнта.

   7.3. Введите значение тейнта.

   7.4. Выберите эффект:

   * NoSchedule — новые поды не будут добавляться, а существующие продолжат работу;
   * PreferNoSchedule — новые поды будут добавляться, если в кластере нет других свободных мест;
   * NoExecute — запущенные поды без tolerations будут убраны.

   7.5. Нажмите **Добавить**.

8. Опционально: добавьте скрипт с пользовательскими параметрами для настройки кластера Managed Kubernetes:

   8.1. В поле **User data** нажмите **Добавить**.

   8.2. Вставьте скрипт. Максимальный размер скрипта с данными, которые не закодированы в Base64, — 47 КБ. Примеры скриптов и поддерживаемые форматы можно посмотреть в инструкции [User data](/managed-kubernetes/node-groups/user-data.mdx).

9. Опционально: чтобы добавить дополнительную группу рабочих нод в кластере, нажмите **Добавить группу нод**. Можно создать кластер с группами рабочих нод в разных сегментах одного пула. Это повысит отказоустойчивость и поможет сохранить доступность приложения, если случится авария в одном из сегментов.

10. В блоке \*\* Облачная сеть\*\* настройте приватную подсеть без доступа из интернета, в которую будут объединены все ноды кластера.

    10.1. Чтобы создать приватную подсеть, в поле **Подсеть для нод** выберите **Новая приватная подсеть**.

    Автоматически будут созданы приватная сеть `<cluster_name>-network`, приватная подсеть и роутер `<cluster_name>-router`, где `<cluster_name>` — название кластера. CIDR назначается автоматически.

    На порты нод будет назначаться [группа безопасности по умолчанию](/cloud-servers/security-groups/about-security-groups.mdx#default-security-group). Не меняйте правила в ней и не назначайте другую группу безопасности. Это позволит избежать сбоя в работе кластера.

    10.2. Если приватная подсеть создана, в поле **Подсеть для нод** выберите существующую подсеть. Подсеть должна соответствовать условиям:

    * принадлежит сети проекта, в котором вы создаете кластер. К какому проекту относится сеть можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/networks/): в верхнем меню нажмите **Продукты** → **Managed Kubernetes** → **Сеть** → вкладка **Приватные сети** → карточка сети. Если сеть принадлежит другому проекту, в карточке сети будет тег **Кросспроектная** и информация об идентификаторе проекта, в котором она была создана;
    * [подключена к облачному роутеру](/cloud-servers/cloud-networks/cloud-routers.mdx#connect-private-subnet-to-cloud-router);
    * не пересекается с диапазонами `10.10.0.0/16`, `10.96.0.0/12`, `10.250.0.0/16` и `10.251.0.0/24`. Эти диапазоны участвуют во внутренней адресации Managed Kubernetes;
    * [выключен DHCP](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx#disable-dhcp-in-private-subnet);
    * на порты назначена только [группа безопасности по умолчанию](/cloud-servers/security-groups/about-security-groups.mdx#default-security-group). Не меняйте правила в ней и не назначайте другую группу безопасности. Это позволит избежать сбоя в работе кластера. Вы можете [посмотреть группы безопасности на портах](/cloud-servers/security-groups/manage-groups/view-security-groups-on-ports.mdx#view-security-groups-on-port).

11. Нажмите **Продолжить**.

### 3. Настроить автоматизацию \{#configure-automation}

1. Опционально: чтобы включить [автовосстановление нод](/managed-kubernetes/node-groups/reinstall-nodes.mdx), отметьте чекбокс **Автовосстановление нод**. Если у кластера всего одна рабочая нода, то автовосстановление недоступно.

2. Опционально: чтобы включить [автообновление патч-версий](/managed-kubernetes/clusters/upgrade-version.mdx), отметьте чекбокс **Автообновление патч-версий**. Если у кластера всего одна мастер-нода (базовый кластер) или одна рабочая нода, то автообновление патч-версий Kubernetes недоступно.

3. Выберите [время начала обслуживания](/managed-kubernetes/clusters/set-up-maintenance-window.mdx) кластера — время, когда будут начинаться автоматические действия по обслуживанию кластера.

4. Опционально: чтобы включить [аудитные логи](/managed-kubernetes/clusters/logs.mdx), отметьте чекбокс **Аудитные логи**. После создания кластера [настройте интеграцию с системой хранения и анализа логов](/managed-kubernetes/clusters/logs#configure-export-of-audit-logs).

5. Проверьте цену кластера на облачном сервере.

6. Нажмите **Создать**. Создание кластера занимает несколько минут, в это время кластер будет находиться в [статусе](/managed-kubernetes/clusters/cluster-statuses.mdx) `CREATING`. Кластер будет готов к работе, когда перейдет в статус `ACTIVE`.

## 2. Подключиться к кластеру \{#connect-to-cluster}

Для начала работы с кластером нужно настроить [kubectl](https://kubernetes.io/docs/reference/kubectl/kubectl/).

:::info

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

:::

После [обновления сертификатов для системных компонентов](/managed-kubernetes/clusters/update-certificate.mdx) необходимо заново подключаться к кластеру.

<Tabs queryString="connect-to-cluster">
  <TabItem value="Linux" default>
    <TabItemLabel>
      Linux
    </TabItemLabel>

    1. Установите консольный клиент Kubernetes kubectl по [официальной инструкции](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/).
    2. В [панели управления](https://my.selectel.ru/mks/) в верхнем меню нажмите **Продукты** и выберите **Managed Kubernetes**.
    3. В разделе **Кластеры** откройте страницу кластера → вкладка **Настройки**.
    4. Если вы используете приватный kube API, проверьте доступ к нему. IP-адрес указан в поле **Kube API**.
    5. Нажмите **Скачать kubeconfig**. Скачивание kubeconfig-файла недоступно, если у кластера статус `PENDING_CREATE`, `PENDING_ROTATE_CERTS`, `PENDING_DELETE` или `ERROR`.
    6. Экспортируйте в переменную окружения `KUBECONFIG` путь к kubeconfig-файлу:

       ```bash
       export KUBECONFIG=<path>
       ```

       Укажите `<path>` —  путь к kubeconfig-файлу `имя_кластера.yaml`.
    7. Проверьте корректность настройки — обратитесь к кластеру через kubectl:

       ```bash
       kubectl get nodes
       ```

       Ноды должны быть в статусе `Ready`.
  </TabItem>

  <TabItem value="windows">
    <TabItemLabel>
      Windows
    </TabItemLabel>

    1. Установите консольный клиент Kubernetes kubectl по [официальной инструкции](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/).
    2. В [панели управления](https://my.selectel.ru/mks/) в верхнем меню нажмите **Продукты** и выберите **Managed Kubernetes**.
    3. В разделе **Кластеры** откройте страницу кластера → вкладка **Настройки**.
    4. Если  вы используете приватный kube API, проверьте доступ к нему. IP-адрес указан в поле **Kube API**.
    5. Нажмите **Скачать kubeconfig**. Скачивание kubeconfig-файла недоступно, если у кластера статус `PENDING_CREATE`, `PENDING_ROTATE_CERTS`, `PENDING_DELETE` или `ERROR`.
    6. Запустите PowerShell от имени администратора.
    7. Экспортируйте в переменную окружения `KUBECONFIG` путь к kubeconfig-файлу:

       ```bash
       $env:KUBECONFIG = <path>
       ```

       Укажите `<path>` —  путь к kubeconfig-файлу `имя_кластера.yaml`.
    8. Проверьте корректность настройки — обратитесь к кластеру через kubectl:

       ```bash
       kubectl get nodes
       ```

       Ноды должны быть в статусе `Ready`.
  </TabItem>
</Tabs>

## 3. Установить Envoy Gateway \{#install-envoy-gateway}

<Tabs queryString="install-application">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    <InstallEnvoyGatewayViaPanel />
  </TabItem>

  <TabItem value="helm">
    <TabItemLabel>
      Helm
    </TabItemLabel>

    <InstallEnvoyGatewayViaHelm />
  </TabItem>
</Tabs>

<Formbricks />
