возможно ли смонтировать оба SSL-сертификата в один и тот же каталог (/ etc / nginx / ssl / *)?
Нет, потому что (по крайней мере, при использовании докера) он использует монтирование томов, которое ведет себя точно так же, как и mount -t ext4 /dev/something /path/something
, в этом случае /path/something
будет последним-одним победом.
Однако у вас есть только слегка вонючий обходной путь:secret requestcert
как /etc/nginx/.reqcert
(или аналогичный), смонтировать secret mysitecert
как /etc/nginx/.sitecert
, затем заменить entrypoint
изображения и скопировать файлы на место перед делегированием к фактической точке входа:
containers:
- name: nginx
image: etc etc
command:
- bash
- -c
- |
mkdir -p /etc/nginx/ssl
cp /etc/nginx/.*cert/* /etc/nginx/ssl/
# or whatever initialization you'd like
# then whatever the entrypoint is for your image
/usr/local/sbin/nginx -g "daemon off;"
Или, если это не кажется хорошей идеей, вы можете использовать одноразовый, специфичный для Pod каталог в сочетании с initContainers:
:
spec:
volumes:
# all the rest of them, as you had them
- name: temp-config
emptyDir: {}
initContainers:
- name: setup-config
image: busybox # or whatever
command:
- sh
- -c
- |
# "stage" all the config files, including certs
# into /nginx-config which will evaporate on Pod destruction
volumeMounts:
- name: temp-config
mountPath: /nginx-config
# and the rest
containers:
- name: nginx
# ...
volumeMounts:
- name: temp-config
mountPath: /etc/nginx
Они различаются по сложности в зависимости отхотите ли вы иметь дело с отслеживанием команды точки входа вышестоящего изображения, вместо того, чтобы оставить нетронутым восходящее изображение, но затрачивать гораздо больше энергии инициализации