StudyToCert

Lecciones en español / CKAD / Hoja de repaso · English

Hoja de repaso de CKAD CKAD (Kubernetes v1.35 curriculum)

Cada consejo para el examen y término clave de las lecciones gratuitas de CKAD, por dominio. Usa la opción Imprimir de tu navegador para guardarla como PDF.

Dominio 1: Application Design and Build (20%)

Consejos para el examen

Términos clave

Base image (imagen base)
La imagen indicada en FROM que aporta el sistema de archivos inicial y el runtime para tu build.
Layer (capa)
Un cambio de sistema de archivos de solo lectura y en caché, producido por una instrucción como RUN o COPY.
Multi-stage build (build multietapa)
Un Dockerfile con varias etapas FROM en el que solo se copian artefactos seleccionados a la imagen final.
ENTRYPOINT
El ejecutable fijo que el contenedor ejecuta al iniciar.
CMD
Argumentos por defecto (o un comando por defecto si no hay ENTRYPOINT) que se reemplazan con los argumentos dados en tiempo de ejecución.
Build context (contexto de build)
El directorio enviado al builder cuyos archivos pueden alcanzar COPY y ADD.
Tag (etiqueta)
Un rótulo legible y movible, como 1.0, que apunta a una imagen.
Digest
El hash de contenido sha256 inmutable que identifica una imagen de forma única.
docker save / load
Comandos que exportan imágenes con todas sus capas y metadatos a un archivo tar y las vuelven a importar.
command
Campo del contenedor que reemplaza el ENTRYPOINT de la imagen.
args
Campo del contenedor que reemplaza el CMD de la imagen.
$(VAR) expansion (expansión de $(VAR))
Sustitución que hace Kubernetes de las variables de entorno del contenedor dentro de command y args, sin usar un shell.
Deployment
Controlador para réplicas sin estado e intercambiables, con rolling updates y rollback.
StatefulSet
Controlador que da a cada réplica un nombre estable, arranque ordenado y su propio almacenamiento persistente.
DaemonSet
Controlador que ejecuta un Pod por cada nodo elegible.
Job / CronJob
Controladores para trabajo que se ejecuta hasta completarse, una vez o según una programación.
completions
Número de ejecuciones exitosas de Pod necesarias para que el Job termine (por defecto 1).
parallelism
Número máximo de Pods del Job ejecutándose a la vez (por defecto 1).
backoffLimit
Número de reintentos antes de que el Job se marque como Failed (por defecto 6).
activeDeadlineSeconds
Tiempo máximo de ejecución de todo el Job, tras el cual sus Pods se detienen y el Job falla.
schedule
Expresión cron de cinco campos: minuto, hora, día del mes, mes, día de la semana.
concurrencyPolicy
Allow, Forbid o Replace: qué hacer si toca una ejecución mientras la anterior sigue activa.
History limits (límites de historial)
successfulJobsHistoryLimit y failedJobsHistoryLimit, el número de Jobs terminados que se conservan.
jobTemplate
La especificación de Job que el CronJob genera en cada ejecución.
Init container
Un contenedor que se ejecuta hasta completarse, en orden, antes de que arranquen los contenedores de la app.
Sidecar
Un contenedor auxiliar que se ejecuta junto al contenedor principal durante toda la vida del Pod.
Native sidecar (sidecar nativo)
Un init container con restartPolicy: Always, que se inicia antes y se detiene después de los contenedores principales.
Adapter
Un auxiliar que convierte la salida del contenedor principal a un formato estándar.
Ambassador
Un auxiliar que hace de proxy para las conexiones de la app hacia servicios externos a través de localhost.
emptyDir
Un volumen temporal que dura lo que el Pod, vacío al inicio y compartido por los contenedores del Pod.
medium: Memory
Convierte un emptyDir en un tmpfs respaldado en RAM que cuenta para el uso de memoria.
Projected volume (volumen proyectado)
Un volumen que combina fuentes configMap, secret, downwardAPI y serviceAccountToken en un solo directorio.
Ephemeral volume (volumen efímero)
Almacenamiento cuya vida está ligada al Pod y se elimina con él.
PersistentVolume (PV)
Un objeto de ámbito de clúster que representa una pieza de almacenamiento real.
PersistentVolumeClaim (PVC)
Una solicitud de almacenamiento con namespace que se vincula a un PV compatible.
StorageClass
Un tipo de almacenamiento con nombre, con un provisioner usado para el aprovisionamiento dinámico.
Access mode (modo de acceso)
RWO, ROX, RWX o RWOP: cuántos nodos o Pods pueden montar el volumen y si pueden escribir.
Reclaim policy (política de recuperación)
Delete o Retain: qué ocurre con el almacenamiento de un PV después de liberarse su claim.
volumeMounts
Lista por contenedor que enlaza un volumen del Pod con una ruta dentro de ese contenedor.
mountPath
La ruta absoluta en el contenedor donde aparece el volumen, ocultando lo que ya hubiera allí.
subPath
Monta un solo archivo o subdirectorio de un volumen en lugar de toda su raíz.
readOnly (solo lectura)
Opción de montaje que bloquea las escrituras de ese contenedor en el volumen.

