YandexClusterConfiguration

Version: deckhouse.io/v1

Пример:

sshPublicKey: ssh-rsa AAAAAAA
apiVersion: deckhouse.io/v1
kind: YandexClusterConfiguration
masterNodeGroup:
  replicas: 1
  instanceClass:
    cores: 1
    memory: 1024
    imageID: fd8nb7ecsbvj76dfaa8b
provider:
  cloudID: clnb7ecsbvj76dfaa8b
  folderID: fldrb7ecsbvj76dfaa8b
  serviceAccountJSON: '{"account": "a"}'
nodeNetworkCIDR: 127.0.0.1/8
labels:
  label-2: b
layout: Standard
  • apiVersionстрока

    Обязательный параметр

    Допустимые значения: deckhouse.io/v1, deckhouse.io/v1alpha1

  • dhcpOptionsобъект

    Список DHCP-опций, которые будут установлены на все подсети.

    Возможные проблемы при использовании.

    • domainNameстрока

      Search-домен.

    • domainNameServersмассив строк

      Список адресов рекурсивных DNS.

      • Элемент массивастрока

        Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

  • existingNetworkIDстрока

    ID существующей VPC Network.

  • existingZoneToSubnetIDMapобъект

    Одна или несколько ранее существовавших подсетей, сопоставленных с соответствующей зоной.

    Внимание! Deckhouse создаст таблицу маршрутизации, которую необходимо вручную привязать к указанными подсетям.

    Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}$

    Пример:

    existingZoneToSubnetIDMap:
      ru-central1-a: e2lu8r1tbbtryhdpa9ro
      ru-central1-b: e2lu8r1tbbtryhdpa9ro
      ru-central1-c: e2lu8r1tbbtryhdpa9ro
    
  • kindстрока

    Обязательный параметр

    Допустимые значения: YandexClusterConfiguration

  • labelsобъект

    Лейблы, проставляемые на ресурсы, создаваемые в Yandex.Cloud.

    Если поменять лейблы в рабочем кластере, то после применения изменений необходимо пересоздать все машины.

  • layoutстрока

    Обязательный параметр

    Название схемы размещения.

    Подробнее о возможных схемах размещения провайдера.

    Допустимые значения: Standard, WithoutNAT, WithNATInstance

  • masterNodeGroupобъект

    Обязательный параметр

    Спецификация для описания NodeGroup master-узлов.

    • instanceClassобъект

      Обязательный параметр

      Частичное содержимое полей YandexInstanceClass.

      • additionalLabelsобъект

        Дополнительные лейблы, которые будут присвоены созданным инстансам.

        Пример:

        project: cms-production
        severity: critical
        
      • coresцелочисленный

        Обязательный параметр

        Количество ядер у создаваемых инстансов.

      • diskSizeGBцелочисленный

        Размер диска (в гигабайтах) у инстансов.

        По умолчанию: 50

        Пример:

        diskSizeGB: 20
        
      • externalIPAddressesмассив строк

        Список внешних IP-адресов. Количество элементов массива должно соответствовать replicas.

        При отсутствии опции externalSubnetID необходимо использовать или зарезервированные публичные IP-адреса или константу Auto.

        При наличии опции externalSubnetID необходимо выбрать конкретные свободные IP-адреса из указанной подсети.

        • Элемент массивастрока

          Шаблон: ^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(Auto)$

      • externalSubnetIDПараметр устарелстрока

        Подключаемый к узлу дополнительный сетевой интерфейс, в который будет идти маршрут по умолчанию.

      • externalSubnetIDsмассив строк

        Подключаемый к узлу дополнительный сетевой интерфейс, в который будет идти маршрут по умолчанию.

        Также будет добавлен маршрут для internal-интерфейса узла на всю подсеть, указанную в nodeNetworkCIDR.

        Количество элементов массива должно соответствовать replicas.

      • imageIDстрока

        Обязательный параметр

        Идентификатор образа, который будет установлен в заказанные инстансы.

        Пример:

        imageID: fd8nb7ecsbvj76dfaa8b
        
      • memoryцелочисленный

        Обязательный параметр

        Количество оперативной памяти (в мегабайтах) у создаваемых инстансов.

        Пример:

        memory: 8192
        
      • networkTypeстрока

        Тип сети.

        По умолчанию: "Standard"

        Допустимые значения: Standard, SoftwareAccelerated

      • platformстрока

        Платформа виртуальной машины.

        По умолчанию: "standard-v2"

    • replicasцелочисленный

      Обязательный параметр

      Количество создаваемых master-узлов.

      Допустимые значения: 1 <= X

    • zonesмассив

      Необязательный параметр.

      Список зон, в которых допустимо создавать узлы.

      • Элемент массива

        Допустимые значения: ru-central1-a, ru-central1-b, ru-central1-c

  • nodeGroupsмассив объектов

    Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных frontend-узлов или шлюзов).

    • instanceClassобъект

      Обязательный параметр

      Частичное содержимое полей YandexInstanceClass.

      • additionalLabelsобъект

        Дополнительные лейблы, которые будут присвоены созданным инстансам.

        Пример:

        project: cms-production
        severity: critical
        
      • coreFractionцелочисленный

        Базовый уровень производительности каждого ядра CPU у создаваемых инстансов. Подробнее…

        По умолчанию: 100

        Допустимые значения: 0, 5, 20, 50, 100

        Пример:

        coreFraction: 20
        
      • coresцелочисленный

        Обязательный параметр

        Количество ядер у создаваемых инстансов.

      • diskSizeGBцелочисленный

        Размер диска (в гигабайтах) у инстансов.

        По умолчанию: 50

        Пример:

        diskSizeGB: 20
        
      • externalIPAddressesмассив строк

        Список внешних IP-адресов. Количество элементов массива должно соответствовать replicas.

        При отсутствии опции externalSubnetID необходимо использовать или зарезервированные публичные IP-адреса или константу Auto.

        При наличии опции externalSubnetID необходимо выбрать конкретные свободные IP-адреса из указанной подсети.

        • Элемент массивастрока

          Шаблон: ^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(Auto)$

      • externalSubnetIDПараметр устарелстрока

        Подключаемый к узлу дополнительный сетевой интерфейс, в который будет идти маршрут по умолчанию.

      • externalSubnetIDsмассив строк

        Подключаемый к узлу дополнительный сетевой интерфейс, в который будет идти маршрут по умолчанию.

        Также будет добавлен маршрут для internal-интерфейса узла на всю подсеть, указанную в nodeNetworkCIDR.

        Количество элементов массива должно соответствовать replicas.

      • imageIDстрока

        Обязательный параметр

        Идентификатор образа, который будет установлен в заказанные инстансы.

        Пример:

        imageID: fd8nb7ecsbvj76dfaa8b
        
      • memoryцелочисленный

        Обязательный параметр

        Количество оперативной памяти (в мегабайтах) у создаваемых инстансов.

        Пример:

        memory: 8192
        
      • networkTypeстрока

        Тип сети.

        По умолчанию: "Standard"

        Допустимые значения: Standard, SoftwareAccelerated

      • platformстрока

        Платформа виртуальной машины.

        По умолчанию: "standard-v2"

    • nameстрока

      Обязательный параметр

      Имя NodeGroup, которое будет использоваться для генерации имен узлов.

    • nodeTemplate

      Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узла.

      • annotationsобъект

        Аналогично стандартному полю metadata.annotations.

        Пример:

        annotations:
          ai.fleet.com/discombobulate: "true"
        
      • labelsобъект

        Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если они это поддерживают).

        Аналогично стандартному полю metadata.labels.

        Если поменять теги в рабочем кластере, то после применения изменений необходимо пересоздать все машины.

        Пример:

        labels:
          environment: production
          app: warp-drive-ai
        
      • taintsмассив объектов

        Аналогично полю .spec.taints из объекта Node.

        Внимание! Доступны только поля effect, key, values.

        Пример:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • effectстрока

          Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

        • keyстрока
        • valueстрока
    • replicasцелочисленный

      Обязательный параметр

      Количество узлов.

    • zonesмассив

      Список зон, в которых допустимо создавать узлы.

      • Элемент массива

        Допустимые значения: ru-central1-a, ru-central1-b, ru-central1-c

  • nodeNetworkCIDRстрока

    Обязательный параметр

    Данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud.

  • providerобъект

    Обязательный параметр

    • cloudIDстрока

      Обязательный параметр

      Идентификатор облака.

    • folderIDстрока

      Обязательный параметр

      Идентификатор директории.

    • serviceAccountJSONстрока

      Обязательный параметр

      Ключ к Service Account’у в JSON-формате, выдаваемый yc iam key create.

      Шаблон: ^[ \t\n]*\{(.|\n)*\}[ \t\n]*$

      Пример:

      serviceAccountJSON: |
        {
           "id": "...",
           "service_account_id": "...",
           "created_at": "2022-08-04T05:38:34.756137618Z",
           "key_algorithm": "RSA_2048",
           "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n",
           "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n"
        }
      
  • sshPublicKeyстрока

    Обязательный параметр

    Публичный ключ для доступа на узлы.

  • withNATInstanceобъект

    Настройки для схемы размещения WithNATInstance.

    • exporterAPIKeyстрока

      API-ключ для экспортера метрик Яндекс Облака.

      • Если значение ключа — пустая строка, то экспортер не будет развернут в кластере.
      • Если значение ключа — Auto, то Deckhouse создаст service account c ролью monitoring.viewer и API-ключ для него. Для основного service account’а требуется роль admin.
      • Любое другое значение ключа считается допустимым API-ключем. Используйте инструкцию для создания API-ключа. Service account’у, для которого будет создан ключ, необходимо назначить роль monitoring.viewer.

      По умолчанию: ""

    • externalSubnetIDстрока

      Подключаемый к узлу дополнительный сетевой интерфейс, в который будет идти маршрут по умолчанию.

    • internalSubnetIDстрока

      ID подсети для внутреннего интерфейса.

    • natInstanceExternalAddressстрока

      Внешний зарезервированный IP-адрес или адрес из externalSubnetID при указании опции.

      Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

    • natInstanceInternalAddressПараметр устарелстрока

      Лучше не использовать эту опцию, а использовать автоматически назначаемые адреса.

      Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

  • zonesмассив

    Глобальное ограничение набора зон, с которыми работает данный cloud provider.

    • Элемент массива

      Допустимые значения: ru-central1-a, ru-central1-b, ru-central1-c