У меня есть сторонний контейнер докеров, который принимает аргументы в форме:
docker run foo --arg1 val1 --arg2 val2
и я запустил его как pod в kubernetes следующим образом:
spec:
containers:
- name: foo
image: foo
args:
- --arg1
- val1
- --arg2
- val2
Это хорошо, но теперь мне нужно, чтобы два значения аргумента были динамическими. Например, val1 - это имя / идентификатор модуля, а val2 - это зона (зона доступности aws) узла, на котором работает модуль.
Единственное решение, о котором я мог подумать, - это расширить контейнер, создав еще один образ, который запускает сценарий оболочки, который запрашивает эти два значения и затем передает их в командную строку.
Мне интересно, есть ли более элегантное решение, чем это. Допустим, мы можем получить эти динамические значения в initContainer. Теперь вопрос в том, как передать их в командной строке основного контейнера.
PS: Похоже, мы можем получить имя модуля с помощью Downward API. Однако Downward API не раскрывает метку узла, для которой существует открытая проблема. . Итак, что касается этого вопроса, давайте подумаем, что наши параметры произвольные и получаются динамически.