Dominio 2: Application Deployment (20%)

Consejos para el examen

Términos clave

ReplicaSet
Controlador que mantiene en ejecución un número fijo de Pods idénticos; normalmente lo gestiona un Deployment.
Pod template (plantilla de Pod)
Los metadatos y la spec de Pod dentro de un controlador a partir de los cuales se crea cada réplica.
Label selector (selector de etiquetas)
Una consulta sobre etiquetas, como matchLabels app: web, que decide qué Pods gestiona o apunta un objeto.
pod-template-hash
Etiqueta añadida por el Deployment para distinguir los Pods de distintos ReplicaSets.
RollingUpdate
Estrategia por defecto del Deployment que reemplaza los Pods gradualmente mientras la app sigue atendiendo.
maxSurge
Cuántos Pods por encima del número deseado pueden existir durante una actualización (por defecto 25%).
maxUnavailable
Cuántos Pods por debajo del número deseado pueden estar no disponibles durante una actualización (por defecto 25%).
minReadySeconds
Cuánto tiempo debe permanecer listo un Pod nuevo antes de contar como disponible.
Recreate
Estrategia que termina todos los Pods antiguos antes de crear los nuevos, causando una breve inactividad.
Revision (revisión)
Una versión numerada de la plantilla de Pod de un Deployment que se guarda para el rollback.
rollout undo
Devuelve el Deployment a la revisión anterior o a una elegida volviendo a aplicar su plantilla.
rollout pause / resume
Detiene y reanuda temporalmente los rollouts para que varios cambios se apliquen como uno solo.
change-cause
La anotación kubernetes.io/change-cause que se muestra en rollout history.
Blue/green deployment (despliegue azul/verde)
Ejecutar la versión antigua y la nueva completas lado a lado y cambiar todo el tráfico de una vez.
Service selector (selector del Service)
Consulta de etiquetas que decide qué Pods reciben el tráfico de un Service.
Cut-over (conmutación)
El momento en que el tráfico pasa de la versión antigua a la nueva.
Canary release (lanzamiento canario)
Enviar una pequeña parte del tráfico a una versión nueva para probarla con usuarios reales.
Track label (etiqueta de track)
Una etiqueta como track: canary usada para distinguir los Pods de los dos Deployments sin afectar al Service.
Replica weighting (ponderación por réplicas)
Usar la proporción de Pods para aproximar una división de tráfico detrás de un Service.
Chart
Un paquete de Helm con manifiestos de Kubernetes en plantillas más valores por defecto.
Repository (repositorio)
Un servidor que aloja un índice de charts, agregado localmente con helm repo add.
Release
Una instancia instalada y con nombre de un chart en un namespace, con historial de revisiones.
helm rollback
Devuelve un release a una revisión anterior, registrada como una nueva revisión.
values.yaml
El archivo de configuración por defecto del chart, leído por sus plantillas.
--set
Sobrescritura de valores individuales en la línea de comandos usando claves con puntos.
-f / --values
Proporciona un archivo YAML con valores a sobrescribir; se puede repetir.
helm template
Renderiza localmente los manifiestos del chart sin instalar nada.
kustomization.yaml
El archivo que lista los recursos y las transformaciones que Kustomize les aplica.
namePrefix
Texto agregado al inicio del nombre de cada recurso, con las referencias actualizadas.
labels / commonLabels
Campos que agregan etiquetas a todos los recursos; commonLabels también cambia los selectores y está obsoleto.
patches
Cambios parciales (strategic merge o JSON 6902) aplicados a los recursos seleccionados.
configMapGenerator
Crea ConfigMaps a partir de literales, archivos o archivos env, con un hash del contenido en el nombre.
Base
Un directorio de kustomization con manifiestos compartidos sobre los que se construyen los overlays.
Overlay
Una kustomization que referencia una base y agrega cambios específicos del entorno.
kubectl apply -k
Construye la kustomization de un directorio y aplica el resultado al clúster.
kubectl kustomize
Construye una kustomization e imprime el YAML resultante sin aplicarlo.

