Usa ConfigMaps en clústeres de Cloud Run for Anthos en Google Cloud

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

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

  1. Implementar en Cloud Run for Anthos en Google Cloud

  2. 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.

  3. En Configuración avanzada, haz clic en Variables.

    imagen

  4. 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:
      1. Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
      2. Haz clic en Agregar para agregar otro valor de ConfigMap.
      3. Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
      4. Haga clic en Listo.

  5. 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 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 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 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 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"