Максимальный размер статуса в Kubernetes CRD?

Есть ли ограничение на размер спецификации Kubernetes и размер статуса в Kubernetes?

У меня есть вариант использования, в котором спецификация оператора является регулярным выражением, а регулярное выражение расширяется до множества фактических элементов, статус которых я должен сохранить.

Пример:

type RedshiftSinkSpec struct {
    TopicRegexes string `json:"topicRegexes"`
}

type Topic string

type RedshiftSinkStatus struct {
    // +optional
    CurrentMaskStatus map[Topic]MaskStatus `json:"currentMaskStatus,omitempty"`

    // +optional
    DesiredMaskStatus map[Topic]MaskStatus `json:"desiredMaskStatus,omitempty"`
}

Поскольку количество тем вычисляется по регулярному выражению. Я понятия не имею, насколько большая структура данных может вырасти для кого-то другого. Так что хотелось бы ограничить это на каком-то уровне. Следовательно, нужна помощь с максимальным лимитом, который позволяет Kubernetes.

Также необходимо, чтобы это было так, чтобы сэкономить на количестве подключений Redshift. Не могу разбить проблему на еще одну crd с одной темой.

Пожалуйста, предложите.


person Alok Kumar Singh    schedule 27.11.2020    source источник
comment
Kubernetes хранит данные кластера в etcd. По умолчанию etcd ограничивает максимальный размер ввода данных. до 1,5 мегабайт.   -  person Chin Huang    schedule 27.11.2020


Ответы (1)


Цитирую ответ из комментария.

Kubernetes хранит данные кластера в etcd. По умолчанию etcd ограничивает максимальный размер вводимых данных 1,5 мегабайтами. - Чин Хуанг

Документация ETCD: Ограничение размера запроса :

etcd предназначен для обработки небольших пар ключ-значение, типичных для метаданных. Более крупные запросы будут работать, но могут увеличить задержку других запросов. По умолчанию максимальный размер любого запроса составляет 1,5 МБ. Это ограничение настраивается с помощью флага --max-request-bytes для сервера etcd.

Kubernetes не накладывает никаких ограничений на размер статуса и спецификации по отдельности, но ограничение распространяется на общий размер объекта, поскольку ограничения взяты из хранилища etcd. Его можно настроить с помощью --max-request-bytes. Лучше использовать Config Maps для сохранения статуса, когда данные огромны, и для сохранения указателей или общей сводки в статусе.

person Alok Kumar Singh    schedule 28.11.2020