CreateNodegroup
In this article:
CreateNodegroup#
Description#
Создание группы рабочих узлов.
Request Syntax#
POST /clusters/name/node-groups HTTP/1.1
Content-type: application/json
{
"capacityType": "string",
"diskSize": number,
"instanceTypes": [ "string" ],
"labels": {
"string" : "string"
},
"launchTemplate": {
"id": "string",
"name": "string",
"version": "string"
},
"nodegroupName": "string",
"remoteAccess": {
"ec2SshKey": "string",
},
"scalingConfig": {
"desiredSize": number,
"maxSize": number,
"minSize": number
},
"subnets": [ "string" ],
"tags": {
"string" : "string"
},
"taints": [
{
"effect": "string",
"key": "string",
"value": "string"
}
],
"updateConfig": {
"maxUnavailable": number,
"maxUnavailablePercentage": number
}
}
URI Request Parameters#
В запросе используются следующие параметры URI.
name — Имя кластера, в котором будет создана группа рабочих узлов.
Необходимо: Да
Request Parameters#
Необходимые параметры#
instanceTypes — Тип экземпляра. Определяется по первому переданному элементу.
Тип: Array of strings
Необходимо: Да
nodegroupName — Уникальное имя для создаваемой группы рабочих узлов.
Тип: String
Необходимо: Да
Опциональные параметры#
capacityType — Способ предоставления вычислительных ресурсов для группы рабочих узлов.
Тип: String
Возможные значения:
ON_DEMAND
Необходимо: Нет
Значение по умолчанию:
ON_DEMAND
diskSize — Размер диска в конфигурации группы рабочих узлов.
Тип: Integer
Необходимо: Нет
labels — Метки Kubernetes, которые будут применены к узлам в группе рабочих узлов после создания.
Тип: Объект UpdateLabelsPayload
Ограничение длины ключа: Минимум —
1
. Максимум —63
.Ограничение длины значения: Минимум —
1
. Максимум —63
.Необходимо: Нет
remoteAccess — Конфигурация удалённого доступа к узлам в составе группы.
Тип: Объект remoteAccessConfig
Необходимо: Нет
scalingConfig — Сведения о настройках масштабирования для Auto Scaling Group после обновления.
Тип: Объект NodegroupScalingConfig
Необходимо: Нет
subnets — Подсети, указанные для Auto Scaling Group, связанной с группой рабочих узлов.
Тип: Array of strings
Необходимо: Нет
tags — Теги, назначаемые создаваемому ресурсу.
Тип: String map
Необходимо: Нет
taints — Taint-политики, применяемые к рабочим узлам в кластере Kubernetes.
Внимание
В этом объекте содержатся только те Taint-политики, которые были применены с помощью API.
Тип: Список объектов Taint
Необходимо: Нет
updateConfig — Конфигурация обновлений группы рабочих узлов.
Тип: Объект NodegroupUpdateConfig
Необходимо: Нет
version — Версия Kubernetes для группы рабочих узлов.
Тип: String
Необходимо: Нет
Response Syntax#
HTTP/1.1 200
Content-type: application/json
{
"nodegroup": {
"capacityType": "string",
"clusterName": "string",
"createdAt": number,
"diskSize": number,
"health": {
"issues": [
{
"code": "string",
"message": "string",
"resourceIds": [ "string" ]
}
]
},
"instanceTypes": [ "string" ],
"labels": {
"string" : "string"
},
"launchTemplate": {
"id": "string",
"name": "string",
"version": "string"
},
"modifiedAt": number,
"nodegroupArn": "string",
"nodegroupName": "string",
"nodeRole": "string",
"remoteAccess": {
"ec2SshKey": "string",
},
"resources": {
"autoScalingGroups": [
{
"name": "string"
}
],
},
"scalingConfig": {
"desiredSize": number,
"maxSize": number,
"minSize": number
},
"status": "string",
"subnets": [ "string" ],
"tags": {
"string" : "string"
},
"taints": [
{
"effect": "string",
"key": "string",
"value": "string"
}
],
"updateConfig": {
"maxUnavailable": number,
"maxUnavailablePercentage": number
},
"version": "string"
}
}
Response Elements#
В случае успешного выполнения запроса API вернёт HTTP-ответ с кодом 200. В ответе содержатся следующие данные в формате JSON.
nodegroup — Полное описание запрашиваемой группы рабочих узлов.
Тип: Объект Nodegroup
Examples#
boto3 K2 Cloud boto3 Client
import boto3
session = boto3.Session(
aws_access_key_id="<AWS_ACCESS_KEY_ID>",
aws_secret_access_key="<AWS_SECRET_ACCESS_KEY>",
region_name="",
)
eks_client = session.client(
'eks',
endpoint_url='https://eks.k2.cloud/',
)
eks_client.create_nodegroup(
clusterName="production",
nodegroupName="test",
subnets=["subnet-9EFF2520"],
scalingConfig={
"desiredSize": 2,
"minSize": 1,
"maxSize": 5
},
instanceTypes=["t1.medium"],
labels={
"test-label": "test-label-value"
},
taints=[
{"key": "key1", "value": "value", "effect": "NO_SCHEDULE"},
{"key": "key", "effect": "NO_EXECUTE"}
],
remoteAccess={
"ec2SshKey": "production"
}
)
c2-eks K2 Cloud API Client
c2-eks CreateNodegroup \
clusterName production \
nodegroupName test \
instanceTypes.0 t1.medium \
subnets.0 subnet-9EFF2520 \
scalingConfig.minSize 1 \
scalingConfig.maxSize 3 \
scalingConfig.desiredSize 2
aws-cli
aws eks create-nodegroup \
--endpoint https://eks.k2.cloud/
--cluster-name production \
--nodegroup-name test \
--scaling-config minSize=1,maxSize=5,desiredSize=3 \
--instance-types c5.medium \
--subnets subnet-12345678 subnet-98765432 \
--disk-size 20 \
--tags Key=Name,Value=your-nodegroup-tag