Cluster

Подсказка

Актуальную спецификацию можно скачать и использовать в привычном инструменте.

Набор методов для управления кластером Kubernetes:

Метод API

HTTP-метод

Описание

Get

GET

Возвращает список кластеров Kubernetes

Get {serviceInstanceId}

GET

Возвращает данные по всем кластерам Kubernetes в рамках заказанной услуги

Get {clusterId}/metrics

GET

Возвращает данные по использованию ресурсов указанным кластером

Get {serviceInstanceId}/{clusterId}

GET

Возвращает данные по указанному кластеру в рамках заказанной услуги

Create

POST

Создает кластер Kubernetes

Update

PATCH

Обновляет версию кластера Kubernetes

Delete

DELETE

Удаляет кластер Kubernetes

Пример запроса на создание внешнего кластера Kubernetes

HTTP-запрос

POST https://api.sks.dzo.sbercloud.org/api/kubernetes/v1/clusters

Параметры тела запроса

{
  "serviceInstanceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "test-cluster-11",
  "masterSpec": {
    "version": "1.18.14",
    "masterType": "SINGLE_NODE",
    "maintenancePolicy": {
      "autoUpgrade": true,
      "maintenanceWindow": {
        "anytime": true
        "dailyMaintenanceWindow": {
          "startTime": {
            "hours": 1,
            "minutes": 0,
            "seconds": 0,
            "nanos": 0
          },
         "duration": "1"
       }
     }
   },
   "clusterType": {
     "externalCluster": {
       "ipv4Policy": {
         "clusterCidrBlock": "172.16.0.0/16"
       }
     }
   },
    "enableGrafana": true
    "audit": {
      "enabled": true
   }
}

Подсказка

Узнать и скопировать ServiceInstanceID

Пример запроса на создание внутреннего кластера Kubernetes

HTTP-запрос

POST https://api.sks.dzo.sbercloud.org/api/kubernetes/v1/clusters

Параметры тела запроса

{
  "serviceInstanceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "test-cluster-12",
  "masterSpec": {
    "version": "1.18.14",
    "masterType": "SINGLE_NODE",
    "maintenancePolicy": {
      "autoUpgrade": true,
      "maintenanceWindow": {
        "anytime": true,
        "dailyMaintenanceWindow": {
          "startTime": {
            "hours": 1,
            "minutes": 0,
            "seconds": 0,
            "nanos": 0
          },
         "duration": "1"
        }
      }
    },
    "clusterType": {
      "internalCluster": {
        "ipv4Policy": {
          "clusterCidrBlock": "172.16.0.0/16",
           "clusterNodesCidrBlock": "192.168.0.101",
           "enableSnat": true
        }
      }
    },
    "enableGrafana": true
    "audit": {
      "enabled": true
    }
 }

Подсказка

Узнать и скопировать ServiceInstanceID

POST /kubernetes/v1/clusters
Request JSON Object
  • audit.enabled (boolean) – флаг включения аудита

  • clusterType.externalCluster.ipv4Policy.clusterCidrBlock (string) – обязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов. Должен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918) Не допустимы пересечения ни с одной подсетью в облачной сети, в которой находится кластер Kubernetes

  • clusterType.internalCluster.ipv4Policy.clusterCidrBlock (string) – обязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов. Должен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918) Не допустимы пересечения ни с одной подсетью в облачной сети, в которой находится кластер Kubernetes

  • clusterType.internalCluster.ipv4Policy.clusterNodesCidrBlock (string) – диапазон IP-адресов, из которого будут выделяться IP-адреса для нод компонентов кластера (masters, workers). Должен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918) Также CIDR должен быть строго с маской /24. Не допустимы пересечения ни с одной подсетью в вашей облачной инфраструктуре

  • clusterType.internalCluster.ipv4Policy.enableSnat (boolean) – возможность при создании кластера создать source NAT правила на EdgeGateway заказчика услуги. Транслирующий адрес для сети кластера будет выделен случайным образом из диапазона публичных адресов, аллоцированных на вашем EdgeGateway

  • enableGrafana (boolean) – установка Grafana при создании кластера

  • masterSpec.maintenancePolicy.autoUpgrade (boolean) – политика автоматического обновления кластера. Если установлено значение true, автоматическое обновление устанавливается без участия пользователя в заданный промежуток времени. Если установлено значение false, автоматическое обновление отключено

  • masterSpec.maintenancePolicy.maintenanceWindow.anytime (object) – обновление мастера в любое время

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.duration (string) – продолжительность окна, от 1 до 24 часов

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.hours (integer) – временной промежуток обновления кластера в часах от 1 до 24

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.minutes (integer) – временной промежуток обновления кластера в минутах от 0 до 59

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.nanos (integer) – временной промежуток обновления кластера в наносекундах 0 до 999,999,999

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.seconds (integer) – временной промежуток обновления кластера в секундах от 0 до 59

  • masterSpec.masterType (string) – обязательное поле. Количество Master node в кластере один или три. Один Master node - добавьте значение SINGLE_NODE, три Master node - HIGH_AVAILABILITY

  • masterSpec.scaleDownUtilizationThreshold (number) – Deprecated. Суммарная нагрузка на группу узлов, ниже которой количество работающих узлов будет уменьшено. Пример: 0.1 = 10% Поле устарело. Необходимо использовать поле с одноименным названием в запросе на создание автомасштабируемой группы узлов

  • masterSpec.version (string) – обязательное поле. Версия Kubernetes. Список доступных версий

  • name (string) – обязательное поле. Название должно быть уникальным и содержать строчные буквы латинского алфавита и дефисы. Допустимое количество символов от 3 до 20

  • serviceInstanceId (string) – обязательное поле. Идентификатор услуги в облачной платформе

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • command (string) – команда на выполнениe (создать кластер, удалить кластер и т.п.)

  • createdAt (string) – время создания задачи

  • createdBy (string) – идентификатор пользователя или сервисного аккаунта, инициировавшего операцию

  • done (boolean) – статус выполнения запроса. Если значение равно false — операция еще выполняется. Если поле false и поле error не пустое - задача завершилась с ошибкой. Если true — операция завершена успешно.

  • doneAt (string) – время завершения выполнения задачи

  • error.code (integer) – код ошибки. Доступные коды ошибок определены в google.rpc.Code

  • error.details[].typeUrl (string) – дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами определены в google.rpc.Code

  • error.details[].value (string) – значение ошибки

  • error.message (string) – описание ошибки

  • id (string) – идентификатор задачи (task)

  • metadata (object) – метаданные задачи. Обычно в поле содержится идентификатор ресурса, над которым выполняется задача

