Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
OpensearchClass
Кластерный ресурс OpensearchClass позволяет ограничить создание невалидных конфигураций и предопределить параметры развёртывания.
Каждый ресурс Opensearch обязательно должен быть связан с существующим ресурсом OpensearchClass.
Перед развёртыванием сервиса вся конфигурация валидируется о соответствующий OpensearchClass.
Spec ресурса OpensearchClass неизменяем после создания. Для изменения конфигурации создайте новый класс.
Политики масштабирования
Политики масштабирования определяют допустимые диапазоны CPU и памяти для связанных инстансов Opensearch.
Определяющий фактор выбора политики — попадание в интервал cores.
Далее проверяется соответствие остальных полей выбранной политики.
spec:
sizingPolicies:
- cores:
min: 1
max: 4
memory:
min: 1Gi
max: 8Gi
step: 1Gi
coreFractions:
- 50%
- 100%
- cores:
min: 5
max: 10
memory:
min: 4Gi
max: 32Gi
step: 1Gi
coreFractions:
- 100%Правила валидации
В качестве синтаксиса используется CEL (Common Expression Language) для создания гибких механизмов валидации.
Предопределённые переменные, доступные в rule:
- instance.memory.size
- instance.cpu.cores
spec:
validations:
- message: "Memory must be at least 2x CPU cores in GiB"
rule: "instance.memory.size >= instance.cpu.cores * 2147483648"Привязка к узлам (Affinity)
Стандартный механизм Kubernetes для управления размещением подов.
spec:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "node.deckhouse.io/group"
operator: "In"
values:
- "opensearch"Допуски (Tolerations)
spec:
tolerations:
- key: dedicated
operator: Equal
value: opensearch
effect: NoScheduleВыбор узла (Node Selector)
spec:
nodeSelector:
"node.deckhouse.io/group": "opensearch"Примеры использования
Базовое использование
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: OpensearchClass
metadata:
name: default
spec:
sizingPolicies:
- cores:
min: 1
max: 4
memory:
min: 2Gi
max: 8Gi
step: 1Gi
coreFractions:
- 50%
- 100%
- cores:
min: 5
max: 10
memory:
min: 8Gi
max: 32Gi
step: 1Gi
coreFractions:
- 100%