Preparación para la Certificación Microsoft AI-200
Configurar aplicaciones en AKS con ConfigMaps, secretos y almacenamiento persistente
Externaliza valores no confidenciales, protege credenciales con Kubernetes y servicios de Azure y elige almacenamiento duradero con PVC, controladores CSI, modos de acceso y StorageClasses.
Tiempo de estudio sugerido: 85 minutos • Nivel intermedio • Reescritura original completa con versión resumida de cada tema, evaluación comentada y laboratorio guiado
Por João Ricardo Dutra••Contenido original completo
1. Externalizar estado sin perder seguridad ni confiabilidad
Una de inferencia suele cambiar y marcas entre entornos, autenticarse en servicios de modelos o datos y escribir embeddings, caché, conversaciones, cargas o registros. Incluirlo en la imagen acopla configuración a la versión, expone credenciales y pierde datos cuando se sustituye el Pod.
separa estas responsabilidades. ConfigMaps guarda valores no confidenciales, Secrets representa datos sensibles y PersistentVolumes con PersistentVolumeClaims proporciona almacenamiento fuera del sistema del contenedor. Así se logran despliegues previsibles, gobierno y cargas con estado que sobreviven a reinicios y reprogramaciones.
Inyectar ConfigMaps como variables o archivos montados.
Referenciar Secrets de Kubernetes o servicios centralizados de .
Solicitar capacidad duradera con PVC y StorageClass.
Aplicar y comprobar configuración, credenciales y persistencia con kubectl.
Resumen del tema
Mantén código e imagen estables mientras configuración, credenciales y datos duraderos siguen ciclos independientes.
2. Definir ConfigMaps para valores no confidenciales
ConfigMap es un objeto de Kubernetes con ámbito de cuyo campo data contiene pares de texto. Sirve para marcas, , ajustes y archivos de configuración, no para contraseñas o . Las claves admiten caracteres alfanuméricos, guiones, guion bajo y punto.
Cada ConfigMap está limitado a 1 MiB. Usa binaryData para valores binarios en y volumen persistente o servicio externo para contenido mayor. El límite mantiene eficiente la sincronización con nodos y el almacenamiento etcd.
ConfigMaps externaliza configuración pequeña y no sensible; archivos grandes y datos confidenciales requieren almacenes específicos.
3. Inyectar claves seleccionadas o todas como variables
configMapKeyRef vincula una clave con una variable. envFrom con configMapRef importa todas las claves y reduce repetitivo. Las referencias individuales son explícitas y permiten renombrar; la importación masiva conviene si todas pertenecen al entorno del proceso.
Las variables se capturan al iniciar. Modificar ConfigMap no cambia contenedores existentes: hace falta rollout o reinicio. Comprueba con kubectl describe pod, printenv mediante kubectl exec y registros, sin mostrar valores confidenciales.
Elige la forma de consumo según cómo lee configuración la aplicación.
Resumen del tema
Usa configMapKeyRef para claves explícitas, envFrom para importación masiva y reinicia Pods cuando cambian variables.
4. Montar ConfigMaps como archivos y comprender la actualización
Aplicaciones que esperan , INI u otro archivo pueden montar un volumen basado en ConfigMap. Cada clave se convierte en archivo; items selecciona claves y cambia rutas. Marca el montaje de solo lectura porque ConfigMap es la fuente de verdad.
kubelet actualiza periódicamente el contenido de un volumen normal tras un cambio. La aplicación debe observar o releer el archivo. subPath no recibe actualización automática y las variables nunca cambian en ejecución. Prueba el patrón exacto.
Resumen del tema
Monta archivos cuando la aplicación los espera, distinguiendo actualización del volumen, variables estáticas y subPath sin actualización.
5. ConfigMaps inmutables y centralizada
immutable: true evita cambios accidentales y permite cerrar watches para reducir carga de . No se puede revertir ni editar. Publica un ConfigMap versionado y actualiza la referencia; reutilizar el nombre exige borrar y recrear, mientras Pods existentes conservan su montaje anterior hasta reiniciarse.
Para valores compartidos entre aplicaciones, entornos o clústeres, el proveedor de Kubernetes para recupera valores y marcas y genera ConfigMaps estándar. También resuelve referencias a . Las aplicaciones siguen usando variables o archivos mientras operaciones obtiene una vista central.
Resumen del tema
Usa ConfigMaps inmutables y versionados para configuración ligada a la versión y para administración central.
6. Crear y consumir Secrets de Kubernetes
Un Secret mantiene claves, cadenas de conexión y credenciales fuera de la imagen y configuración común. Opaque sirve para cadenas; kubernetes.io/dockerconfigjson representa credenciales de registro y kubernetes.io/ certificados y claves . Pueden originarse en literales, archivos o manifiestos, pero un manifiesto con valores reales no debe confirmarse.
secretKeyRef inyecta una clave al iniciar el Pod. El valor queda en memoria y no se escribe en disco de forma predeterminada. kubectl describe secret muestra y nombres sin valores; kubectl describe confirma la referencia. debe limitar lectura y modificación.
Resumen del tema
Elige el tipo apropiado, usa secretKeyRef, comprueba nombres sin imprimir datos y aplica de privilegios mínimos.
7. Rotación, cifrado y operación segura de Secrets
no es cifrado. Evita valores en Git, historial de shell, registros y diagnósticos. Habilita cifrado en reposo de datos de Kubernetes, limita la , rota credenciales y ejecuta rollout cuando los consumidores por variable necesiten el nuevo valor.
Concede , list, watch, create, update o solo cuando sea necesario.
Prefiere y almacén externo en producción.
Audita accesos y fallos de rotación y ensaya revocación urgente.
Nunca uses ConfigMap para una contraseña porque sea configuración.
Resumen del tema
La seguridad requiere cifrado, , rotación, comportamiento de rollout, auditoría y prevención de exposición.
8. CSI de o con referencias
El proveedor de para Secrets Store CSI Driver monta secretos directamente en el sistema del Pod. Permanecen en el almacén y una o concede acceso. La rotación automática puede actualizar el montaje y un Secret sincronizado opcional. Una variable basada en ese Secret aún necesita reinicio.
La integración directa conviene cuando el secreto debe permanecer solo en y cada acceso requiere auditoría, rotación, red privada y cumplimiento. El proveedor de puede mantener referencias a , resolverlas y generar Secrets nativos para mapear centralmente qué recibe cada aplicación.
Elige según custodia, auditoría, rotación y consumo de la aplicación.
Resumen del tema
Usa CSI directo para secretos residentes y auditados en ; usa para asignaciones centrales entregadas como recursos Kubernetes.
9. PersistentVolume, PersistentVolumeClaim y StorageClass
El sistema de archivos del contenedor es efímero. PersistentVolume representa almacenamiento duradero, PersistentVolumeClaim solicita capacidad y acceso y StorageClass identifica política y tecnología. Con aprovisionamiento dinámico, aplicar el PVC hace que cree y vincule almacenamiento de adecuado; normalmente no se escribe un PV manual.
Dimensiona y planifica crecimiento y expansión compatible. La reclamación queda Pending cuando ninguna clase o volumen satisface tamaño, modo, topología, cuota o aprovisionamiento. Bound no demuestra permisos ni rendimiento suficiente.
La aplicación declara intención; StorageClass y CSI la traducen en almacenamiento duradero.
Resumen del tema
PVC expresa la intención, StorageClass dirige el aprovisionamiento y PV es el recurso duradero fuera del ciclo del Pod.
10. Elegir ,, o
Los controladores CSI exponen servicios de con patrones Kubernetes. aporta bloque a un nodo y sirve a bases o estado de nodo único. ofrece SMB o NFS compartido entre nodos y Pods. puede montarse para imágenes, documentos, registros y multimedia no estructurada.
es una opción administrada y nativa de bloques para cargas con estado, con operación Kubernetes y conexión rápida. Puede servir a I/O intensiva o escalado rápido. Comprueba el pool: NVMe o SSD local puede ser efímero, mientras otros pools aportan persistencia.
Matriz de decisión.
Opción
Acceso
Uso de IA
ReadWriteOnce; bloque
Índice vectorial, base o caché de un nodo.
ReadWriteMany; SMB/NFS
Modelos, cargas, registros y contenido compartido.
Objetos montados por CSI
Grandes conjuntos de imágenes, documentos o medios.
Bloque nativo administrado
Servicios con estado sensibles al rendimiento.
Resumen del tema
Relaciona bloque, archivo compartido, objeto o almacenamiento nativo con concurrencia, latencia, forma, durabilidad y coste.
11. Modos de acceso y StorageClasses CSI integradas
ReadWriteOnce permite lectura y escritura por un nodo, no necesariamente un solo Pod. ReadWriteMany permite montajes simultáneos en nodos distintos. Las clases de disco usan RWO y las de archivos ofrecen RWX.
Clases CSI del módulo.
StorageClass
Servicio
Acceso
Uso
managed-csi (default)
ReadWriteOnce
HDD/SSD Standard y estado económico.
managed-csi-premium
ReadWriteOnce
SSD Premium y baja latencia.
azurefile-csi
ReadWriteMany
Archivos Standard compartidos.
azurefile-csi-premium
ReadWriteMany
Archivos Premium compartidos.
Resumen del tema
Elige RWO para bloque por nodo y RWX para archivos compartidos y selecciona Standard o Premium según latencia y rendimiento medidos.
12. Montar y demostrar persistencia tras sustituir el Pod
El Pod declara volume con persistentVolumeClaim.claimName y el contenedor volumeMount y mountPath. Comprueba que el usuario pueda leer y escribir; propiedad, permisos, security context, protocolo e identidad pueden fallar en ejecución.
Lee el archivo en el nuevo Pod y ejecuta una prueba de I/O.
Resumen del tema
PVC Bound se convierte en persistencia demostrada cuando el reemplazo remonta, lee datos previos y cumple el objetivo de I/O.
13. Laboratorio guiado: configurar una en
El ejercicio de unos 30 minutos implementa y , compila y publica la imagen, configura valores con ConfigMaps, credenciales con Secrets y registros con PVC, expone mediante LoadBalancer, prueba con Python, lee registros persistentes y elimina recursos.
Descarga el proyecto e identifica marcadores de ConfigMap, Secret, PVC, y Service.
Implementa recursos y publica la imagen.
Actualiza y aplica y comprueba vínculos y configuración.
Llama a la , revisa registros, sustituye el Pod y confirma los datos.
Elimina recursos facturables.
Requisitos: suscripción de con permisos, , Python 3.12 o posterior, la CLI de más reciente y kubectl. Las tareas de pueden requerir pago por uso porque los créditos gratuitos pueden no cubrirlas.
Resumen del tema
El laboratorio demuestra configuración, entrega de secretos, acceso público y registros duraderos en un flujo completo de .
14. Evaluación, lista de producción y referencias
Decisiones de la evaluación.
Escenario
Respuesta correcta
Motivo
Cadena con contraseña
Kubernetes Secret
Es sensible y debe quedar fuera del código.
Marcas y sin recompilar
ConfigMap y configMapKeyRef
No son sensibles y quedan fuera de la imagen.
Aplicar PVC con StorageClass válida
aprovisiona almacenamiento de
La clase define la política CSI.
Secret como variable
valueFrom con secretKeyRef
Asigna la clave al inicio.
Aplicación espera en disco
Montar ConfigMap como archivo
Aparece en la ruta esperada.
Versiona configuración y documenta actualización o reinicio.
Mantén credenciales en cuando custodia y auditoría lo exijan.
Comprueba , cifrado, rotación e identidad.
Elige almacenamiento por acceso, rendimiento, durabilidad, topología y coste.
Prueba vinculación, permisos, sustitución, supervivencia e I/O.
El examen decide por sensibilidad, forma de consumo e intención de almacenamiento; producción añade identidad, rotación, observabilidad y evidencia de rendimiento.