FeaturedNOTICIAS

Cómo usar ConfigMaps para la configuración de Kubernetes – CloudSavvy IT


Gráfico que muestra el logotipo de Kubernetes

Un ConfigMap es un recurso de Kubernetes para poner la configuración en contenedores. Le permiten mantener la configuración de la pila separada de su código. A continuación, le mostramos cómo trabajar con ConfigMaps y enviarlos a sus pods.

¿Para qué se utilizan los ConfigMaps?

Los ConfigMaps están diseñados específicamente para encapsular pequeñas cantidades de datos de configuración insensibles. Son un mecanismo para obtener pares clave-valor arbitrarios en sus pods. Se usan comúnmente para almacenar la dirección IP del servidor de la base de datos, la dirección de correo electrónico saliente para su aplicación y otras configuraciones específicas de la aplicación que necesita configurar fuera de sus Pods.

ConfigMap le permite administrar estos datos en un recurso de Kubernetes dedicado. Los pods reciben pares clave-valor como variables de entorno o archivos en un volumen montado.

¿Para qué no usarlos?

Hay algunas situaciones en las que un ConfigMap debería No ser usado.

Los ConfigMaps no se almacenan de forma segura y sus valores no están cifrados. No deben contener datos sensibles o confidenciales que supongan un riesgo para la seguridad o la privacidad si se filtran.

TE INTERESA>>  Netflix prepara su propia versión anime de los cuentos de los Hermanos Grimm, y el primer tráiler promete suspenses, flautistas, lobos feroces y mucha sangre

No coloque contraseñas, claves de API o claves de cifrado en un ConfigMap; utilice un secreto de Kubernetes en su lugar, ya que funcionan de manera similar a ConfigMap pero con protecciones adicionales. Los sistemas que necesitan una conexión a la base de datos deben colocar el nombre de host en un ConfigMap y las credenciales en un secreto separado.

Los ConfigMaps individuales no pueden exceder 1 MB de tamaño. Los sistemas que requieren varias claves de configuración pueden estar mejor atendidos por un enfoque alternativo, como inyectar archivos de configuración generados manualmente a través de un volumen.

Si desea seguir con ConfigMap, considere dividir la configuración en varios recursos de ConfigMap. Este enfoque debe evitar el límite de 1 MB al permitirle dar a cada uno de sus pods el conjunto mínimo de claves de configuración que necesita.

Los valores de ConfigMap pueden ser cadenas UTF-8 o datos binarios codificados como una cadena base64. Los nombres de las claves pueden contener caracteres alfanuméricos, . (período), - (guión), e _ (subrayado) caracteres. Algunos lenguajes de programación y marcos pueden tener una convención diferente para las variables de configuración, así que asegúrese de usar un formato que sea compatible con Kubernetes y con su aplicación.

Creando un mapa de configuración

Los ConfigMaps tienen manifiestos YAML simples. Cada ConfigMap necesita un name en el formato estándar de Kubernetes ea data campo que contiene sus pares clave-valor:

apiVersion: v1
kind: ConfigMap
metadata:
  name: example-configmap
data:
  database_host: "192.168.0.10"
  system_email: "[email protected]"

los data El campo se usa para especificar claves con valores de cadena. puedes usar binaryData en su lugar o así como data para agregar valores binarios codificados en base64. Las claves deben ser únicas en ambos data Y binaryData.

Aplica el manifiesto a tu clúster usando kubectl o tu herramienta favorita.

TE INTERESA>>  BYD aims to sell 500,000 EVs overseas this year: report · TechNode

Conectando ConfigMaps y Pods

Un ConfigMap no hace nada por sí mismo. Ha agregado algunos datos a su clúster; ahora conectémoslo a un Pod:

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
    - name: example-container
      image: example-image:latest
      envFrom:
        - configMapRef:
            name: example-configmap

los envFrom el campo recuerda las variables de entorno definidas por otro recurso referenciado. En este caso, un configMapRef identifica el ConfigMap creado anteriormente. Los contenedores de vainas comenzarán con database_host Y system_email variables de entorno definidas.

Adición selectiva de variables ambientales

envFrom es útil cuando desea utilizar cada clave en ConfigMap y está seguro de que no habrá ningún conflicto con las otras variables de entorno de su Pod. En situaciones más controladas, use un env sección, defina las claves individuales y extraiga el valor de cada clave del ConfigMap:

