UpdateNodegroupConfig#

Description#

Запрос на обновление конфигурации группы рабочих узлов. Во время обновления группа рабочих узлов продолжает функционировать. С помощью запроса можно обновить метки и Taint-политики Kubernetes для группы рабочих узлов или настройки масштабирования.

Request Syntax#

 POST /clusters/name/node-groups/nodegroupName/update-config HTTP/1.1

 Content-type: application/json
 {
    "labels": {
       "addOrUpdateLabels": {
          "string" : "string"
       },
       "removeLabels": [ "string" ]
    },
    "scalingConfig": {
       "desiredSize": number,
       "maxSize": number,
       "minSize": number
    },
    "taints": {
       "addOrUpdateTaints": [
          {
             "effect": "string",
             "key": "string",
             "value": "string"
          }
       ],
       "removeTaints": [
          {
             "effect": "string",
             "key": "string",
             "value": "string"
          }
       ]
    },
    "updateConfig": {
       "maxUnavailable": number,
       "maxUnavailablePercentage": number
    }
 }

URI Request Parameters#

В запросе используются следующие параметры URI.

  • name — Имя кластера, в котором находится группа рабочих узлов.

    • Тип: String

    • Необходимо: Да

  • nodegroupName — Имя обновляемой группы.

    • Необходимо: Да

Request Parameters#

  • labels — Метки Kubernetes, которые будут назначены всем рабочим узлам в группе рабочих узлов после обновления.

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

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

  • updateConfig — Настройки обновления группы рабочих узлов.

Response Syntax#

HTTP/1.1 200
Content-type: application/json

{
   "update": {
      "createdAt": number,
      "errors": [
         {
            "errorCode": "string",
            "errorMessage": "string",
            "resourceIds": [ "string" ]
         }
      ],
      "id": "string",
      "params": [
         {
            "type": "string",
            "value": "string"
         }
      ],
      "status": "string",
      "type": "string"
   }
}

Response Elements#

В случае успешного выполнения запроса API вернёт HTTP-ответ с кодом 200. В ответе содержатся следующие данные в формате JSON.

  • update — Описание асинхронного обновления.

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.update_nodegroup_config(
    clusterName="production",
    nodegroupName="first",
    labels={
        "addOrUpdateLabels": {
            "labelkey": "labelvalue"
        },
        "removeLabels": ["labeltoremove"],
    },
    scalingConfig={
        "minSize": 1,
        "maxSize": 3,
        "desiredSize": 2,
    },
    taints={
        "addOrUpdateTaints": [
            {"key": "first", "value": "value", "effect": "NO_SCHEDULE"},
            {"key": "second", "value": "value", "effect": "NO_EXECUTE"},
        ],
        "removeTaints": [
            {"key": "third", "value": "value", "effect": "NO_EXECUTE"},
        ],
    }
    updateConfig={
        "maxUnavailable" 10,
    }
)
c2-eks K2 Cloud API Client
c2-eks UpdateNodegroupConfig \
    clusterName production \
    nodegroupName first \
    taints.addOrUpdateTaints.0.key first \
    taints.addOrUpdateTaints.0.value value \
    taints.addOrUpdateTaints.0.effect NO_SCHEDULE \
    taints.removeTaints.0.key second \
    taints.removeTaints.0.value value \
    taints.removeTaints.0.effect NO_SCHEDULE \
    labels.addOrUpdateLabels.one value \
    labels.addOrUpdateLabels.two value \
    labels.removeLabels.0 three \
    scalingConfig.minSize 1 \
    scalingConfig.desiredSize 2 \
    scalingConfig.maxSize 3
aws-cli
aws eks --endpoint https://eks.k2.cloud/ \
    update-nodegroup-config \
  --cluster-name production \
  --nodegroup-name first \
  --labels addOrUpdateLabels={one=value,two=value},removeLabels=three,four \
  --taints addOrUpdateTaints=[{key=key,value=string,effect=string},{key=string,value=string,effect=string}],removeTaints=[{key=string,value=string,effect=string},{key=string,value=string,effect=string}] \
  --scaling-config minSize=1,maxSize=3,desiredSize=2 \
  --update-config maxUnavailable=1