Aprende a crear un ConfigMap y, luego, configura los servicios y las revisiones de Cloud Run for Anthos para usar ese ConfigMap.
Un caso de uso común de un servicio es usar ConfigMaps para separar el código de la aplicación de la configuración. ConfigMap es similar a Secret, excepto que usas un Secret para información sensible y usas ConfigMap a fin de almacenar datos no sensibles, como strings de conexión, credenciales públicas, nombres de host y URL. Puedes obtener más información sobre el uso de ConfigMaps en la documentación de Google Kubernetes Engine.
Cuando habilitas los contenedores para acceder a ConfigMaps, puedes elegir una de estas opciones:
- Activa el ConfigMap como un volumen, con entradas de ConfigMap disponibles como archivos en el volumen activado. Te recomendamos hacer esto, ya que así obtendrás la versión más reciente del ConfigMap cuando lo leas.
- Pasa el ConfigMap mediante variables de entorno.
Crea un ConfigMap
Existen varias maneras de crear un ConfigMap, como se describe en la página ConfigMaps de la documentación de GKE. Por cuestiones prácticas, en los siguientes pasos, se muestra una manera simple de crear un ConfigMap.
Cuando creas un ConfigMap, asegúrate de crearlo en el mismo espacio de nombres que el clúster que ejecuta tu servicio de Cloud Run for Anthos. En estas instrucciones, se usa el espacio de nombres default
.
Puedes crear un ConfigMap desde la línea de comandos:
kubectl create configmap NAME DATA
Reemplaza lo siguiente:
- NAME es el nombre de tu objeto ConfigMap.
DATA puede ser una de estas opciones:
- La marca
--from-file
y la ruta de acceso para cada directorio que contiene uno o más archivos de configuración - La marca
--from-literal
y el par clave-valor de cada uno que desees agregar al ConfigMap
- La marca
Por ejemplo:
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
El ConfigMap se crea y se sube en una ubicación donde esté disponible para los clústeres en el espacio de nombres default
.
Haz que un ConfigMap esté disponible para un servicio
Después de crear un ConfigMap, puedes hacer que esté disponible para tu servicio de Cloud Run for Anthos como volumen o como variables de entorno con la consola de Google Cloud o Google Cloud CLI cuando implementas un nuevo servicio o actualizas un servicio existente e implementas una revisión:
Console
Ve a Cloud Run for Anthos en la consola de Google Cloud:
Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en Implementar y editar una nueva revisión.
En Configuración avanzada, haz clic en Variables and Secrets.
En Reference a ConfigMap (Crea una referencia a ConfigMap), selecciona el ConfigMap deseado en el menú desplegable.
- En el menú desplegable Reference method (Método de referencia), selecciona la manera en la que deseas usar tu ConfigMap: activado como un volumen o expuesto como variables de entorno.
- Si usas activado como volumen, especifica la ruta de acceso y haz clic en Listo.
- Si estás exponiendo como variables de entorno:
- Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
- Haz clic en Agregar para agregar otro valor de ConfigMap.
- Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
- Haga clic en Listo.
Haz clic en Siguiente para pasar a la siguiente sección.
En la sección Configura la forma en que se activa el servicio, selecciona la conectividad que deseas usar para invocar el servicio.
Haz clic en Crear para implementar la imagen en Cloud Run for Anthos y espera a que termine la implementación.
Línea de comandos
Puedes usar Google Cloud CLI a fin de configurar ConfigMaps para servicios nuevos o actualizar servicios existentes:
Para los servicios existentes, actualiza un ConfigMap mediante la ejecución del comando
gcloud run services update
con uno de los siguientes parámetros:Ejemplo:
gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
- SERVICE por el nombre de tu servicio
- KEY1=VALUE1,KEY2=VALUE2 con una lista separada por comas de los pares de nombre y valor para cada ConfigMap
Para cada KEY, puedes especificar una ruta de activación o proporcionar una variable de entorno. Para especificar una ruta de activación, comienza con una barra
/
. Todas las demás claves corresponden a variables de entorno. Para cada VALUE, especifica el nombre ConfigMap. Cómo especificar varios parámetros.
Opciones de parámetros de comando
A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
Para los servicios nuevos, configura el ConfigMap mediante la ejecución del comando
gcloud run deploy
con el parámetro--set-config-maps
:gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/myproject/my-image:latest
- SERVICE por el nombre de tu servicio
- KEY1=VALUE1,KEY2=VALUE2 con una lista separada por comas de los pares de nombre y valor para cada ConfigMap
Para cada KEY, puedes especificar una ruta de activación o proporcionar una variable de entorno. Para especificar una ruta de activación, comienza con una barra
/
. Todas las demás claves corresponden a variables de entorno. Para cada VALUE, especifica el nombre ConfigMap. Cómo especificar varios parámetros.
Opciones de parámetros de comando
A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
- IMAGE_URL por una referencia a la imagen del contenedor, como