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)