Ошибка сервера (RequestEntityTooLarge): объект запроса слишком велик: ограничение составляет 3145728 при создании configMap - PullRequest
0 голосов
/ 29 мая 2020

Я использую configMap для загрузки сценария init.sql для инициализации моего Mysql контейнера в модуле Kubernetes. Хотя это работает в большинстве случаев, я изо всех сил пытаюсь преобразовать файл большего размера init.sql, который составляет 12,2 МБ. Я использую следующее в deployment.yaml для монтирования configMap.

volumeMounts:
- name: init-volume
  mountPath: /docker-entrypoint-initdb.d
volumes:
- name: init-volume
  configMap:
    defaultMode: 420
    name: init-volume

Команда, которую я использую для создания configMap

kubectl create configMap init-volume --from-file=init.sql

Я получаю сообщение об ошибке

Error from server (RequestEntityTooLarge): Request entity too large: limit is 3145728

Как я могу увеличить этот предел / или любой другой способ инициализации моей базы данных?

1 Ответ

2 голосов
/ 30 мая 2020

Как я могу увеличить этот предел / или любой другой вариант для инициализации моей базы данных?

Номенклатура .d в этом пути означает, что он загрузит все файлы, найденные в нем, поэтому решение состоит в том, чтобы разделить init.sql на более мелкие куски, назвать их так, чтобы они применялись в правильном порядке при просмотре с помощью /bin/ls -1, и вставьте каждый в конфигурационную карту:

i=1
for fn in *.sql; do
   kubectl create configmap init-sql-$i --from-file="$fn"
   i=$(( i + 1 ))
done

затем смонтируйте их в каталог

volumeMounts:
- name: init-file-1
  mountPath: /docker-entrypoint-initdb.d/file-1.sql
- name: init-file-2
  mountPath: /docker-entrypoint-initdb.d/file-2.sql
# and so forth
...