Dominio 3: Application Observability and Maintenance (15%)

Consejos para el examen

Términos clave

apiVersion
El grupo de API y la versión de un objeto, como apps/v1; los objetos core usan solo v1.
Deprecation (deprecación u obsolescencia)
Una versión de API se marca para eliminarse en el futuro; todavía funciona pero produce advertencias.
kubectl api-resources
Lista los tipos de recursos con nombres cortos, versión de API, indicador de namespace y kind.
kubectl explain
Muestra la documentación y la estructura de campos de un tipo de recurso y versión.
networking.k8s.io/v1
Grupo/versión de API estable para Ingress y NetworkPolicy.
pathType
Campo obligatorio de path de Ingress en v1: Prefix, Exact o ImplementationSpecific.
autoscaling/v2
Versión estable de HPA con una lista de métricas que admite métricas resource, pods, object y external.
batch/v1
Grupo/versión estable para Job y CronJob.
Liveness probe
Verifica si un contenedor debe reiniciarse.
Readiness probe
Verifica si un contenedor debe recibir tráfico del Service.
Startup probe
Verifica si un contenedor lento ya arrancó, dejando en espera los otros probes hasta que lo haga.
failureThreshold
Fallos consecutivos necesarios antes de considerar que el probe falló (por defecto 3).
Probe handler
El método de verificación: httpGet, tcpSocket, exec o grpc.
Restart (reinicio)
La acción ante fallo de liveness/startup: el kubelet mata el contenedor y lo vuelve a iniciar en el mismo Pod.
Not ready (no listo)
El estado ante fallo de readiness: el Pod sigue en ejecución pero se quita de los endpoints del Service.
Ready condition (condición Ready)
Condición de estado del Pod mostrada en la columna READY que decide si el Pod recibe tráfico del Service.
kubectl describe
Vista detallada de un objeto, incluido su estado relacionado y los eventos recientes.
Event (evento)
Un registro de corta duración de algo que le ocurrió a un objeto, como un fallo de scheduling o la descarga de una imagen.
metrics-server
Complemento del clúster que recopila el uso de CPU y memoria de los kubelets para kubectl top y el HPA.
kubectl top
Muestra el uso actual de CPU y memoria de nodos o Pods a partir de la Metrics API.
-c
Selecciona de qué contenedor mostrar los logs en un Pod multicontenedor.
--previous
Muestra los logs de la última instancia terminada del contenedor.
-f
Sigue el flujo de logs a medida que se escriben líneas nuevas.
-l
Selecciona Pods por etiqueta para mostrar logs de varios Pods a la vez.
Pending
Pod aceptado pero con contenedores que aún no se ejecutan, a menudo sin programar o todavía creándose.
ImagePullBackOff
La imagen no se puede descargar y Kubernetes espera cada vez más entre reintentos.
CrashLoopBackOff
El contenedor termina repetidamente tras arrancar y se reinicia con retrasos crecientes.
OOMKilled
El contenedor fue terminado por superar su límite de memoria, normalmente con código de salida 137.
Exit code 128+n (código de salida 128+n)
Un proceso terminado por la señal n, como 137 para SIGKILL o 143 para SIGTERM.
kubectl exec
Ejecuta un comando, o un shell interactivo con -it, dentro de un contenedor en ejecución.
Ephemeral container (contenedor efímero)
Un contenedor temporal de depuración que kubectl debug agrega a un Pod en ejecución.
kubectl debug --copy-to
Crea una copia modificada de un Pod para diagnóstico.
kubectl port-forward
Crea un túnel desde un puerto local hasta un puerto de un Pod a través del API server.
-o wide
Agrega columnas adicionales como la IP del Pod, el nodo y las imágenes.
-o yaml
Imprime el objeto completo, incluido el status y los valores por defecto.
jsonpath
Plantilla de salida que extrae campos específicos del árbol del objeto.
--sort-by
Ordena la salida de una lista por un campo dado como expresión JSONPath.
custom-columns
Formato de salida que construye una tabla a partir de rutas de campos con nombre.

Dominio 4: Application Environment, Configuration and Security (25%)

Consejos para el examen

Términos clave

