---
title: Kubernetes и Private Cloud
description: Продажа кластеров Kubernetes (CKS) и Private Cloud (VPC) с гарантированной полосой в CloudStack: необходимые тарифы и их подключение.
url: https://nexcmp.com/ru/docs/infrastructure/kubernetes-and-private-cloud/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Kubernetes и Private Cloud {#kubernetes-and-private-cloud}

> **Где найти в панели управления:** Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (`/infra/cloudstack?tab=k8s`), затем Services › Kubernetes (Overview, Clusters, Versions, Policy). Private Cloud: Services › Private Cloud (Overview `/vpc`, VPC `/vpc/list`, Plans & pricing `/vpc/plans`). Включите оба модуля в разделе System › Admin › License & updates.

## Назначение {#what-it-does}

- **Kubernetes.** Клиенты создают управляемые кластеры Kubernetes в CloudStack с помощью CloudStack Kubernetes Service (CKS). Control plane предоставляется бесплатно; клиенты оплачивают **worker**-ноды. NexCMP создает отдельную сеть и публичный IP для каждого кластера, изолируя кластеры клиентов друг от друга.
- **Private Cloud.** Клиенты получают изолированную сеть (CloudStack VPC) с маршрутизатором, подсетями (tiers), правилами брандмауэра (network ACL) и виртуальными машинами внутри нее. Услуга тарифицируется по **плану пропускной способности** с выделенной безлимитной скоростью (например, 50, 100, 500 Mbps, 1 и 3 Gbps). По умолчанию каждому клиенту доступен один VPC.

