meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
virtualizacion:kubernetes:configmap [2020/11/05 20:29] – creado lcvirtualizacion:kubernetes:configmap [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ===== ConfigMap ===== ===== ConfigMap =====
 Configmap ter permite configurar tus pods desde un fichero de configuración sin necesidad de hacerlo manualmente y facilitando su portabilidad. Configmap ter permite configurar tus pods desde un fichero de configuración sin necesidad de hacerlo manualmente y facilitando su portabilidad.
 +
 +Un configmap se define siempre con una llave y un valor. Además el Pod y el ConfigMap deben estar en el mismo Namespace.
  
 Se puede hacer desde un fichero .conf o bien desde nuestro manifiesto Se puede hacer desde un fichero .conf o bien desde nuestro manifiesto
-Ejemplo+ 
 +Por Ejemplo
 <sxh yaml> <sxh yaml>
 +apiVersion: v1
 +kind: ConfigMap
 +metadata:
 +  name: nginx-config
 +  labels:
 +    app: front
 +data:                        #Definimos dos llaves una llamadas test y la otra nginx
 +  test: hola             #Definimos la primera llave 
 +  nginx: |                #Definimos la segunda llave
 +    server {
 +        listen       9090;
 +        server_name  localhost;
 +        location / {
 +            root   /usr/share/nginx/html;
 +            index  index.html index.htm;
 +        }
 +        error_page   500 502 503 504  /50x.html;
 +        location = /50x.html {
 +            root   /usr/share/nginx/html;
 +        }
 +    }
 +---
 +apiVersion: apps/v1
 +kind: Deployment
 +metadata:
 +  name: deployment-test
 +  labels:
 +    app: front
 +spec:
 +  replicas: 1
 +  selector:
 +    matchLabels:
 +      app: front
 +  template:
 +    metadata:
 +      labels:
 +        app: front
 +    spec:
 +      containers:
 +        - name: nginx                       #nombre de la imagen
 +          image: nginx:alpine
 +          volumeMounts:
 +          - name: nginx-vol               #nombre del volumen
 +            mountPath: /etc/nginx/conf.d
 +      volumes:
 +        - name: nginx-vol           #Definimos como será el volumen y se tiene que llamar igual que el nombre que le pusimos anteriormente
 +          configMap:
 +            name: nginx-config
 +            items:
 +            - key: nginx
 +              path: default.conf
 +</sxh>
 +Ejemplo con variables y volúmenes
 +<sxh yaml>   
 +apiVersion: v1
 +kind: ConfigMap
 +metadata:
 +  name: nginx-config
 +  labels:
 +    app: front
 +data:
 +  nginx: |                           #Definimos la primera llave de nuestro ConfigMap 
 +    server {
 +        listen       9090;
 +        server_name  localhost;
 +        location / {
 +            root   /usr/share/nginx/html;
 +            index  index.html index.htm;
 +        }
 +        error_page   500 502 503 504  /50x.html;
 +        location = /50x.html {
 +            root   /usr/share/nginx/html;
 +        }
 +    }
 +---
 +apiVersion: v1
 +kind: ConfigMap
 +metadata:
 +  name: vars
 +  labels:
 +    app: front
 +data:                                                 #Definimos otro configmap para las variables 
 +  db_host: dev.host.local              #primera llave
 +  db_user: dev_user                       #segunda llave
 +  script: |                                           #Tercera llave
 +    echo DB host es $DB_HOST y DB user es $DB_USER > /usr/share/nginx/html/test.html
 +---
 +apiVersion: apps/v1
 +kind: Deployment
 +metadata:
 +  name: deployment-test
 +  labels:
 +    app: front
 +spec:
 +  replicas: 1
 +  selector:
 +    matchLabels:
 +      app: front
 +  template:
 +    metadata:
 +      labels:
 +        app: front
 +    spec:
 +      containers:
 +        - name: nginx
 +          image: nginx:alpine
 +          env:
 +            - name: DB_HOST
 +              valueFrom:
 +                configMapKeyRef:
 +                  name: vars
 +                  key: db_host
 +            - name: DB_USER
 +              valueFrom:
 +                configMapKeyRef:
 +                  name: vars
 +                  key: db_user
 +          volumeMounts:
 +          - name: nginx-vol
 +            mountPath: /etc/nginx/conf.d
 +          - name: script-vol
 +            mountPath: /opt
 +      volumes:
 +        - name: nginx-vol
 +          configMap:
 +            name: nginx-config
 +            items:
 +            - key: nginx
 +              path: default.conf
 +        - name: script-vol
 +          configMap:
 +            name: vars
 +            items:
 +            - key: script
 +              path: script.sh
 +</sxh>
 +==== Referencias ====
 +     * https://kubernetes.io/es/docs/concepts/configuration/configmap/
 +     * https://github.com/ricardoandre97/k8s-resources/tree/master/configmaps