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 — Конфигурация удалённого доступа к узлам в составе группы.

  • scalingConfig — Сведения о настройках масштабирования для Auto Scaling Group после обновления.

  • subnets — Подсети, указанные для Auto Scaling Group, связанной с группой рабочих узлов.

    • Тип: Array of strings

    • Необходимо: Нет

  • tags — Теги, назначаемые создаваемому ресурсу.

    • Тип: String map

    • Необходимо: Нет

  • taints — Taint-политики, применяемые к рабочим узлам в кластере Kubernetes.

    Внимание

    В этом объекте содержатся только те Taint-политики, которые были применены с помощью API.

    • Тип: Список объектов Taint

    • Необходимо: Нет

  • updateConfig — Конфигурация обновлений группы рабочих узлов.

  • 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 — Полное описание запрашиваемой группы рабочих узлов.

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