DELETE /kubernetes/v1/clusters/{clusterId}
Parameters
  • clusterId (string) – идентификатор кластера

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • command (string) – команда на выполнениe (создать кластер, удалить кластер и т.п.)

  • createdAt (string) – время создания задачи

  • createdBy (string) – идентификатор пользователя или сервисного аккаунта, инициировавшего операцию

  • done (boolean) – статус выполнения запроса. Если значение равно false — операция еще выполняется. Если поле false и поле error не пустое - задача завершилась с ошибкой. Если true — операция завершена успешно.

  • doneAt (string) – время завершения выполнения задачи

  • error.code (integer) – код ошибки. Доступные коды ошибок определены в google.rpc.Code

  • error.details[].typeUrl (string) – дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами определены в google.rpc.Code

  • error.details[].value (string) – значение ошибки

  • error.message (string) – описание ошибки

  • id (string) – идентификатор задачи (task)

  • metadata (object) – метаданные задачи. Обычно в поле содержится идентификатор ресурса, над которым выполняется задача

PATCH /kubernetes/v1/clusters/{clusterId}
Parameters
  • clusterId (string) – идентификатор кластера

Request JSON Object
  • masterSpec.maintenancePolicy.autoUpgrade (boolean) – политика автоматического обновления кластера. Если установлено значение true, автоматическое обновление устанавливается без участия пользователя в заданный промежуток времени. Если установлено значение false, автоматическое обновление отключено

  • masterSpec.maintenancePolicy.maintenanceWindow.anytime (object) – обновление мастера в любое время

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.duration (string) – продолжительность окна, от 1 до 24 часов

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.hours (integer) – временной промежуток обновления кластера в часах от 1 до 24

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.minutes (integer) – временной промежуток обновления кластера в минутах от 0 до 59

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.nanos (integer) – временной промежуток обновления кластера в наносекундах 0 до 999,999,999

  • masterSpec.maintenancePolicy.maintenanceWindow.dailyMaintenanceWindow.startTime.seconds (integer) – временной промежуток обновления кластера в секундах от 0 до 59

  • masterSpec.masterType (string) – обязательное поле. Количество Master node в кластере один или три. Один Master node - добавьте значение SINGLE_NODE, три Master node - HIGH_AVAILABILITY

  • masterSpec.scaleDownUtilizationThreshold (number) – Deprecated. Суммарная нагрузка на группу узлов, ниже которой количество работающих узлов будет уменьшено. Пример: 0.1 = 10% Поле устарело. Необходимо использовать поле с одноименным названием в запросе на создание автомасштабируемой группы узлов

  • masterSpec.version (string) – обязательное поле. Версия Kubernetes. Список доступных версий

  • name (string) – название кластера

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • command (string) – команда на выполнениe (создать кластер, удалить кластер и т.п.)

  • createdAt (string) – время создания задачи

  • createdBy (string) – идентификатор пользователя или сервисного аккаунта, инициировавшего операцию

  • done (boolean) – статус выполнения запроса. Если значение равно false — операция еще выполняется. Если поле false и поле error не пустое - задача завершилась с ошибкой. Если true — операция завершена успешно.

  • doneAt (string) – время завершения выполнения задачи

  • error.code (integer) – код ошибки. Доступные коды ошибок определены в google.rpc.Code

  • error.details[].typeUrl (string) – дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами определены в google.rpc.Code

  • error.details[].value (string) – значение ошибки

  • error.message (string) – описание ошибки

  • id (string) – идентификатор задачи (task)

  • metadata (object) – метаданные задачи. Обычно в поле содержится идентификатор ресурса, над которым выполняется задача

