Aprende a crear un ConfigMap y, luego, configurar los Cloud Run para Anthos en los servicios y las revisiones de Google Cloud a fin de 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 Secreto, con la excepción de que usas un secreto para información sensible y usas un ConfigMap para almacenar datos no sensibles, como strings de conexión, credenciales públicas y nombres de host y URL. Puedes obtener más información sobre cómo usar 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
Hay varias formas de crear un ConfigMap, como se describe en la documentación de GKE sobre ConfigMaps. 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
En el ejemplo anterior, se ilustra lo siguiente:
- name es el nombre de tu objeto ConfigMap.
data puede ser alguno de los siguientes:
- una ruta de acceso a un directorio que contiene uno o más archivos de configuración, indicada con la marca
--from-file
- pares clave-valor, cada uno especificado con marcas
--from-literal
- una ruta de acceso a un directorio que contiene uno o más archivos de configuración, indicada con 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 para Anthos como volumen o como variables de entorno con Cloud Console o la herramienta de línea de comandos de gcloud
cuando Se implementa un nuevo servicio o se actualiza un servicio existente y se implementa una revisión:
Console
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.
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 usas la opción de exponerlo como variables de entorno, sigue estos pasos:
- 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 Crear o Implementar.
Línea de comandos
Puedes usar uno de los siguientes comandos gcloud kuberun
a fin de configurar ConfigMaps para servicios nuevos o actualizar servicios existentes:
En el caso de los servicios existentes, actualiza un ConfigMap mediante la ejecución del comando
gcloud kuberun core services update
con uno de los siguientes parámetros:Ejemplo:
gcloud kuberun core services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
SERVICE
por el nombre de tu servicioKEY1=VALUE1,KEY2=VALUE2
con una lista separada por comas de los pares de nombre y valor para cada ConfigMap Para cadaKEY
, 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 cadaVALUE
, especifica el nombre de ConfigMap. Cómo especificar varios parámetros
Opciones de parámetro del 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"
En servicios nuevos, establece un secreto mediante la ejecución del comando
gcloud kuberun core services create
con el parámetro--set-config-maps
:gcloud kuberun core services create 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 servicioKEY1=VALUE1,KEY2=VALUE2
con una lista separada por comas de los pares de nombre y valor para cada ConfigMap Para cadaKEY
, 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 cadaVALUE
, especifica el nombre de ConfigMap. Cómo especificar varios parámetros
Opciones de parámetro del 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