Стадия жизненного цикла модуля: Preview
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
Postgres
Scope: Namespaced
Version: v1alpha1
-
строкаapiVersionAPIVersion определяет версионную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind — это строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут определить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspecPostgresSpec определяет желаемое состояние Postgres
-
объектspec.clusterСтруктура, которая определяет настройки кластера, такие как топология и репликация
-
строкаspec.cluster.replication
Настройка репликации определяет количество и тип реплик Возможные значения:
- Availability: кластер с Master + 1 асинхронная реплика
- Consistency: кластер с Master + 1 синхронная реплика
- ConsistencyAndAvailability: кластер с Master + 1 синхронная реплика + 1 асинхронная реплика
По умолчанию:
ConsistencyAndAvailabilityДопустимые значения:
Availability,Consistency,ConsistencyAndAvailability -
строкаspec.cluster.topology
Настройка топологии определяет, как планировщику разворачивать кластер
- Zonal: кластер будет развернут в одну зону. Если возможно
- TransZonal: кластер будет развернут в разные зоны. Если возможно
- Ignored: кластер будет развернут с правилами планирования k8s по умолчанию, будет обеспечено только разделение узлов по нодам
Пример:
topology: Ignored
-
-
объектspec.configurationПараметры конфигурации Postgres
-
целочисленныйspec.configuration.maxConnections
Определяет максимальное количество одновременных подключений к серверу базы данных. Этот параметр можно установить только при запуске сервера.
PostgreSQL размеры определенных ресурсов основываются непосредственно на значении max_connections. Увеличение его значения приводит к более высокому выделению этих ресурсов, включая разделяемую память.
Пример:
maxConnections: 100 -
строка или число
Устанавливает количество памяти, которое сервер базы данных использует для буферов разделяемой памяти. Этот параметр должен быть не менее 128 килобайт. Однако значения значительно выше минимума обычно нужны для хорошей производительности. Этот параметр можно установить только при запуске сервера.
Если у вас есть выделенный сервер базы данных с 1 ГБ или более ОЗУ, разумное значение для shared_buffers составляет 25% от памяти в вашей системе. Есть некоторые рабочие нагрузки, где даже большие настройки для shared_buffers эффективны, но поскольку PostgreSQL также полагается на кэш операционной системы, маловероятно, что выделение более 25% ОЗУ для shared_buffers будет работать лучше, чем меньшее количество. Большие настройки для shared_buffers обычно требуют соответствующего увеличения max_wal_size, чтобы распределить процесс записи больших объемов новых или измененных данных на более длительный период времени.
В системах с менее чем 1 ГБ ОЗУ подходящий меньший процент ОЗУ, чтобы оставить достаточно места для операционной системы. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
sharedBuffers: 250Mi -
строка или числоspec.configuration.walKeepSize
Указывает минимальный размер прошлых файлов WAL, хранящихся в каталоге pg_wal, на случай, если резервный сервер должен получить их для потоковой репликации. Если резервный сервер, подключенный к отправляющему серверу, отстает более чем на wal_keep_size мегабайт, отправляющий сервер может удалить сегмент WAL, который все еще нужен резервному, в этом случае соединение репликации будет прервано. Нисходящие соединения также в конечном итоге завершатся ошибкой в результате. (Однако резервный сервер может восстановиться, получив сегмент из архива, если используется архивирование WAL.)
Это устанавливает только минимальный размер сегментов, сохраняемых в pg_wal; системе может потребоваться сохранить больше сегментов для архивирования WAL или для восстановления из контрольной точки. Если wal_keep_size равно нулю (по умолчанию), система не сохраняет никаких дополнительных сегментов для целей резервного копирования, поэтому количество старых сегментов WAL, доступных резервным серверам, является функцией местоположения предыдущей контрольной точки и статуса архивирования WAL. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
walKeepSize: 512Mi -
строка или числоspec.configuration.workMem
Устанавливает базовое максимальное количество памяти, которое должно использоваться операцией запроса (например, сортировка или хэш-таблица) перед записью во временные файлы на диске. Если это значение указано без единиц, оно принимается как килобайты. Значение по умолчанию — четыре мегабайта (4 МБ). Обратите внимание, что сложный запрос может выполнять несколько операций сортировки и хеширования одновременно, при этом каждая операция обычно может использовать столько памяти, сколько указывает это значение, прежде чем начнет записывать данные во временные файлы. Кроме того, несколько запущенных сессий могут выполнять такие операции одновременно. Поэтому общая используемая память может быть во много раз больше значения work_mem; необходимо помнить об этом факте при выборе значения. Операции сортировки используются для ORDER BY, DISTINCT и слияний соединений. Хэш-таблицы используются в хэш-соединениях, хэш-агрегации, узлах memoize и хэш-обработке подзапросов IN.
Хэш-операции обычно более чувствительны к доступности памяти, чем эквивалентные операции на основе сортировки. Лимит памяти для хэш-таблицы вычисляется путем умножения work_mem на hash_mem_multiplier. Это позволяет хэш-операциям использовать количество памяти, превышающее обычное базовое количество work_mem. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
workMem: 4Mi
-
-
объектspec.dataSourceИсточник данных, используемый для инициализации Postgres из PostgresSnapshot или других источников данных
-
объектspec.dataSource.objectRef
Обязательный параметр
Ссылка на объект, содержащий исходные данные-
строкаspec.dataSource.objectRef.kind
Обязательный параметр
Тип ресурса (например, PostgresSnapshot) -
строкаspec.dataSource.objectRef.name
Обязательный параметр
Имя ресурса
-
-
-
массив объектовspec.databasesСписок логических баз данных PostgreSQL.
-
строкаspec.databases.nameИмя логической базы данных, которая будет создана.
Пример:
name: mydb
-
-
объектspec.instance
Обязательный параметр
Требования к ресурсам каждого сгенерированного Pod. Пожалуйста, пройдите по ссылке https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ для получения дополнительной информации.-
объектspec.instance.cpu
Обязательный параметр
-
целочисленныйspec.instance.cpu.coreFraction
Обязательный параметр
CoreFraction — множитель для requests от limits ядерПример:
coreFraction: 50 -
целочисленныйspec.instance.cpu.cores
Обязательный параметр
Количество ядер процессора
-
-
объектspec.instance.memory
Обязательный параметр
-
строка или числоspec.instance.memory.size
Обязательный параметр
Размер памятиШаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
size: 1Gi
-
-
объектspec.instance.persistentVolumeClaim
Обязательный параметр
-
строкаspec.instance.persistentVolumeClaim.size
Обязательный параметр
Размер хранилищаПо умолчанию:
1GiПример:
size: 1Gi -
строкаspec.instance.persistentVolumeClaim.storageClassNameИмя storage class, который будет использоваться как хранилище для postgres. Если пусто, будет использован storageClass, который используется по умолчанию в кластере k8s. Настройка устанавливается один раз и не может быть изменена во время обновления.
Пример:
storageClassName: local-path
-
-
-
строкаspec.postgresClassName
Обязательный параметр
Имя PostgresClass Kind, которое должно быть указано для валидации настроекПо умолчанию:
defaultПример:
postgresClassName: small -
объектspec.tlsНастройки TLS для сервера Postgres
-
объектspec.tls.certManagerНастройки CertManager для управления TLS сертификатами Доступны только при
mode=CertManager-
строкаspec.tls.certManager.clusterIssuerNameИмя ресурса ClusterIssuer для cert-manager Должно быть указано только одно поле: или
clusterIssuerNameилиissuerName -
строкаspec.tls.certManager.issuerNameИмя ресурса Issuer для cert-manager Должно быть указано только одно поле: или
clusterIssuerNameилиissuerName
-
-
объектspec.tls.customCertificateНастройки CustomCertificate для управления TLS сертификатами Доступны только при
mode=CustomCertificate-
строкаspec.tls.customCertificate.serverCASecret
Обязательный параметр
Имя секрета, содержащего CA сертификат для TLS сервера Postgres -
строкаspec.tls.customCertificate.serverTLSSecret
Обязательный параметр
Имя секрета, содержащего TLS сертификат для сервера Postgres
-
-
строкаspec.tls.mode
Обязательный параметр
Режим работы с TLS сертификатами
- CertManager: использовать cert-manager для управления сертификатами (по-умолчанию)
- CustomCertificate: использовать собственные сертификаты из секретов
- K8s: использовать Kubernetes CA для выпуска сертификатов
По умолчанию:
CertManagerДопустимые значения:
CertManager,CustomCertificate,K8s
-
-
строкаspec.typeType указывает тип кластера
По умолчанию:
ClusterДопустимые значения:
Cluster,Standalone -
массив объектовspec.usersСписок внутренних пользователей PostgreSQL.
-
строкаspec.users.hashedPassword
Хешированный пароль для роли PostgreSQL.
Поддерживаемые форматы:
- MD5;
- SCRAM-SHA-256.
Если вы укажете здесь обычный пароль, он будет автоматически заменен на хеш в формате MD5 или SCRAM-SHA-256.
Пример:
hashedPassword: SCRAM-SHA-256$4096:9bdAkxfJ7tMWaVlcOSyKLc8uUbvVi+KBBYXWCE14maM=$g13sNwuKH0VsQnh43WqlQj8KPwS/2smQL1m0JzJkowI=:rImReuq6U7mD4KoJGIDelxsFVlXoB1stP8olJZr5Gl4= -
строкаspec.users.nameИмя пользователя, который будет создан в PostgreSQL.
Пример:
name: myuser -
строкаspec.users.password
Пароль для роли PostgreSQL в открытом виде.
При указании автоматически преобразуется в
hashedPassword, после чего удаляется из.spec.Если вы хотите хранить пароль в открытом виде в секрете Kubernetes, используйте параметр
storeCredsToSecret.Пример:
password: "123" -
строкаspec.users.role
Предопределённая роль, в которую будет добавлен созданный пользователь.
Поддерживаемые значения:
ro(только чтение);rw(чтение и запись);monitoring(для сбора метрик).
Допустимые значения:
ro,rw,monitoringПример:
role: rw -
строкаspec.users.storeCredsToSecret
Имя Kubernetes Secret, в который оператор сохранит пароль в открытом виде.
Секрет будет создан в том же пространстве имён, где расположен ресурс. Будут сформированы строки подключения ко всем созданным базам данных.
Пример:
storeCredsToSecret: myuser-secret
-
-
PostgresClass
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion определяет версионную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind — это строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут определить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspecPostgresClassSpec определяет желаемое состояние PostgresClass Ресурс для администратора кластера, который может валидировать ресурсы Postgres параметрами allowedConfiguration, sizingPolicies, validationRules и т.д.
-
объектspec.configurationПараметры конфигурации PostgreSQL. Любые параметры, которые будут указаны здесь, будут использоваться как значения по умолчанию в связанных Postgres Custom Resources
-
целочисленныйspec.configuration.maxConnections
Определяет максимальное количество одновременных подключений к серверу базы данных. Этот параметр будет применен только при перезапуске сервера.
PostgreSQL размеры определенных ресурсов основываются непосредственно на значении max_connections. Увеличение его значения приводит к более высокому выделению этих ресурсов, включая разделяемую память.
Пример:
maxConnections: 100 -
строка или число
Устанавливает количество памяти, которое сервер базы данных использует для буферов разделяемой памяти. Этот параметр должен быть не менее 128 килобайт. Однако значения значительно выше минимума обычно нужны для хорошей производительности. Этот параметр будет применен только при перезапуске сервера.
Если у вас есть выделенный сервер базы данных с 1 ГБ или более ОЗУ, разумное значение для shared_buffers составляет 25% от памяти в вашей системе. Есть некоторые рабочие нагрузки, где даже большие настройки для shared_buffers эффективны, но поскольку PostgreSQL также полагается на кэш операционной системы, маловероятно, что выделение более 25% ОЗУ для shared_buffers будет работать лучше, чем меньшее количество. Большие настройки для shared_buffers обычно требуют соответствующего увеличения max_wal_size, чтобы распределить процесс записи больших объемов новых или измененных данных на более длительный период времени.
В системах с менее чем 1 ГБ ОЗУ подходящий меньший процент ОЗУ, чтобы оставить достаточно места для операционной системы. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
sharedBuffers: 250Mi -
строка или числоspec.configuration.walKeepSize
Указывает минимальный размер прошлых файлов WAL, хранящихся в каталоге pg_wal, на случай, если резервный сервер должен получить их для потоковой репликации. Если резервный сервер, подключенный к отправляющему серверу, отстает более чем на wal_keep_size мегабайт, отправляющий сервер может удалить сегмент WAL, который все еще нужен резервному, в этом случае соединение репликации будет прервано. Нисходящие соединения также в конечном итоге завершатся ошибкой в результате. (Однако резервный сервер может восстановиться, получив сегмент из архива, если используется архивирование WAL.)
Это устанавливает только минимальный размер сегментов, сохраняемых в pg_wal; системе может потребоваться сохранить больше сегментов для архивирования WAL или для восстановления из контрольной точки. Если wal_keep_size равно нулю (по умолчанию), система не сохраняет никаких дополнительных сегментов для целей резервного копирования, поэтому количество старых сегментов WAL, доступных резервным серверам, является функцией местоположения предыдущей контрольной точки и статуса архивирования WAL. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
walKeepSize: 512Mi -
строка или числоspec.configuration.workMem
Устанавливает базовое максимальное количество памяти, которое должно использоваться операцией запроса (например, сортировка или хэш-таблица) перед записью во временные файлы на диске. Если это значение указано без единиц, оно принимается как килобайты. Значение по умолчанию — четыре мегабайта (4 МБ). Обратите внимание, что сложный запрос может выполнять несколько операций сортировки и хеширования одновременно, при этом каждая операция обычно может использовать столько памяти, сколько указывает это значение, прежде чем начнет записывать данные во временные файлы. Кроме того, несколько запущенных сессий могут выполнять такие операции одновременно. Поэтому общая используемая память может быть во много раз больше значения work_mem; необходимо помнить об этом факте при выборе значения. Операции сортировки используются для ORDER BY, DISTINCT и слияний соединений. Хэш-таблицы используются в хэш-соединениях, хэш-агрегации, узлах memoize и хэш-обработке подзапросов IN.
Хэш-операции обычно более чувствительны к доступности памяти, чем эквивалентные операции на основе сортировки. Лимит памяти для хэш-таблицы вычисляется путем умножения work_mem на hash_mem_multiplier. Это позволяет хэш-операциям использовать количество памяти, превышающее обычное базовое количество work_mem. Должно быть установлено с единицами k8s как Gi/Mi/Ki/M/G
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
workMem: 4Mi
-
-
объектspec.nodeAffinityNode affinity концептуально похожа на nodeSelector, позволяя ограничить узлы, на которые может быть развернут ваш Pod, на основе labels.
-
массив объектовspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecutionПланировщик предпочтет разворачивать поды на узлы, которые удовлетворяют выражениям affinity, указанным этим полем, но он может выбрать узел, который нарушает одно или несколько выражений. Наиболее предпочтительный узел — это тот, у которого наибольшая сумма весов, т.е. для каждого узла, который соответствует всем требованиям планирования (запрос ресурсов, выражения affinity requiredDuringScheduling и т.д.), вычислить сумму, перебирая элементы этого поля и добавляя “weight” к сумме, если узел соответствует соответствующим matchExpressions; узел(ы) с наибольшей суммой являются наиболее предпочтительными.
-
объектspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preferenceУсловие селектора узла, связанное с соответствующим весом (weight).
-
массив объектовspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressionsСписок требований селектора узла по лейблам узла.
-
строкаspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.keyКлюч лейбла, к которому применяется селектор.
-
строкаspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
Представляет отношение ключа к набору значений.
Поддерживаемые операторы:
In;NotIn;Exists;DoesNotExist;Gt;Lt.
-
массив строкspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
Массив строковых значений, который заполняется в зависимости от оператора:
- при операторе
InилиNotInмассив значений НЕ должен быть пустым; - при операторе
ExistsилиDoesNotExist, массив значений должен быть пустым; - при операторе
GtилиLtмассив значений должен иметь один элемент, который будет интерпретирован как целое число.
Этот массив заменяется при применении strategic merge patch.
- при операторе
-
-
массив объектовspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFieldsСписок требований селектора узла по полям узла.
-
строкаspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.keyКлюч лейбла, к которому применяется селектор.
-
строкаspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
Представляет отношение ключа к набору значений.
Поддерживаемые операторы:
In;NotIn;Exists;DoesNotExist;Gt;Lt.
-
массив строкspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
Массив строковых значений, который заполняется в зависимости от оператора:
- при операторе
InилиNotInмассив значений НЕ должен быть пустым; - при операторе
ExistsилиDoesNotExist, массив значений должен быть пустым; - при операторе
GtилиLtмассив значений должен иметь один элемент, который будет интерпретирован как целое число.
Этот массив заменяется при применении strategic merge patch.
- при операторе
-
-
-
целочисленныйspec.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weightВес, определяющий приоритет сопоставления соответствующему
nodeSelectorTerm, в диапазоне 1-100.
-
-
объектspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecutionЕсли требования affinity, указанные этим полем, не выполняются во время планирования, под не будет запланирован на узел. Если требования affinity, указанные этим полем, перестают выполняться в какой-то момент во время выполнения пода (например, из-за обновления), система может или не может попытаться в конечном итоге выселить под с его узла.
-
массив объектовspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
Обязательный параметр
Список условий селектора узла. Термины объединяются по логикеИЛИ.-
массив объектовspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressionsСписок требований селектора узла по лейблам узла.
-
строкаspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.keyКлюч лейбла, к которому применяется селектор.
-
строкаspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
Представляет отношение ключа к набору значений.
Поддерживаемые операторы:
In;NotIn;Exists;DoesNotExist;Gt;Lt.
-
массив строкspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
Массив строковых значений, который заполняется в зависимости от оператора:
- при операторе
InилиNotInмассив значений НЕ должен быть пустым; - при операторе
ExistsилиDoesNotExist, массив значений должен быть пустым; - при операторе
GtилиLtмассив значений должен иметь один элемент, который будет интерпретирован как целое число.
Этот массив заменяется при применении strategic merge patch.
- при операторе
-
-
массив объектовspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFieldsСписок требований селектора узла по полям узла.
-
строкаspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.keyКлюч лейбла, к которому применяется селектор.
-
строкаspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
Представляет отношение ключа к набору значений.
Поддерживаемые операторы:
In;NotIn;Exists;DoesNotExist;Gt;Lt.
-
массив строкspec.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
Массив строковых значений, который заполняется в зависимости от оператора:
- при операторе
InилиNotInмассив значений НЕ должен быть пустым; - при операторе
ExistsилиDoesNotExist, массив значений должен быть пустым; - при операторе
GtилиLtмассив значений должен иметь один элемент, который будет интерпретирован как целое число.
Этот массив заменяется при применении strategic merge patch.
- при операторе
-
-
-
-
-
объектspec.nodeSelectorПозволяет назначать поды кластера PG указанным узлам. То же самое, что и в параметре
spec.nodeSelectorдля Kubernetes Pods. -
массив строкspec.overridableConfigurationМассив конфигураций PostgreSQL, которые разрешено изменять пользователю Параметры, которые укажет пользователь, переопределят все существующие поля в Configuration
-
массив объектовspec.sizingPolicies
Обязательный параметр
SizingPolicy — это массив, который определяет политику выделения вычислительных ресурсов экземплярам Postgres. Диапазоныcores.min–cores.maxдля разных элементов списка не должны перекрываться.-
массив целых чиселspec.sizingPolicies.coreFractionsМножитель для настройки
requestsна основе заданныхlimitsв ядрах.Пример:
coreFractions: - 10 - 30 - 50 - 100 -
объектspec.sizingPolicies.coresОпределяет допустимый диапазон количества ядер CPU.
-
целочисленныйspec.sizingPolicies.cores.max
Обязательный параметр
Верхняя граница допустимого количества ядер CPU.Пример:
max: 6 -
целочисленныйspec.sizingPolicies.cores.min
Обязательный параметр
Нижняя граница допустимого количества ядер CPU.Пример:
min: 1
-
-
объектspec.sizingPolicies.memoryПозволяет задать диапазон и шаг допустимых значений памяти.
-
строка или числоspec.sizingPolicies.memory.max
Обязательный параметр
Верхняя граница допустимого объема памяти.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
max: 5Gi -
строка или числоspec.sizingPolicies.memory.min
Обязательный параметр
Нижняя граница допустимого объема памяти.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
min: 128Mi -
строка или числоspec.sizingPolicies.memory.stepДелитель (шаг) для допустимого значения памяти. Указанный объем должен делиться без остатка.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
step: 100Mi
-
-
-
массив объектовspec.tolerationsTolerations подов Postgres.
-
строкаspec.tolerations.effect
Эффект taint для соответствия.
Допустимые значения:
NoSchedule;PreferNoSchedule;NoExecute.
Пустое значение означает соответствие любому эффекту taint.
-
строкаspec.tolerations.key
Ключ taint, к которому применяется toleration. Пустое значение означает соответствие любому ключу.
Если ключ пустой,
operatorдолжен бытьExists. Эта комбинация означает соответствие всем значениям и всем ключам. -
строкаspec.tolerations.operator
Отношение ключа (
key) к значению (value). Допустимые операторы:Exists;Equal(по умолчанию).
Existsэквивалентен подстановочному знаку для значения, поэтому к поду могут применяться все taints определенной категории. -
целочисленныйspec.tolerations.tolerationSecondsПериод времени, в течение которого toleration с эффектом
NoExecuteдопускает taint. По умолчанию не установлено, что предписывает допускать taint бессрочно (не вытеснять под). Нулевые и отрицательные значения интерпретируются системой как0(немедленное вытеснение пода). -
строкаspec.tolerations.valueЗначение taint, которому соответствует toleration. При
operator: Existsзначение должно быть пустым. В другом случае должна быть указана обычная строка.
-
-
объектspec.topology
Обязательный параметр
Описание разрешенной топологии PostgreSQL.-
массив строкspec.topology.allowedTopologies
Обязательный параметр
AllowedTopologies — массив типов топологии, которые разрешено использовать
- Zonal: кластер будет развернут в одну зону. Если возможно
- TransZonal: кластер будет развернут в разные зоны. Если возможно
- Ignored: кластер будет развернут с правилами планирования k8s по умолчанию, будет обеспечено только разделение узлов
-
строкаspec.topology.allowedTopologies.Элемент массива
Допустимые значения:
Ignored,Zonal,TransZonal
-
массив строкspec.topology.allowedZonesAllowedZones — массив зон, которые разрешено использовать
По умолчанию:
[] -
строкаspec.topology.defaultTopology
Обязательный параметр
DefaultTopology, которая будет использоваться всеми связанными сервисами PostgreSQL.
-
-
массив объектовspec.validationsФормулы валидации, которые позволяют проверить все настроенные конфигурации. Поддерживается только язык CEL.
-
строкаspec.validations.messageСообщение, которое будет выводиться при неудачном выполнении правила (
rule).Пример:
message: '''maxConnections should be greater than 100''\' -
строкаspec.validations.rule
Правило для проверки конфигурации PostgreSQL.
Доступные предопределенные переменные:
configuration.maxConnections;configuration.workMem;configuration.sharedBuffers;configuration.walKeepSize;instance.memory.size;instance.cpu.cores.
Пример:
rule: configuration.maxConnections > 100
-
-
PostgresSnapshot
Scope: Namespaced
Version: v1alpha1
-
строкаapiVersionAPIVersion определяет версионную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind — это строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут вывести это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлен. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspecPostgresSnapshotSpec определяет желаемое состояние PostgresSnapshot
-
строкаspec.postgresName
Обязательный параметр
Имя управляемого сервиса Postgres
-