GET /kubernetes/v1/clusters/{serviceInstanceId}
Parameters
  • serviceInstanceId (string) – идентификатор услуги в облачной платформе

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • clusters[].clusterType (string) – тип кластера

  • clusters[].createdAt (string) – время создания кластера

  • clusters[].endpoint (string) – эндпойнт кластера. Эндпойнты состоят из схемы и порта (т. е. https://ip-address:port) и могут использоваться клиентами для связи с API Kubernetes кластера Kubernetes.

  • clusters[].grafanaEndpoint (string) – данные эндпоинта подключения Grafana

  • clusters[].healthy (boolean) – состояние кластера

  • clusters[].id (string) – идентификатор кластера

  • clusters[].name (string) – название кластера

  • clusters[].nodePools[].availableReplicas (integer) – количество доступных реплик в группе узлов

  • clusters[].nodePools[].clusterId (string) – идентификатор кластера

  • clusters[].nodePools[].createdAt (string) – время создания группы узлов в кластере

  • clusters[].nodePools[].id (string) – идентификатор группы узлов, развернутых в кластере

  • clusters[].nodePools[].name (string) – название группы узлов

  • clusters[].nodePools[].nodes[].createdAt (string) – время создания узла

  • clusters[].nodePools[].nodes[].id (string) – идентификатор узла

  • clusters[].nodePools[].nodes[].ipAddress (string) – IP-адрес узла

  • clusters[].nodePools[].nodes[].name (string) – название узла

  • clusters[].nodePools[].nodes[].phase (string) – фаза развертывания узла

  • clusters[].nodePools[].scalePolicy.autoScale.initialCount (integer) – начальное количество узлов

  • clusters[].nodePools[].scalePolicy.autoScale.maxCount (integer) – максимальное количество узлов в группе узлов

  • clusters[].nodePools[].scalePolicy.autoScale.minCount (integer) – минимальное количество узлов в группе узлов

  • clusters[].nodePools[].scalePolicy.autoScale.scaleDownUtilizationThreshold (number) – суммарная нагрузка на группу узлов, ниже которой количество работающих узлов будет уменьшено

  • clusters[].nodePools[].scalePolicy.fixedScale.count (integer) – количество узлов в группе узлов

  • clusters[].nodePools[].taints[].effect (string) – объект Kubernetes, подробнее в документации Kubernetes

  • clusters[].nodePools[].taints[].key (string) – объект Kubernetes, подробнее в документации Kubernetes

  • clusters[].nodePools[].taints[].value (string) – объект Kubernetes, подробнее в документации Kubernetes

  • clusters[].nodePools[].version (string) – версия Kubernetes в группе узлов

  • clusters[].version (string) – версия Kubernetes

GET /kubernetes/v1/clusters/{clusterId}/metrics
Parameters
  • clusterId (string) – идентификатор кластера

Query Parameters
  • step (string) – шаг

  • start (string) – начало диапазона

  • end (string) – конец диапазона

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • clusterId (string) – идентификатор кластера

  • nodePoolMetrics[].cpu[].timestamp (string) – временной шаг

  • nodePoolMetrics[].cpu[].value (number) – значение метрики

  • nodePoolMetrics[].networkReceive[].timestamp (string) – временной шаг

  • nodePoolMetrics[].networkReceive[].value (number) – значение метрики

  • nodePoolMetrics[].networkTransmit[].timestamp (string) – временной шаг

  • nodePoolMetrics[].networkTransmit[].value (number) – значение метрики

  • nodePoolMetrics[].nodePoolId (string) – идентификатор группы узлов

  • nodePoolMetrics[].nodePoolName (string) – название группы узлов

  • nodePoolMetrics[].ram[].timestamp (string) – временной шаг

  • nodePoolMetrics[].ram[].value (number) – значение метрики

  • nodePoolMetrics[].storage[].timestamp (string) – временной шаг

  • nodePoolMetrics[].storage[].value (number) – значение метрики

GET /kubernetes/v1/clusters/{serviceInstanceId}/{clusterId}
Parameters
  • serviceInstanceId (string) – идентификатор услуги в облачной платформе

  • clusterId (string) – идентификатор кластера

Status Codes
  • 200 OK – A successful response

Response JSON Object
  • clusterType (string) – тип кластера

  • createdAt (string) – время создания кластера

  • endpoint (string) – эндпойнт кластера. Эндпойнты состоят из схемы и порта (т. е. https://ip-address:port) и могут использоваться клиентами для связи с API Kubernetes кластера Kubernetes.

  • grafanaEndpoint (string) – данные эндпоинта подключения Grafana

  • healthy (boolean) – состояние кластера

  • id (string) – идентификатор кластера

  • name (string) – название кластера

  • nodePools[].availableReplicas (integer) – количество доступных реплик в группе узлов

  • nodePools[].clusterId (string) – идентификатор кластера

  • nodePools[].createdAt (string) – время создания группы узлов в кластере

  • nodePools[].id (string) – идентификатор группы узлов, развернутых в кластере

  • nodePools[].name (string) – название группы узлов

  • nodePools[].nodes[].createdAt (string) – время создания узла

  • nodePools[].nodes[].id (string) – идентификатор узла

  • nodePools[].nodes[].ipAddress (string) – IP-адрес узла

  • nodePools[].nodes[].name (string) – название узла

  • nodePools[].nodes[].phase (string) – фаза развертывания узла

  • nodePools[].scalePolicy.autoScale.initialCount (integer) – начальное количество узлов

  • nodePools[].scalePolicy.autoScale.maxCount (integer) – максимальное количество узлов в группе узлов

  • nodePools[].scalePolicy.autoScale.minCount (integer) – минимальное количество узлов в группе узлов

  • nodePools[].scalePolicy.autoScale.scaleDownUtilizationThreshold (number) – суммарная нагрузка на группу узлов, ниже которой количество работающих узлов будет уменьшено

  • nodePools[].scalePolicy.fixedScale.count (integer) – количество узлов в группе узлов

  • nodePools[].taints[].effect (string) – объект Kubernetes, подробнее в документации Kubernetes

  • nodePools[].taints[].key (string) – объект Kubernetes, подробнее в документации Kubernetes

  • nodePools[].taints[].value (string) – объект Kubernetes, подробнее в документации Kubernetes

  • nodePools[].version (string) – версия Kubernetes в группе узлов

  • version (string) – версия Kubernetes