CustomResourceDefinition (CRD)
Un objeto que registra un nuevo tipo de recurso en la API de Kubernetes.
Custom resource (recurso personalizado)
Un objeto de un tipo definido por una CRD, administrado con kubectl como los objetos integrados.
Controller (controlador)
Un programa que observa objetos y actúa para que el estado real coincida con su spec.
Operator
Un controlador más CRDs que automatizan la operación de una aplicación específica.
Authentication (autenticación)
Establecer quién hace la solicitud; un fallo devuelve 401.
Authorization (autorización)
Decidir si la identidad puede realizar el verbo sobre el recurso; un fallo devuelve 403.
Mutating admission (admisión mutating)
Paso de admisión que puede modificar un objeto antes de guardarlo.
Validating admission (admisión validating)
Paso de admisión que acepta o rechaza un objeto sin cambiarlo.
Role
Conjunto de verbos permitidos sobre recursos, con namespace.
ClusterRole
Conjunto de permisos sin namespace, utilizable en todo el clúster o vinculado por namespace.
RoleBinding
Otorga un Role o ClusterRole a sujetos dentro de un namespace.
ClusterRoleBinding
Otorga un ClusterRole a sujetos en todo el clúster.
kubectl auth can-i --as
Verifica si un usuario o ServiceAccount puede realizar una acción, usando suplantación.
Request (solicitud)
Recursos reservados para un contenedor, que el scheduler usa para decidir la ubicación.
Limit (límite)
Recursos máximos que puede usar un contenedor; la CPU se estrangula y el exceso de memoria se mata.
Millicore (m) (milinúcleo)
Una milésima de núcleo de CPU; 500m es medio núcleo.
Mi / Gi
Unidades binarias de memoria basadas en potencias de 1024.
QoS class (clase de QoS)
Guaranteed, Burstable o BestEffort, derivada de los requests y limits y usada para el orden de desalojo.
ResourceQuota
Límite a nivel de namespace sobre el uso total de recursos y el número de objetos.
LimitRange
Política del namespace que define recursos por defecto y mínimos/máximos por contenedor, Pod o PVC.
defaultRequest / default
Campos de LimitRange que dan el request y el limit que se aplican cuando un contenedor los omite.
count/<resource>
Clave de cuota que limita cuántos objetos de un tipo pueden existir en el namespace.
ConfigMap
Un objeto que contiene configuración no secreta como pares clave-valor.
--from-env-file
Crea una clave del ConfigMap por cada línea KEY=value de un archivo.
configMapKeyRef
Define una variable de entorno a partir de una clave de un ConfigMap.
envFrom
Importa todas las claves de un ConfigMap o Secret como variables de entorno.
Opaque
Tipo de Secret por defecto para datos arbitrarios del usuario, creado con kubectl create secret generic.
kubernetes.io/dockerconfigjson
Tipo de Secret que contiene credenciales de registry, usado mediante imagePullSecrets.
kubernetes.io/tls
Tipo de Secret que contiene tls.crt y tls.key para certificados.
Base64
Codificación de texto reversible usada para los datos de un Secret; no aporta confidencialidad.
secretKeyRef
Define una variable de entorno a partir de una clave de un Secret.
ServiceAccount
Una identidad con namespace para los procesos que se ejecutan en Pods.
serviceAccountName
Campo de la spec del Pod que elige con qué ServiceAccount se ejecuta el Pod.
Bound (projected) token (token vinculado o proyectado)
Un token de corta duración, limitado a una audiencia, ligado a un Pod y renovado por el kubelet.
automountServiceAccountToken
Configuración en una ServiceAccount o Pod que controla si se monta el token.
kubectl create token
Comando que emite un token de corta duración para una ServiceAccount.
runAsUser
UID numérico con el que se ejecutan los procesos del contenedor.
runAsNonRoot
Hace que el kubelet se niegue a iniciar un contenedor que se ejecutaría como UID 0.
fsGroup
Grupo suplementario a nivel de Pod aplicado a los contenedores y a la propiedad de los volúmenes compatibles.
readOnlyRootFilesystem
Configuración a nivel de contenedor que hace de solo lectura el sistema de archivos raíz del contenedor.
allowPrivilegeEscalation
Configuración a nivel de contenedor que, en false, impide que los procesos obtengan más privilegios que su padre.
Capability
Una porción con nombre del privilegio de root, como NET_BIND_SERVICE, que se puede agregar a un contenedor o quitarle.
Pod Security Admission
Admission controller integrado que aplica los Pod Security Standards mediante etiquetas en el namespace.
Baseline
Nivel de Pod Security que bloquea escaladas de privilegios conocidas, como contenedores privileged y namespaces del host.
Restricted
El nivel de Pod Security más estricto: exige no root, sin escalada de privilegios, capabilities quitadas y un perfil seccomp.
enforce / audit / warn
Modos de PSA que rechazan, registran o advierten sobre los Pods que incumplen.

Dominio 5: Services and Networking (20%)

Consejos para el examen

Términos clave

