Kubernetes

Кластер Kubernetes. Kubernetes — открытое программное обеспечение для оркестрации контейнеризированных приложений — автоматизации их развёртывания, масштабирования и координации в условиях кластера. Кластер состоит из нескольких серверов - нод. Существует мастер-нода, главная управляющая нода кластера и обычные ноды, которые находятся под управлением мастер-ноды. Для создания кластера необходим создать или использовать созданный публичный ключ.

Объект «кластер kubernetes»

class esu.Kubernetes(*args, token: Optional[str] = None, **kwargs)[исходный код]
Параметры:
  • id (str) – Идентификатор

  • name (str) – Имя

  • node_cpu (int) – CPU нод

  • node_ram (int) – RAM нод

  • node_disk_size (int) – Размер диска нод

  • node_storage_profile (object) – Объект esu.StorageProfile

  • nodes_count (int) – Количество нод в кластере

  • vdc (object) – Объект класса esu.Vdc. ВЦОД, к которому относится данный кластер

  • template (str) – Идентификатор шаблона Kubernetes

  • user_public_key (string) – публичный SSH ключ

  • floating (object) – Объект класса esu.Port. Порт подключения кластера к внешней сети. Если None, кластер не имеет подключения к внешней сети.

classmethod get_object(id, token=None)[исходный код]

Получить объект kubernetes по его ID

Параметры:
  • id (str) – Идентификатор Kubernetes

  • token (str) – Токен для доступа к API. Если не передан, будет использована переменная окружения ESU_API_TOKEN

Результат:

Возвращает объект кластера kubernetes esu.Kubernetes

Тип результата:

object

create()[исходный код]

Создать объект

Исключение:
  • ObjectAlreadyHasId – Если производится попытка создать объект,

  • который уже существует

save()[исходный код]

Сохранить изменения

destroy()[исходный код]

Удалить объект

Исключение:

ObjectHasNoId – Когда производится попытка удалить несуществующий объект

get_dashbord_url()[исходный код]

Получить ссылку на Dashboard для открытия консоли k8s

Результат:

Адрес дашборда

Тип результата:

str

Примеры использования

Создать кластер kubernetes:

from esu import Vdc, Kubernetes, PublicKey
vdc = Vdc.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
key = PublicKey.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
storage_profile = vdc.get_storage_profiles()[0]  # Первый доступный профиль хранения
k8s_template = next(v for v in vdc.get_k8s_templates() if 'Kubernetes 1.22.1' in v.name)  # Шаблон кластера
cluster = Kubernetes(name="MyK8S", vdc=vdc, node_cpu=2, node_ram=2,
                     node_disk_size=10, node_storage_profile=storage_profile,
                     nodes_count=2, template=k8s_template, user_public_key=key)