Configmaps
Los configmaps en Kubernetes son un recurso que permite almacenar configuraciones y datos en forma de pares clave-valor. Los configmaps pueden ser utilizados por los pods para configurar aplicaciones y componentes de forma dinámica.
Comandos generales
Crear un configmap
Para crear un configmap en Kubernetes, podemos utilizar el comando kubectl create configmap. Por ejemplo, para crear un configmap con la configuración de un archivo config.properties, podemos ejecutar el siguiente comando:
kubectl create configmap mi-config --from-literal=key1=value1
También podemos crear un configmap a partir de un archivo con los pares de clave-valor. Por ejemplo, para crear un configmap a partir del archivo config.properties, podemos ejecutar el siguiente comando:
kubectl create configmap mi-config --from-file=config.properties
Ver configmaps
Para ver los configmaps en un clúster de Kubernetes, podemos utilizar el comando kubectl get configmaps:
kubectl get configmaps
Para ver los detalles de un configmap en particular, podemos utilizar el comando kubectl describe configmap <nombre_del_configmap>:
kubectl describe configmap mi-config
Eliminar un configmap
Para eliminar un configmap, podemos utilizar el comando kubectl delete configmap <nombre_del_configmap>:
kubectl delete configmap mi-config
Aplicar mediante manifiesto
También podemos crear un configmap utilizando un manifiesto en formato YAML o JSON. Para ello, creamos un manifiesto con la definición del configmap y luego lo aplicamos con el comando kubectl apply -f <archivo_de_configuracion>.
kubectl apply -f Kubernetes/manifests/mi-configmap.yaml
Montar un configmap en un pod
Un configmap puede ser montado como un volumen en un pod para que las aplicaciones puedan acceder a la configuración almacenada. Para montar un configmap en un pod, podemos utilizar la siguiente definición en el manifiesto del pod:
apiVersion: v1
kind: Pod
metadata:
name: mi-pod
spec:
containers:
- name: mi-contenedor
image: alpine:latest
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: mi-config
En este ejemplo, el configmap mi-config se monta en el directorio /etc/config del contenedor mi-contenedor del pod mi-pod. Por cada clave-valor en el configmap, se crea un archivo con el nombre de la clave y el valor como contenido.