env:
  - name: DATABASE_HOST_IP
    valueFrom:
      configMapKeyRef:
        name: example-configmap
        key: database_host

Este ejemplo muestra cómo iniciar un Pod con solo el database_host clave de ConfigMap. La clave también se renombra antes de la inyección para que el Pod la reciba como DATABASE_HOST_IP.

Uso de ConfigMaps con volúmenes

ConfigMaps se puede montar como archivos dentro de Pods. Kubernetes crea un volumen, inserta el contenido de ConfigMap como un conjunto de archivos y monta el volumen en su Pod.

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
    - name: example-container
      image: example-image:latest
      volumeMounts:
        - name: app-config
          mountPath: "/etc/config-data"
          readOnly: true
  volumes:
    - name: app-config
      configMap:
        name: example-configmap

Este manifiesto de pod crea un volumen llamado app-config. los configMap El campo rellenará previamente el volumen utilizando los datos del ConfigMap especificado.

El Pod sube el volumen /etc/config-data. Sus contenedores pueden leer los archivos dentro del directorio para acceder a sus valores de configuración. Cada clave de ConfigMap tendrá su propio archivo dentro del punto de montaje.

Valores de ConfigMap actualizados

Dado que ConfigMap es un recurso de API de Kubernetes estándar, puede actualizar los valores en cualquier momento editando su manifiesto y volviéndolo a aplicar a su clúster. La forma en que los nuevos valores llegan a sus Pods depende del mecanismo de inyección que esté utilizando.

TE INTERESA>>  The Masked Singer Season 11: Every Celebrity Reveal

Volúmenes montados

Kubernetes actualizará los ConfigMaps montados en pods a través de un volumen. Los cambios en ConfigMaps se comprueban periódicamente; cuando se detecta una diferencia, los archivos en su volumen se actualizarán, luego su Pod recibirá los nuevos datos. El retraso depende del intervalo de sincronización configurado para las instancias de Kubelet en sus nodos trabajadores.

variables ambientales

No es posible cambiar las variables de entorno de un pod, por lo que los cambios en ConfigMap no llegarán a los pods existentes que hagan referencia a claves a través de este mecanismo. Debes reemplazar tus pods para usar los nuevos datos.

Los pods recién creados siempre recibirán datos de ConfigMap actuales, independientemente de si está utilizando volúmenes o variables de entorno. Si necesita forzar una actualización de configuración, edite una anotación en su pod para que Kubernetes la vuelva a crear.

Mapas de configuración inmutables

ConfigMaps tiene una opción immutable campo que evita que se actualice. Cuando se establece este campo, no es posible actualizar los datos de ConfigMap o eliminar el estado inmutable.

apiVersion: v1
kind: ConfigMap
metadata:
  name: immutable-configmap
data:
  foo: bar
immutable: true

Esto puede resultar útil cuando esté seguro de que los valores de configuración nunca cambiarán. Mejore la seguridad al eliminar la posibilidad de cambios accidentales. El rendimiento también se puede mejorar, ya que Kubernetes ya no necesita monitorear ConfigMap para propagar cualquier cambio en los valores de sus pods.

Resumen

ConfigMaps debería ser su opción para proporcionar claves de configuración insensibles a sus pods de Kubernetes. Son un recurso de API de primera clase que puede utilizar como variables de entorno o archivos montados en volúmenes.

Las contraseñas y otras credenciales pertenecen a Secrets. Estos funcionan de una manera muy similar a ConfigMaps y los Pods hacen referencia a ellos de la misma manera. Sustituir configMapRef con secretRef para extraer una clave de un secreto con nombre en lugar de un ConfigMap.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba
hentai creampir hentairulz.com saoff summer xxxx hot zoztube.mobi xhamsted ماياخليفة سكس parabg.com سكس قذف جماعى سكس جنوب افريقيا arab-porno.net سكس بنات محجبة freefuck redwap2.com karnataka blue film نيك خادمة freetvtube.info قصص نيك محارم الارشيف 23 sexy rapes teenextube.mobi latest scandals in bollywood milf manga truehentai.com la blue girl manga ang probinsyano june 19 pinoyshowstv.com enchong pokemon henatai hentaicredo.com boku no pico nokare .com gotporn.mobi www.freesexdoor.com indian first night xxx pornxvideos.info xxx six india sex samantha sex zatube.mobi cuddling porn mom son sleeping sex hdtporno.org velamma episode 74 indian free porn mms youjizz.sex velamma episode 79