Оба сервиса построены на базе [CloudStack](https://nexcmp.com/ru/docs/infrastructure/cloudstack/) и используют его API через одно подключение.

## Требования {#requirements}

### Kubernetes {#kubernetes}

| Параметр | Требование |
|---|---|
| CloudStack | 4.23 (протестировано). CKS должен быть **включен** (`cloud.kubernetes.service.enabled = true`). |
| Учетная запись | Учетная запись **Domain Admin** в выделенном домене, чтобы NexCMP мог создавать проект CloudStack для каждого клиента и лимиты ресурсов внутри него. См. [CloudStack](https://nexcmp.com/ru/docs/infrastructure/cloudstack/#create-a-dedicated-account-and-api-key). |
| `endpoint.url` | Глобальная настройка CloudStack должна указывать на ваш management API, доступный из виртуальных машин кластера. NexCMP показывает значение и результат проверки эндпоинта. |
| Версии | Как минимум одна поддерживаемая версия Kubernetes с ISO бинарных файлов в состоянии **Enabled**. Версии с истекшим сроком поддержки нельзя выставлять на продажу. |
| Предложение для control plane | Бесплатное сервисное предложение с **точно 2 vCPU, 2048 MB RAM и CPU cap** (`limitcpuuse = true`), видимое для учетной записи. Все остальное сервер отклоняет с `cp_offering_invalid`. |
| Сеть | Включенное изолированное сетевое предложение с поддержкой CKS. |
| IP-адреса | Свободные публичные IPv4-адреса в диапазоне для продажи; каждый кластер использует один. |
| Емкость | Каждый кластер расходует от 2 до 4 GB RAM на control plane и небольшую ВМ маршрутизатора. Следите за вкладками емкости. |

### Private Cloud {#private-cloud}

| Параметр | Требование |
|---|---|
| CloudStack | 4.23 (протестировано) с включенным VPC. |
| Предложение VPC | Одно предложение VPC. Предложение dual-stack также выделяет каждому уровню подсеть IPv6 /64. |
| Сетевые предложения для уровней | **Одно сетевое предложение на каждый тариф пропускной способности**, созданное для VPC, со значением **network rate** (Mbps), равным тарифу, плюс одно **заблокированное** предложение на **1 Mbps**, применяемое при блокировке VPC за неуплату. |
| Учетная запись | Выделенная учетная запись (рекомендуется Domain Admin). Сети VPC остаются в учетной записи, а не в проектах. |
| IP-адреса | Свободные публичные IPv4-адреса (каждый VPC использует один для source NAT). |
| Адресное пространство | Каждый VPC получает подсеть /16 из `10.128.0.0/9`. Не используйте этот диапазон в собственных сетях. |
| Зависимости | CloudStack подключен; модуль **Private Cloud**. |

## Подготовка инфраструктуры {#prepare-the-infrastructure}

### Kubernetes: включение CKS и добавление версий {#kubernetes-enable-cks-and-add-versions}

1. Включите службу и укажите эндпоинт, затем перезапустите management-сервер:

   ```bash
   cmk update configuration name=cloud.kubernetes.service.enabled value=true
   cmk update configuration name=endpoint.url value=https://cloudstack.example.com/client/api
   sudo systemctl restart cloudstack-management
   ```

   Контроллер кластера обращается к `endpoint.url`, поэтому адрес должен быть доступен из виртуальных машин кластера.

2. Соберите ISO с бинарными файлами Kubernetes для продаваемой версии с помощью скрипта `create-kubernetes-binaries-iso.sh` из исходного кода CloudStack, разместите его на веб-сервере и зарегистрируйте:

   ```bash
   cmk add kubernetessupportedversion name="Kubernetes 1.35.0" semanticversion=1.35.0 \
     url=https://files.example.com/setup-v1.35.0-calico-amd64.iso zoneid=<zone-id> \
     mincpunumber=2 minmemory=2048
   cmk list kubernetessupportedversions filter=name,semanticversion,state,isostate
   ```

   Дождитесь, пока статус ISO перейдет в **Ready**, а версия — в **Enabled**.

3. Создайте предложение для control plane, ограниченное доменом NexCMP:

   ```bash
   cmk create serviceoffering name=K8S-CP-2-2 displaytext="Kubernetes control plane" \
     cpunumber=2 cpuspeed=1000 memory=2048 limitcpuuse=true offerha=false domainid=<domain-id>
   ```

4. Убедитесь, что сетевое предложение CKS включено:

   ```bash
   cmk list networkofferings state=Enabled forvpc=false filter=id,name
   ```

### Private Cloud: создание предложений {#private-cloud-create-the-offerings}

В интерфейсе CloudStack (**Service Offerings › Network Offerings › Add network offering**) или с помощью `cmk`:

1. Просмотрите список имеющихся предложений:

   ```bash
   cmk list vpcofferings filter=id,name,state
   cmk list networkofferings forvpc=true filter=id,name,networkrate,state
   ```

2. Используйте включенное предложение VPC (dual-stack, если требуется IPv6). Если нужно создать новое, клонируйте стандартное предложение VPC в CloudStack и включите его.
3. Для **каждого** продаваемого тарифа пропускной способности создайте сетевое предложение **для VPC** (клонируйте стандартное «isolated network offering for VPC networks») и укажите в **Network rate (Mb/s)** скорость тарифа: `50`, `100`, `500`, `1000`, `3000`. Включите каждое предложение.
4. Создайте еще одно предложение со значением **network rate 1** (`VPC-LOCKED-1M`) для заблокированных VPC: клиенты по-прежнему смогут подключаться к своим серверам по SSH, но скорость будет ограничена.
5. Запишите UUID каждого offering: они понадобятся NexCMP в следующем разделе.

::: warning Предустановленные ID offering отсутствуют в вашем облаке
Форма Private Cloud предварительно заполнена UUID offering из другой инсталляции CloudStack. Замените **каждый** из них на собственный, иначе первый же заказ VPC завершится ошибкой.
:::

## Подключение в NexCMP {#connect-in-nexcmp}

### Kubernetes {#kubernetes-1}

1. Откройте **Infrastructure › Cloud provider › CloudStack** и выберите вкладку **Kubernetes (CKS)**. В карточке справа **CKS status on CloudStack (read-only)** отображаются `kubernetesserviceenabled`, `endpoint.url` с **Endpoint check**, network offering для CKS, параметры `cloud.kubernetes.*` и список ISO и версий. Нажмите **Recheck** после внесения исправлений.
2. В **Sales config** выберите **Control plane Offering** (появится предупреждение, если параметры отличаются от ровно 2 vCPU / 2048 MB / CPU cap), укажите **Max workers per cluster** (от 1 до 9: CKS поддерживает до 10 узлов, включая управляющий), включите **Enable CKS for this backend** и нажмите **Save**. Переключатель остается неактивным, пока не выбран offering.

      ![Вкладка Kubernetes (CKS) с выбранным control plane offering и карточкой статуса CKS](https://nexcmp.com/ru/docs/images/infrastructure/kubernetes-and-private-cloud-01-cks.webp)

3. Откройте **Services › Kubernetes › Versions** и нажмите **Sync from CloudStack**. Включите **Available for new clusters** для продаваемых версий, установите версию по умолчанию и при необходимости дату **End of life (EOL)**.


4. Откройте **Services › Kubernetes › Policy**. В **Worker plans** добавьте тарифы с **Plan code** (латинские буквы A-Z, цифры 0-9, дефис, до 16 символов). Укажите **NVMe per worker (GB)**, **Min and max workers** и лимиты кластера (активные кластеры на аккаунт, операций создания за 24 часа, глобальный лимит, параллельные операции CKS). Затем включите **Sell Kubernetes (CKS)**. В продаже должен оставаться как минимум один тариф.

      ![Политика Kubernetes с тарифами worker и переключателем продаж](https://nexcmp.com/ru/docs/images/infrastructure/kubernetes-and-private-cloud-03-policy.webp)

### Private Cloud {#private-cloud-1}

1. Откройте **Services › Private Cloud** (Overview). В карточке политики замените **VPC offering** и **Locked offering tier** на собственные UUID. Проверьте лимиты (VPC на аккаунт, уровней tier, ВМ и правил ACL на VPC, необходимый для создания баланс в часах стоимости тарифа, смен тарифа за 24 часа, параллельных операций, где 0 — экстренная остановка) и DNS-серверы. Нажмите **Save** (потребуется указать причину).

      ![Обзор Private Cloud с полями VPC offering и locked offering](https://nexcmp.com/ru/docs/images/infrastructure/kubernetes-and-private-cloud-04-vpc-policy.webp)

2. Откройте **Services › Private Cloud › Plans & pricing**. Для каждого тарифа нажмите **Edit** и укажите **VND price per month**, **On sale** и UUID **CloudStack tier offering**, пропускная способность которого соответствует скорости тарифа в Mbps. В строке отображаются себестоимость и прибыль при полной нагрузке, что позволяет увидеть тарифы ниже вашей себестоимости.

      ![Диалоговое окно редактирования тарифа пропускной способности Private Cloud](https://nexcmp.com/ru/docs/images/infrastructure/kubernetes-and-private-cloud-05-vpc-plan.webp)

3. Включите **Sell Private Cloud**. Для предварительного тестирования добавьте ID тестовых аккаунтов в **Beta accounts**: эти аккаунты смогут использовать сервис при выключенном переключателе продаж.

## Проверка {#verify}

1. Kubernetes: карточка статуса отображает `kubernetesserviceenabled: true`, успешный endpoint check и включенную версию. Создайте тестовый кластер с одним worker-узлом от лица клиента; он должен перейти в статус running, а `kubectl get nodes` должен показать готовность. Затем удалите его: сеть и IP вернутся в пул.
2. Private Cloud: создайте VPC с минимальным тарифом от лица тестового клиента. VPC отображает статус active, уровень tier получает подсеть, ВМ на уровне tier имеет доступ в интернет через роутер VPC, а **Change plan** на более крупный тариф вступает в силу примерно за 20 секунд без разрыва соединений.

## Ограничения и примечания {#limits-and-notes}

- Kubernetes: worker-узлы тарифицируются как ВМ по ценам тарифа и учитываются как ВМ в лимитах на ВМ. Кластер может содержать не более 9 worker-узлов из-за ограничения CKS в 10 узлов.
- Kubernetes: control plane, роутер и публичный IP кластера бесплатны для клиента; их себестоимость покрываете вы.
- Private Cloud: все тарифы — **unmetered**. Цены в форме указаны во вьетнамских донгах в месяц; в столбце себестоимости используется ориентировочная цена, поэтому используйте собственные расчеты.
- Заблокированный VPC ограничен скоростью 1 Mbps, не тарифицируется и не удаляется автоматически.
- Private Cloud использует один роутер на VPC, а не резервированную пару. В случае сбоя его хоста CloudStack восстанавливает его за несколько минут.

## Устранение неполадок {#troubleshooting}

| Симптом | Причина | Решение |
|---|---|---|
| `cp_offering_invalid` / "Этот Offering не соответствует 2 vCPU / 2048 MB / limitcpuuse" | Offering для control-plane имеет другие параметры или не имеет ограничения CPU | Создайте offering, как описано в шаге 3, и выберите его снова. |
| Переключатель **Enable CKS** неактивен | Не выбран offering для control-plane | Сначала выберите один из них. |
| `kubernetesserviceenabled: false` | CKS отключен в CloudStack | Включите его и перезапустите management server. |
| Ошибка проверки endpoint | `endpoint.url` недоступен из виртуальных машин кластера | Укажите доступный URL, перезапустите management server и нажмите **Recheck**. |
| "EOL: невозможно включить для продажи" | Срок поддержки версии истек | Зарегистрируйте более новую версию. |
| "Нет версий: нажмите Sync from CloudStack" | Не зарегистрировано ни одной версии Kubernetes | Зарегистрируйте версию и выполните синхронизацию. |
| "CKS backend отключен: клиенты не могут создавать кластеры, даже если включен флаг продажи" | Переключатель продаж включен, но бэкенд CKS отключен | Включите CKS на вкладке CloudStack. |
| "Как минимум 1 план должен быть в продаже" | Удален последний план worker | Оставьте хотя бы один план или отключите продажу Kubernetes. |
| Создание кластера зависло | Недостаточно ресурсов или отсутствует ISO | Проверьте вкладки емкости и статус ISO для этой версии. |
| Сбой создания нового VPC на первом шаге | Недопустимый ID для VPC offering или tier offering | Замените каждый UUID offering на значение из вашей инсталляции CloudStack. |
| "cs_offering_id должен быть UUID" | ID offering не является UUID | Вставьте id из `cmk list networkofferings`. |
| Ошибка при смене плана | Новый tier offering не существует или указан неверный network rate | Проверьте UUID для offering и его network rate. |


