Obtener credenciales por instancia en instancias acoplables

Obtener credenciales por instancia en instancias acoplables

Estoy trabajando para ejecutar un sistema de tareas distribuidas basado en Docker, y el principal problema con el que me encuentro es cómo obtener credenciales en cada VM de Docker.

Básicamente, cada instancia debe tener un nombre único y una contraseña/certificado SSL. Luego se conecta de nuevo a casa al inicio y comienza a procesar las tareas.

Crear la instancia es bastante sencillo, pero ¿cuál es un buen enfoque para inyectar las credenciales en cada instancia? El consenso general parece ser "usar variables de entorno", pero usar una variable de entorno de más de 500 caracteres (por ejemplo, todo el certificado SSL) parece burdo.

En este momento, la aplicación que estoy intentando empaquetar utiliza un archivo JSON simple para la configuración. ¿Hay alguna forma de agregar archivos a una instancia de Docker en tiempo de ejecución o algo similar? ¿Quizás un último paso de compilación que requiere un archivo definido paramétricamente?

Respuesta1

Puede agregar un volumen Docker y apuntarlo, por contenedor, a una carpeta en el host que contenga el certificado SSL que desea. Incluso puedes crear un volumen de "un solo archivo".

docker run -d \
    --name=worker0 \
    -v "/etc/ssl/worker0.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker0.key":/etc/ssl/private/container.key \
    myworkerimage

docker run -d \
    --name=worker1 \
    -v "/etc/ssl/worker1.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker1.key":/etc/ssl/private/container.key \
    myworkerimage

Luego, cualquier cosa que esté usando para iniciar los trabajadores, un script bash, ansible, etc., puede seleccionar el certificado correcto en el host, pero dentro de cada contenedor iniciado la situación es idéntica (el certificado siempre está en la misma ruta).

Es posible que desee hacer que estos 'volúmenes de archivos' sean volúmenes de solo lectura para :roreflejar que son una configuración estática y no algo que se espera que el contenedor cambie o debería poder cambiar.

información relacionada