Стадия жизненного цикла модуля: 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: NoScheduleNode 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"