Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

HiveMetastoreClass

Кластерный ресурс HiveMetastoreClass позволяет ограничить создание недопустимых конфигураций и предопределить некоторые значения. Каждый ресурс HiveMetastore должен быть связан с существующим ресурсом HiveMetastoreClass. Перед развертыванием сервиса вся конфигурация будет проверена в соответствии с соответствующим HiveMetastoreClass.

Sizing Policies

Структура, позволяющая создать набор политик для определения размера связанного HiveMetastore. Это поможет избежать неравномерного распределения ресурсов ЦП и памяти на узлах кластера. Определяющим фактором выбора конкретной политики является попадание в интервал cores. Затем будет проверяться соблюдение других полей конкретной политики.

spec:
  sizingPolicies:
    - cores:
        min: 1
        max: 4
      memory:
        min: 100Mi
        max: 1Gi
        step: 1Mi
      coreFraction: [10%, 30%, 50%]
    - cores:
        min: 5
        max: 10
      memory:
        min: 500Mi
        max: 2Gi
      coreFraction: [50%, 70%, 100%]

Validation Rules

CEL (Common Expression Language) используется в качестве синтаксиса для создания гибких механизмов проверки. Мы предоставляем набор предопределенных переменных, которые могут использоваться в rule:

  • instance.memory.size
  • instance.cpu.cores
spec:
  validations:
    - message: "Количество ядер ЦП должно быть от 1 до 8"
      rule: "instance.cpu.cores >= 1 && instance.cpu.cores <= 64"

Стандартный механизм Kubernetes для управления планированием развернутых подов.
```yaml
  nodeSelector:
    "node.deckhouse.io/group": "hms"

Affinity

Стандартный механизм Kubernetes для управления планированием разворачиваемых подов.

spec:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: "node.deckhouse.io/group"
          operator: "In"
          values:
          - "kafka"

Tolerations

Стандартный механизм Kubernetes для управления планированием разворачиваемых подов.

spec:
  tolerations:
  - key: primary-role
    operator: Equal
    value: kafka
    effect: NoSchedule

Node Selector

Стандартный механизм Kubernetes для управления планированием разворачиваемых подов.

Usage Examples

Basic Usage

apiVersion: managed-services.deckhouse.io/v1alpha1
kind: HiveMetastoreClass
metadata:
  name: default
spec:
  sizingPolicies:
    - cores:
        min: 1
        max: 2
      memory:
        min: 2Gi
        max: 4Gi
        step: 512Mi
      coreFractions:
        - "25%"
        - "50%"
        - "75%"
        - "100%"
  validations:
    - message: "Количество ядер ЦП должно быть от 1 до 8"
      rule: "instance.cpu.cores >= 1 && instance.cpu.cores <= 16"