UpdateNodegroupConfig
In this article:
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, которые будут назначены всем рабочим узлам в группе рабочих узлов после обновления.
Тип: Объект UpdateLabelsPayload
Необходимо: Нет
scalingConfig — Сведения о настройках масштабирования для Auto Scaling Group после обновления.
Тип: Объект NodegroupScalingConfig
Необходимо: Нет
taints — Taint-политики Kubernetes, которые будут применены к узлам в группе рабочих узлов после обновления.
Тип: Объект UpdateTaintsPayload
Необходимо: Нет
updateConfig — Настройки обновления группы рабочих узлов.
Тип: Объект NodegroupUpdateConfig
Необходимо: Нет
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 — Описание асинхронного обновления.
Тип: Объект 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