ClusterIP
Tipo de Service por defecto, con una IP virtual interna alcanzable solo dentro del clúster.
NodePort
Tipo de Service que además abre un puerto (rango por defecto 30000-32767) en todos los nodos.
LoadBalancer
Tipo de Service que aprovisiona un balanceador de carga externo a través del proveedor de nube o un complemento.
ExternalName
Tipo de Service que devuelve un CNAME de DNS hacia un host externo, sin hacer de proxy.
Headless Service (Service headless)
Service con clusterIP: None cuyo DNS devuelve las IPs individuales de los Pods.
port
El puerto en el que escucha el Service, en su ClusterIP y nombre DNS.
targetPort
El puerto del Pod al que se reenvía el tráfico; por defecto es igual a port y puede ser un puerto con nombre.
Named port (puerto con nombre)
Un containerPort con nombre que un Service puede referenciar como su targetPort.
EndpointSlice
Un objeto que lista las direcciones, puertos y readiness de los Pods que respaldan un Service.
kubernetes.io/service-name
Etiqueta que vincula una EndpointSlice con su Service.
Ready condition (condición ready)
Indicador del endpoint que muestra si un Pod de backend debe recibir tráfico.
CoreDNS
El servidor DNS que normalmente proporciona el DNS del clúster para Services y Pods.
Service FQDN (nombre completo del Service)
El nombre de Service totalmente calificado <service>.<namespace>.svc.cluster.local.
Search domains (dominios de búsqueda)
Sufijos en el resolv.conf de un Pod que permiten que nombres cortos como web se resuelvan dentro de su namespace.
ndots
Opción del resolver que indica cuántos puntos necesita un nombre para probarse primero como absoluto.
kubectl expose
Crea un Service para un recurso existente, copiando su selector.
kubectl create service
Crea un Service de un tipo dado desde cero, con el selector app=<name>.
--tcp=port:targetPort
Opción de create service que define el puerto del Service y el puerto de destino.
kubectl port-forward
Túnel temporal desde un puerto local hasta un Pod; no crea ningún Service.
NetworkPolicy
Objeto con namespace que restringe el tráfico hacia y desde los Pods seleccionados.
podSelector
Elige los Pods a los que se aplica una política; {} selecciona todos los Pods del namespace.
policyTypes
Ingress, Egress o ambos: qué direcciones aísla la política.
Isolated Pod (Pod aislado)
Un Pod seleccionado por una política para una dirección, que entonces solo permite el tráfico autorizado explícitamente.
Default deny (denegación por defecto)
Una política que selecciona todos los Pods sin reglas de permiso, bloqueando todo el tráfico en las direcciones indicadas.
namespaceSelector
Peer que coincide con los Pods de los namespaces que tienen las etiquetas indicadas.
ipBlock
Peer que coincide con un rango CIDR, con rangos except opcionales, normalmente para tráfico externo.
AND semantics (semántica AND)
namespaceSelector y podSelector en el mismo elemento de peer deben coincidir ambos.
OR semantics (semántica OR)
Elementos de peer separados o reglas separadas permiten tráfico cada uno de forma independiente.
kubernetes.io/metadata.name
Etiqueta automática del namespace que contiene su nombre.
CNI (Container Network Interface)
La interfaz estándar que usa Kubernetes para que un plugin configure la red de los Pods.
Network plugin (plugin de red)
La implementación CNI que proporciona la red de los Pods y, si lo admite, aplica NetworkPolicy.
Calico / Cilium
Plugins de red muy usados que aplican NetworkPolicy.
eBPF
Tecnología del kernel de Linux para ejecutar pequeños programas verificados, que algunos plugins usan para filtrar tráfico.
Ingress
Un objeto que define reglas de enrutamiento HTTP(S) hacia Services basadas en host y path.
ingressClassName
Campo que elige qué IngressClass (controlador) implementa el Ingress.
pathType Prefix
Coincide con el path y con todo lo que está por debajo, elemento por elemento.
pathType Exact
Coincide solo con la ruta de URL exacta.
defaultBackend
Service que recibe las solicitudes que no coinciden con ninguna regla.
Ingress controller
El componente que observa los objetos Ingress y ejecuta el proxy que enruta el tráfico.
IngressClass
Objeto que identifica un controlador, que los Ingresses seleccionan con ingressClassName.
Host header (cabecera Host)
Cabecera HTTP que nombra el host solicitado, usada por las reglas de host del Ingress.
curl --resolve
Hace que curl se conecte a una IP elegida para un nombre de host, manteniendo el nombre correcto para TLS.
Estudia CKAD gratis
Plan semana a semana con lecciones, cuestionarios, simulaciones de examen y práctica, en español.
Abrir el plan de estudio