Хотя resourceQuotas
может ограничивать количество конфигурационных карт в пространстве имен, существует ли такая возможность для ограничения размера отдельной карты конфигурации?
Я не хочу, чтобы какой-нибудь пользователь начал загружать большие текстовые файлы в качестве конфигурационных карт.
Каков максимальный размер поддержки ConfigMap etcd? Если есть разумный предел на стороне etcd, тогда все будет в порядке.
На сегодняшний день карты конфигурации подпадают под квоту на количество объектов. Вы можете установить максимальное количество конфигурационных карт. Вы не можете установить ограничения на размер отдельной карты конфигурации. Поскольку они еще не включены в квоту ресурсов хранения.
https://kubernetes.io/docs/concepts/policy/resource-quotas/
да @Rico, я уже упоминал, что вы не можете ограничить размер configmap. Отредактирую, если непонятно.
Спасибо, за ограничение размера, которое я могу сделать, возможно, настраиваемый контроллер допуска для configmap
Круто, дайте нам знать, как вы это делаете.
На момент написания этой статьи нет жесткие ограничения ни в объектах ConfigMap, ни в Secret.
Однако существует ограничение в 1 МБ со стороны etcd, где Kubernetes хранит свои объекты.
Со стороны API, если вы действительно видите API код и тип ConfigMap, вы увидите, что его поле данные представляет собой карту строк Golang, поэтому это кажется связанным с памятью и управляемым во время выполнения, если где-то еще оно не определено с помощью make()
. Технически максимальный размер для количества ключей в хэш-карте - это длина карты, которая равна int
, и максимальное значение объясняется здесь: Максимальное количество элементов на карте. Это также было бы теоретическим пределом для значения данных как максимального значения для len(string)
.
Если вы действительно хотите получить больше информации со стороны API, где kube-apiserver получает protobufs (или JSON, если на то пошло), вы можете взглянуть на максимальный размер google protobuf. Это даст вам некоторую меру ограничения на отправку поля data
по сети. Когда дело доходит до обработки любого большого сообщения, могут быть другие ограничения со стороны самого kube-apiserver.
Читая это: github.com/helm/helm/issues/1413 предполагает ограничение в 1 МБ
Да, есть ограничение в 1МБ со стороны etcd, добавил подробностей. Спасибо!
спасибо, ограничение в 1 МБ кажется довольно разумным, я думаю о каком-то настраиваемом контроллере addmission, чтобы отклонить запрос карты конфигурации размером больше X
@IjazAhmadKhan не нужно, по крайней мере, из kubectl 1.18, вы получите сообщение об ошибке, если cm больше 1 МБ
Размер отдельной карты конфигурации ограничен 1 МБ, согласно kubernetes.io:
A ConfigMap is not designed to hold large chunks of data. The data stored in a ConfigMap cannot exceed 1 MiB. If you need to store settings that are larger than this limit, you may want to consider mounting a volume or use a separate database or file service.
Цитата взята отсюда - https://kubernetes.io/docs/concepts/configuration/configmap/#motivation
Я считаю, что его вопрос касается ограничения на размер самого ConfigMap, а не на количество ConfigMap, которое вы можете иметь в кластере.