Quiz Módulo 5 - Configuración y Secrets
Instrucciones
Este quiz contiene 30 preguntas de opción múltiple.
Pregunta 1
¿Qué es un ConfigMap?
Ver explicación
Respuesta correcta: Un objeto de Kubernetes que almacena datos de configuración no sensibles
Explicación: Los ConfigMaps permiten separar la configuración del código de la aplicación.
Pregunta 2
¿Qué es un Secret en Kubernetes?
Ver explicación
Respuesta correcta: Un objeto de Kubernetes que almacena datos sensibles como contraseñas, tokens o llaves
Explicación: Los Secrets son similares a los ConfigMaps pero están diseñados para almacenar datos sensibles. Se almacenan en base64 (sin cifrado por defecto).
Pregunta 3
¿Cómo crear un ConfigMap desde un archivo?
Ver explicación
Respuesta correcta: kubectl create configmap [name] --from-file=[file]
Explicación: El comando --from-file permite crear un ConfigMap desde un archivo, donde la clave será el nombre del archivo y el valor será el contenido del archivo.
Pregunta 4
¿Cuál es el tamaño máximo de una entrada en un ConfigMap?
Ver explicación
Respuesta correcta: 1 MiB
Explicación: Cada entrada en un ConfigMap o Secret está limitada a 1 MiB. Para datos más grandes, utilice volúmenes.
Pregunta 5
¿Cómo inyectar un ConfigMap como variable de entorno en un Pod?
Ver explicación
Respuesta correcta: envFrom: - configMapRef: name: [configmap-name]
Explicación: envFrom permite inyectar todas las claves de un ConfigMap como variables de entorno. Para una clave específica, use env con valueFrom.configMapKeyRef.
Pregunta 6
¿Cómo montar un ConfigMap como volumen en un Pod?
Ver explicación
Respuesta correcta: volumes: - name: config configMap: name: [configmap-name]
Explicación: Para montar un ConfigMap como volumen, defínalo en la sección volumes del Pod y luego use volumeMounts para montarlo en el contenedor.
Pregunta 7
¿Cuál es la principal diferencia entre un ConfigMap y un Secret?
Ver explicación
Respuesta correcta: Los Secrets están diseñados para datos sensibles y se almacenan en base64, los ConfigMaps para datos no sensibles
Explicación: Los Secrets están destinados a datos sensibles pero no están cifrados por defecto (solo codificados en base64). Los ConfigMaps son para datos no sensibles.
Pregunta 8
¿Cómo crear un Secret desde literales?
Ver explicación
Respuesta correcta: kubectl create secret generic [name] --from-literal=[key]=[value]
Explicación: --from-literal permite crear un Secret directamente desde pares clave-valor en la línea de comandos.
Pregunta 9
¿Cuál es la buena práctica para gestionar los secrets en producción?
Ver explicación
Respuesta correcta: Utilizar herramientas externas de gestión de secrets (Vault, AWS Secrets Manager) con External Secrets Operator
Explicación: Los secrets nunca deben ser comiteados en Git. Utilice herramientas externas como Vault o servicios cloud con External Secrets Operator para una gestión segura.
Pregunta 10
¿Qué es el cifrado en reposo (encryption at rest) para los Secrets?
Ver explicación
Respuesta correcta: Una funcionalidad que cifra los Secrets en etcd utilizando una EncryptionConfig
Explicación: El cifrado en reposo permite cifrar los Secrets en etcd configurando una EncryptionConfig con proveedores de cifrado (AES, KMS, etc.).
Pregunta 11
¿Qué comando permite ver el contenido de un Secret (decodificado)?
Ver explicación
Respuesta correcta: kubectl get secret [name] -o jsonpath='{.data.[key]}' | base64 -d
Explicación: Los Secrets se almacenan en base64. Para ver el contenido decodificado, use jsonpath para extraer el valor y base64 -d para decodificar.
Pregunta 12
¿Qué es External Secrets Operator?
Ver explicación
Respuesta correcta: Un operador de Kubernetes que sincroniza los secrets desde sistemas externos (AWS Secrets Manager, Vault, etc.) hacia Kubernetes
Explicación: External Secrets Operator permite gestionar los secrets de forma centralizada en sistemas externos y sincronizarlos automáticamente hacia Kubernetes.
Pregunta 13
¿Cuál es el método recomendado para inyectar un Secret en un Pod?
Ver explicación
Respuesta correcta: Utilizar envFrom con secretRef o env con valueFrom.secretKeyRef
Explicación: Los Secrets deben inyectarse mediante envFrom (todas las claves) o env con valueFrom.secretKeyRef (una clave específica), nunca hardcodeados.
Pregunta 14
¿Cuál es la diferencia entre env y envFrom?
Ver explicación
Respuesta correcta: env permite inyectar variables individuales, envFrom inyecta todas las claves de un ConfigMap/Secret
Explicación: env permite un control preciso sobre cada variable, mientras que envFrom inyecta automáticamente todas las claves como variables de entorno.
Pregunta 15
¿Cuál es la buena práctica para los permisos de un volumen Secret?
Ver explicación
Respuesta correcta: 0400 (solo lectura para el propietario)
Explicación: Los volúmenes de Secrets deben montarse en solo lectura (readOnly: true) con permisos restrictivos (defaultMode: 0400) por seguridad.
Pregunta 16
¿Qué es un ConfigMap inmutable?
Ver explicación
Respuesta correcta: Un ConfigMap que no puede ser modificado después de su creación, mejorando el rendimiento y la seguridad
Explicación: Los ConfigMaps inmutables (immutable: true) no pueden modificarse, lo que reduce la carga en el API Server y mejora la seguridad.
Pregunta 17
¿Cómo actualizar un ConfigMap usado por un Pod en ejecución?
Ver explicación
Respuesta correcta: Si está montado como volumen, debe reiniciar el Pod. Si se inyecta como env, debe recrear el Pod
Explicación: Los ConfigMaps montados como volúmenes se actualizan periódicamente, pero las variables de entorno inyectadas no cambian sin recrear el Pod.
Pregunta 18
¿Cuál es el comando para crear un Secret desde un archivo?
Ver explicación
Respuesta correcta: kubectl create secret generic [name] --from-file=[key]=[file]
Explicación: --from-file permite crear un Secret desde un archivo, donde puede especificar la clave y el archivo fuente.
Pregunta 19
¿Qué es la rotación de secrets?
Ver explicación
Respuesta correcta: El proceso de reemplazo periódico de los secrets por nuevos valores para la seguridad
Explicación: La rotación de secrets es una buena práctica de seguridad que consiste en cambiar regularmente contraseñas, tokens y llaves para limitar el impacto de una posible filtración.
Pregunta 20
¿Cuál es la diferencia entre un Secret de tipo Opaque y un Secret de tipo TLS?
Ver explicación
Respuesta correcta: Opaque es para datos arbitrarios, TLS es específicamente para certificados TLS
Explicación: Los Secrets de tipo TLS tienen claves específicas (tls.crt, tls.key) y son utilizados por herramientas como cert-manager para certificados SSL/TLS.
Pregunta 21
¿Cómo organizar los ConfigMaps por entorno?
Ver explicación
Respuesta correcta: Crear ConfigMaps separados por entorno (dev, staging, prod) con nombres diferentes
Explicación: La mejor práctica es crear ConfigMaps distintos para cada entorno, permitiendo una gestión clara y evitando errores de configuración.
Pregunta 22
¿Cuál es el límite de tamaño total de un ConfigMap o Secret?
Ver explicación
Respuesta correcta: Limitado por etcd (generalmente 1.5 MiB por objeto)
Explicación: Aunque cada entrada está limitada a 1 MiB, el tamaño total de un ConfigMap o Secret está limitado por etcd, generalmente alrededor de 1.5 MiB.
Pregunta 23
¿Qué es un volumen de tipo Secret?
Ver explicación
Respuesta correcta: Un volumen que monta los datos de un Secret como archivos en un Pod
Explicación: Los Secrets pueden montarse como volúmenes, donde cada clave se convierte en un archivo con el valor decodificado como contenido.
Pregunta 24
¿Cuál es la buena práctica para los secrets en los YAML?
Ver explicación
Respuesta correcta: Nunca poner los secrets en texto claro, usar referencias (secretKeyRef) o herramientas externas
Explicación: Los secrets nunca deben estar en texto claro en los YAML, ni siquiera en base64. Utilice referencias o herramientas de gestión de secrets.
Pregunta 25
¿Cómo utilizar un ConfigMap en un Deployment?
Ver explicación
Respuesta correcta: En el template Pod del Deployment, vía env, envFrom o volumes
Explicación: Los ConfigMaps se referencian en el template Pod (spec.template.spec) de un Deployment, vía env/envFrom para variables de entorno o volumes para archivos.
Pregunta 26
¿Qué es un Service Account en el contexto de los Secrets?
Ver explicación
Respuesta correcta: Una identidad para los Pods que puede asociarse a Secrets para el acceso al API Server
Explicación: Los Service Accounts pueden tener imagePullSecrets para acceder a registries privados, pero no están directamente relacionados con los Secrets de la aplicación.
Pregunta 27
¿Cuál es el comando para eliminar un ConfigMap?
Ver explicación
Respuesta correcta: kubectl delete configmap [name]
Explicación: kubectl delete es el comando estándar para eliminar cualquier recurso de Kubernetes, incluidos los ConfigMaps.
Pregunta 28
¿Qué es un Secret de tipo docker-registry?
Ver explicación
Respuesta correcta: Un Secret que almacena las credenciales para acceder a un registro Docker privado
Explicación: Los Secrets de tipo docker-registry se utilizan como imagePullSecrets para permitir que los Pods descarguen imágenes desde registros privados.
Pregunta 29
¿Cuál es la buena práctica para versionar los ConfigMaps?
Ver explicación
Respuesta correcta: Utilizar labels con números de versión y crear nuevos ConfigMaps para cada versión
Explicación: Versionar los ConfigMaps con labels permite rastrear los cambios y facilita los rollbacks al referenciar diferentes versiones.
Pregunta 30
¿Cuál es la diferencia entre valueFrom.configMapKeyRef y valueFrom.secretKeyRef?
Ver explicación
Respuesta correcta: configMapKeyRef referencia una clave de un ConfigMap, secretKeyRef referencia una clave de un Secret
Explicación: Estas dos referencias funcionan de la misma manera pero apuntan a tipos de recursos diferentes: ConfigMap para datos no sensibles, Secret para datos sensibles.
Resultado del Quiz
¡Felicidades por completar el quiz del Módulo 5!
Puntaje:
- 25-30 respuestas correctas: ¡Excelente! Usted domina la configuración y los secrets.
- 20-24 respuestas correctas: ¡Muy bien! Revise los conceptos donde tuvo dificultades.
- 15-19 respuestas correctas: ¡Bien! Repase los capítulos sobre ConfigMaps y Secrets.
- Menos de 15: Se recomienda repasar el módulo antes de continuar.
Quiz creado el: Diciembre 2024