StudyToCert

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

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

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

Dominio 1: Cluster Architecture, Installation and Configuration (25%)

Consejos para el examen

Términos clave

kube-apiserver
La API REST central del clúster; el único componente que lee y escribe en etcd, y con el que se comunican todos los demás componentes.
etcd
Un almacén clave-valor consistente y distribuido que guarda todo el estado del clúster.
kube-scheduler
Asigna los Pods no programados a nodos filtrando y puntuando los nodos candidatos.
kube-controller-manager
Un único binario que ejecuta muchos bucles de reconciliación, como los controladores de ReplicaSet, Node y Job.
kubelet
El agente del nodo, ejecutado por systemd, que inicia los Pods a través del container runtime y reporta su estado.
kube-proxy
El componente por nodo que programa las reglas de reenvío para las IP virtuales de los Services.
cgroup driver (controlador de cgroups)
La forma en que el kubelet y el runtime crean los grupos de control; ambos deben usar el mismo, normalmente systemd.
br_netfilter
Un módulo del kernel que permite que iptables vea el tráfico que atraviesa un bridge de Linux.
net.ipv4.ip_forward
El sysctl que permite al kernel enrutar paquetes entre interfaces, necesario para el tráfico de los Pods.
Preflight checks (verificaciones previas)
Pruebas que kubeadm ejecuta antes de init o join para detectar errores de configuración del host.
--pod-network-cidr
El rango de IP reservado para las direcciones de los Pods, del cual asigna el plugin CNI.
--control-plane-endpoint
Una dirección compartida y estable para el API server, necesaria para expandir a HA más adelante.
Bootstrap token (token de arranque)
Un token de corta duración que permite a un nodo que se une autenticarse para solicitar su certificado de kubelet.
discovery-token-ca-cert-hash
Un hash de la clave pública de la CA del clúster que el nodo que se une usa para verificar el control plane.
Static Pod (Pod estático)
Un Pod gestionado directamente por un kubelet a partir de un archivo en su staticPodPath, no por el API server.
Mirror Pod (Pod espejo)
El objeto de API de solo lectura que crea el kubelet para que un static Pod sea visible con kubectl.
kubeadm certs check-expiration
Lista cada certificado gestionado por kubeadm y cuándo vence.
Kubeconfig context (contexto)
Una combinación con nombre de un cluster, un user y un namespace por defecto.
kubeadm upgrade plan
Verifica si se puede actualizar y lista las versiones objetivo sin cambiar nada.
kubeadm upgrade apply
Actualiza los componentes del primer nodo del control plane a una versión dada.
kubeadm upgrade node
Actualiza los nodos adicionales del control plane o la configuración del kubelet de un worker.
Version skew policy (política de desfase de versiones)
Reglas sobre cuánto pueden diferir las versiones de los componentes; los kubelets nunca pueden ser más nuevos que el API server.
etcdctl
El cliente de red para un etcd en ejecución; se usa para snapshot save, member list y endpoint health.
etcdutl
La utilidad offline de etcd para trabajar con archivos de datos, incluidos snapshot restore y status.
Data directory (directorio de datos)
La ubicación en disco de la base de datos de etcd, definida por --data-dir y montada mediante un volumen hostPath.
etcd PKI
La CA y los certificados separados en /etc/kubernetes/pki/etcd que se usan para el TLS mutuo de etcd.
Stacked etcd (etcd apilado)
Topología en la que cada nodo del control plane también ejecuta un miembro de etcd.
External etcd (etcd externo)
Topología en la que etcd se ejecuta en hosts separados del control plane.
Quorum
Una mayoría de miembros de etcd, floor(n/2)+1, necesaria para confirmar escrituras.
--certificate-key
La clave usada para descifrar los certificados del control plane subidos con --upload-certs al unirse como nodo del control plane.
Leader election (elección de líder)
Mecanismo que mantiene activos un solo scheduler y un solo controller-manager entre los nodos del control plane.
Role / ClusterRole
Conjuntos de reglas de permisos, de namespace o de alcance de clúster respectivamente.
RoleBinding / ClusterRoleBinding
Objetos que otorgan un rol a users, groups o ServiceAccounts, en un namespace o en todo el clúster.
Aggregated ClusterRole (ClusterRole agregado)
Un ClusterRole cuyas reglas se ensamblan automáticamente a partir de otros ClusterRoles que coinciden con un selector de etiquetas.
CertificateSigningRequest
Un objeto de API que le pide a un firmante, como el signer kube-apiserver-client, que emita un certificado.
Cordon (acordonar)
Marca un nodo como no programable sin tocar los Pods en ejecución.
Drain (vaciar)
Hace cordon de un nodo y desaloja sus Pods para que se reprogramen en otro lugar.
PodDisruptionBudget (presupuesto de interrupción)
Una política que limita cuántos de los Pods seleccionados pueden estar caídos a la vez por interrupciones voluntarias.
Eviction API (API de desalojo)
La API que usa drain para quitar Pods, y que respeta los PodDisruptionBudgets.
Chart
Un paquete de Helm con manifiestos de Kubernetes en plantillas y valores por defecto.
Release
Una instancia instalada y con nombre de un chart en un namespace, con su propio historial de revisiones.
helm upgrade --install
Instala un release si no existe o lo actualiza si ya existe.
kustomization.yaml
El archivo de Kustomize que lista recursos y transformaciones; se aplica con kubectl apply -k.
CRI
La interfaz gRPC que usa el kubelet para controlar container runtimes como containerd y CRI-O.
crictl
Un cliente de línea de comandos para runtimes CRI, usado para depurar a nivel de nodo.
CNI
La especificación y los plugins que configuran las interfaces de red y las direcciones IP de los Pods.
CSI
La interfaz estándar para drivers de almacenamiento externos al árbol de Kubernetes que aprovisionan, adjuntan y montan volúmenes.
CustomResourceDefinition
Un objeto que registra un nuevo tipo de recurso en el API server.
Custom resource (recurso personalizado)
Una instancia de un tipo definido por una CRD, guardada en etcd como cualquier objeto.
Operator
Un controlador más CRDs que automatiza la operación de una aplicación específica.
Finalizer
Una clave en un objeto que bloquea su borrado hasta que un controlador realiza la limpieza y la quita.

Dominio 2: Workloads and Scheduling (15%)

Consejos para el examen

Términos clave

ReplicaSet
Un controlador que mantiene en ejecución un número especificado de Pods idénticos.
Deployment
Un controlador que gestiona ReplicaSets para ofrecer rolling updates y rollbacks declarativos.
maxSurge / maxUnavailable
Ajustes de RollingUpdate para los Pods extra permitidos y los Pods que pueden faltar durante una actualización.
kubectl rollout restart
Desencadena un reemplazo gradual de todos los Pods cambiando una anotación en la plantilla de Pod.
DaemonSet
Un controlador que ejecuta una copia de un Pod en cada nodo elegible.
StatefulSet
Un controlador que da a los Pods nombres ordinales estables, DNS estable y almacenamiento persistente por Pod.
Headless Service
Un Service con clusterIP None que publica registros DNS individuales de los Pods, requerido por los StatefulSets.
Control plane taint (taint del control plane)
node-role.kubernetes.io/control-plane:NoSchedule, que mantiene los Pods ordinarios fuera de los nodos del control plane.
ConfigMap
Un objeto que guarda configuración no confidencial como pares clave-valor.
Secret
Un objeto para datos sensibles; por defecto los valores están codificados en base64, no cifrados.
envFrom
Importa todas las claves de un ConfigMap o Secret como variables de entorno.
Immutable ConfigMap/Secret (inmutable)
Un objeto con immutable: true cuyos datos no se pueden cambiar después de crearlo.
Request (solicitud)
La cantidad de CPU o memoria reservada para un contenedor y usada en las decisiones de programación.
Limit (límite)
El máximo de CPU (se estrangula) o de memoria (se termina por OOM) que puede usar un contenedor.
LimitRange
Una política de admisión de namespace para valores por defecto, mínimos y máximos por contenedor o por Pod.
ResourceQuota
Un tope por namespace sobre el uso agregado de recursos y la cantidad de objetos.
QoS class (clase QoS)
Guaranteed, Burstable o BestEffort, derivada de los requests y limits y usada para el orden de desalojo.
nodeName
Un campo del Pod que lo fija directamente a un nodo, evitando al scheduler.
nodeSelector
Un mapa simple de etiquetas que un nodo debe cumplir por completo para que el Pod se programe ahí.
Required node affinity (afinidad obligatoria)
Una regla estricta de programación; el Pod se queda en Pending si ningún nodo la cumple.
Preferred node affinity (afinidad preferida)
Una regla flexible con peso que influye en la puntuación pero no bloquea la programación.
Taint (marca de repulsión)
Una clave, un valor y un efecto en un nodo que repelen a los Pods sin una toleration coincidente.
Toleration (tolerancia)
Un ajuste del Pod que permite, pero no obliga, la programación en nodos con taints coincidentes.
NoExecute
Un efecto de taint que desaloja los Pods en ejecución que no lo toleran, además de bloquear los nuevos.
tolerationSeconds
Cuánto tiempo puede quedarse un Pod que tolera un taint NoExecute antes de ser desalojado.
topologyKey
Una etiqueta de nodo cuyo valor define un dominio de topología, como un nodo o una zona.
Pod anti-affinity (anti-afinidad de Pods)
Una regla que mantiene un Pod alejado de los dominios que ya ejecutan Pods que coinciden con un selector.
topologySpreadConstraints
Reglas que limitan qué tan desigual es la distribución de los Pods coincidentes entre dominios.
maxSkew
La diferencia máxima permitida en la cantidad de Pods coincidentes entre dos dominios cualesquiera.
PriorityClass
Un objeto de alcance de clúster que asigna una prioridad entera a los Pods que lo referencian.
Preemption (desplazamiento)
El scheduler desaloja Pods de menor prioridad para hacer espacio a un Pod en Pending de mayor prioridad.
globalDefault
Un indicador de PriorityClass que la convierte en la clase por defecto para los Pods que no indican ninguna.
preemptionPolicy: Never
Da a una clase prioridad en la cola sin permitirle desalojar a otros Pods.
HorizontalPodAutoscaler
Un controlador que ajusta el número de réplicas de una carga de trabajo para cumplir un objetivo de métrica.
metrics-server
Un complemento que recolecta el uso de CPU y memoria de los kubelets y sirve la Resource Metrics API.
averageUtilization
Un objetivo expresado como porcentaje de los requests de recursos de los Pods.
Vertical Pod Autoscaler
Un complemento que recomienda o define los requests de los contenedores según el uso observado.
Cluster Autoscaler
Un complemento que agrega o elimina nodos según los Pods en Pending y la utilización de los nodos.
Binding (asignación)
El acto de asignar un Pod a un nodo, registrado al definir spec.nodeName.
Mirror Pod (Pod espejo)
La representación en la API de un static Pod, que pertenece al Node y no se puede editar.
schedulerName
Un campo del Pod que indica qué scheduler debe ubicarlo; por defecto, default-scheduler.

Dominio 3: Services and Networking (20%)

Consejos para el examen

Términos clave

Pod CIDR
El rango de direcciones del que se asignan las IP de los Pods, definido al crear el clúster.
Service CIDR
El rango de direcciones para los ClusterIP de los Services, definido por --service-cluster-ip-range.
Pause container (contenedor pause)
El contenedor sandbox que mantiene el network namespace compartido de un Pod.
Overlay network (red overlay)
Una encapsulación (como VXLAN) que transporta el tráfico de los Pods entre nodos a través de la red de los nodos.
ClusterIP
Una IP virtual para un Service, implementada como reglas de reenvío y no como una interfaz real.
iptables mode (modo iptables)
Modo de kube-proxy que usa cadenas NAT (KUBE-SERVICES, KUBE-SVC, KUBE-SEP) para reenviar el tráfico de los Services.
IPVS mode (modo IPVS)
Modo de kube-proxy que usa el balanceador de carga basado en hash IP Virtual Server del kernel.
nftables mode (modo nftables)
Modo de kube-proxy que programa las reglas con el framework nftables.
NodePort
Un tipo de Service que además abre un puerto del rango 30000–32767 en todos los nodos.
LoadBalancer
Un tipo de Service que solicita un balanceador de carga externo a un cloud controller o a MetalLB.
Headless Service
Un Service con clusterIP None cuyo nombre DNS se resuelve directamente en las IP de los Pods.
ExternalName
Un Service que devuelve un CNAME de DNS hacia un hostname externo, sin proxy.
EndpointSlice
Un objeto que lista un subconjunto de las direcciones, puertos y condiciones de readiness de los backends de un Service.
Selectorless Service (Service sin selector)
Un Service sin selector cuyas EndpointSlices gestionas manualmente.
externalTrafficPolicy: Local
Solo los Pods locales del nodo reciben el tráfico externo, conservando la IP de origen del cliente.
sessionAffinity: ClientIP
Enruta de forma consistente una IP de cliente dada al mismo Pod de backend.
NetworkPolicy (política de red)
Un objeto de namespace que define una lista de permisos para el tráfico de ingress y egress de los Pods seleccionados.
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
Un selector de pares que coincide con todos los Pods de los namespaces cuyas etiquetas coinciden.
ipBlock
Un par definido por un rango CIDR, con excepciones opcionales.
GatewayClass
Un recurso de alcance de clúster que indica el controlador que implementa los Gateways de esa clase.
Gateway
Una solicitud de un punto de entrada de tráfico con uno o más listeners.
HTTPRoute
Reglas de enrutamiento que se adjuntan a listeners de un Gateway mediante parentRefs y reenvían a backendRefs.
allowedRoutes
Ajuste del listener que controla qué namespaces y tipos de ruta pueden adjuntarse.
ReferenceGrant
Un objeto que permite referencias entre namespaces, como una ruta hacia el Service de otro namespace.
Ingress controller (controlador de Ingress)
Un proxy que se ejecuta en el clúster y que implementa los objetos Ingress.
IngressClass
Un objeto de alcance de clúster que vincula un Ingress con un controlador específico.
Default IngressClass (IngressClass predeterminada)
La clase con la anotación is-default-class en true, usada cuando un Ingress no define ingressClassName.
pathType
Coincidencia de rutas Exact, Prefix (por elementos) o ImplementationSpecific.
Corefile
La configuración de CoreDNS, guardada en el ConfigMap coredns, formada por bloques de servidor y plugins.
forward plugin (plugin forward)
Envía a los resolvers upstream las consultas para las que CoreDNS no es autoritativo.
Stub zone (zona stub)
Un bloque de servidor que reenvía un dominio específico a servidores DNS designados.
dnsPolicy
Ajuste del Pod que elige el comportamiento de DNS ClusterFirst, Default, ClusterFirstWithHostNet o None.
kubectl run --rm -it
Crea un Pod temporal interactivo que se borra cuando termina la sesión.
busybox
Una imagen mínima con herramientas básicas como nslookup, wget y nc, pero sin curl.
nicolaka/netshoot
Una imagen de troubleshooting con muchas herramientas de red, incluidas curl, dig y tcpdump.
Connection refused vs timeout (conexión rechazada frente a tiempo agotado)
Refused significa que nada escucha en el puerto; timeout normalmente significa que el tráfico se descarta o no es enrutable.

Dominio 4: Storage (10%)

Consejos para el examen

Términos clave

PersistentVolume
Un objeto de alcance de clúster que representa una porción de almacenamiento y sus propiedades.
PersistentVolumeClaim
Una solicitud de almacenamiento de namespace que se vincula a un PV coincidente.
Released (liberado)
Fase del PV después de que se borra su claim, antes de que el almacenamiento se recupere o se libere manualmente.
emptyDir
Un volumen temporal con alcance de Pod que se elimina cuando el Pod sale del nodo.
ReadWriteOnce (RWO)
Lectura-escritura por un solo nodo; varios Pods en ese nodo pueden compartirlo.
ReadOnlyMany (ROX)
Solo lectura por muchos nodos.
ReadWriteMany (RWX)
Lectura-escritura por muchos nodos; requiere almacenamiento de archivos compartido.
ReadWriteOncePod (RWOP)
Lectura-escritura por exactamente un Pod en todo el clúster; se admite para volúmenes CSI.
persistentVolumeReclaimPolicy
El campo del PV que decide qué pasa con el volumen después de que se borra su claim.
Retain (conservar)
Conserva el PV y los datos después de borrar el claim; el PV pasa a Released.
Delete (borrar)
Elimina el PV y su almacenamiento de respaldo cuando se borra el claim.
Recycle (reciclar)
Una política obsoleta que limpiaba el volumen y lo volvía a dejar Available.
StorageClass
Una descripción de alcance de clúster de un tipo de almacenamiento y de cómo aprovisionarlo.
Provisioner (aprovisionador)
El componente, normalmente un driver CSI, que crea volúmenes para una StorageClass.
Dynamic provisioning (aprovisionamiento dinámico)
La creación automática de un PV cuando un PVC solicita una StorageClass.
Default StorageClass (StorageClass predeterminada)
La clase con la anotación is-default-class en true, que se aplica a los PVCs sin storageClassName.
volumeBindingMode
Campo de la StorageClass que controla cuándo se vinculan los PVCs: Immediate o WaitForFirstConsumer.
Immediate
Vincula o aprovisiona en cuanto se crea el PVC, sin importar dónde se ubique el Pod.
WaitForFirstConsumer
Retrasa la vinculación hasta que se programa un Pod que usa el claim, respetando la topología.
Volume node affinity conflict (conflicto de afinidad de nodo del volumen)
Una falla de programación en la que el Pod no puede ejecutarse en ningún nodo al que llegue el volumen vinculado.
allowVolumeExpansion
Flag de la StorageClass que permite agrandar los PVCs de esa clase.
Online expansion (expansión en línea)
Hacer crecer el sistema de archivos de un volumen mientras el Pod que lo usa sigue ejecutándose.
FileSystemResizePending
Una condición del PVC que indica que el sistema de archivos se redimensionará la próxima vez que un Pod lo monte.
Static provisioning (aprovisionamiento estático)
Crear objetos PV manualmente para almacenamiento existente.
hostPath
Un tipo de volumen que monta un directorio del sistema de archivos del nodo; adecuado solo para laboratorios.
local volume (volumen local)
Un PV para almacenamiento conectado a un nodo que requiere nodeAffinity para fijar los Pods a ese nodo.
NFS volume (volumen NFS)
Almacenamiento de archivos en red identificado por servidor y ruta, utilizable en lectura-escritura desde muchos nodos.
CSI driver (driver CSI)
Un plugin de almacenamiento del proveedor, dividido en componentes de controlador y por nodo, que implementa CSI.
volumeClaimTemplates
Campo del StatefulSet que crea un PVC por cada ordinal de Pod.
persistentVolumeClaimRetentionPolicy
Ajuste del StatefulSet que controla si los PVCs se borran cuando el conjunto se borra o se reduce su escala.
VolumeAttachment
Un objeto que registra que un volumen CSI está adjuntado a un nodo concreto.

Dominio 5: Troubleshooting (30%)

Consejos para el examen

Términos clave

NotReady
Estado del nodo cuando la condición Ready es False o Unknown.
journalctl -u kubelet
Muestra los logs del servicio kubelet, la fuente principal de errores a nivel de nodo.
Node conditions (condiciones del nodo)
Indicadores de estado como Ready, MemoryPressure, DiskPressure y PIDPressure que reporta el kubelet.
KubeletConfiguration
El archivo de configuración del kubelet, normalmente /var/lib/kubelet/config.yaml.
crictl ps -a
Lista todos los contenedores de un nodo desde el runtime, incluidos los terminados.
crictl logs
Lee los logs de un contenedor directamente desde el runtime; útil cuando el API server está caído.
etcdctl endpoint health
Verifica si un miembro de etcd está respondiendo.
/var/log/pods
Directorio en disco donde el kubelet guarda los archivos de log de los contenedores por Pod.
FailedScheduling
Motivo de evento que se registra cuando el scheduler no encuentra un nodo adecuado.
Insufficient cpu/memory
Mensaje del scheduler que significa que los requests del Pod superan la capacidad allocatable libre de todos los nodos.
Untolerated taint (taint no tolerado)
Mensaje del scheduler que significa que el taint de un nodo no tiene una toleration coincidente en el Pod.
Unbound immediate PersistentVolumeClaims
Mensaje del scheduler que significa que un PVC que necesita el Pod no está vinculado.
kubectl top
Muestra el uso actual de CPU y memoria de nodos o Pods usando metrics-server.
Allocatable
Los recursos del nodo disponibles para los Pods después de las reservas del sistema; los usa el scheduler.
Allocated resources (recursos asignados)
El resumen de describe node con el total de requests y limits de los Pods del nodo.
Overcommitment (sobreasignación)
Cuando la suma de los limits de un nodo supera su capacidad allocatable.
kubectl logs --previous
Muestra los logs de la última instancia terminada de un contenedor.
/var/log/containers
Directorio del nodo con enlaces simbólicos a los archivos de log de los contenedores, que los agentes de logs suelen seguir.
Streaming sidecar (sidecar de streaming)
Un contenedor auxiliar que lee el archivo de log de una aplicación desde un volumen compartido y lo escribe en stdout.
Event (evento)
Un registro de namespace de algo que le ocurrió a un objeto, con type, reason y message.
involvedObject
El objeto al que se refiere un evento; un objetivo común de los field selectors.
--field-selector
Filtrado del lado del servidor sobre campos admitidos del objeto, como type o reason.
--sort-by
Ordena la salida de kubectl por un campo JSONPath, como .metadata.creationTimestamp.
Empty EndpointSlice (EndpointSlice vacía)
Un Service sin backends, normalmente por una discrepancia de selector o por Pods que no están listos.
Readiness probe (sonda de disponibilidad)
Una verificación que decide si un Pod recibe tráfico del Service.
Pod sandbox
El network namespace y el contenedor pause del Pod, configurados mediante el CNI antes de que arranquen los contenedores.
Cross-node traffic (tráfico entre nodos)
Tráfico entre Pods de distintos nodos, transportado por el overlay o el enrutamiento del CNI.
loop plugin (plugin loop)
Plugin de CoreDNS que detecta bucles de reenvío y detiene CoreDNS si encuentra uno.
systemd-resolved stub
Un resolver local en 127.0.0.53 que causa bucles si CoreDNS le reenvía consultas.
resolvConf
Ajuste del kubelet que indica el archivo resolv.conf que se pasa a los Pods con la política Default y a CoreDNS.
k8s-app=kube-dns
La etiqueta que selecciona los Pods de CoreDNS y los backends del Service kube-dns.
Context (contexto)
Una entrada del kubeconfig que combina un cluster, un user y un namespace opcional.
KUBECONFIG
Variable de entorno que lista los archivos kubeconfig que kubectl debe combinar.
Unauthorized vs Forbidden
401 significa que falló la autenticación; 403 significa autenticado pero no permitido por RBAC.
kubeadm certs renew
Comando que renueva los certificados gestionados por kubeadm, incluidos los incrustados en los kubeconfigs.
-o jsonpath
Modo de salida que imprime los valores seleccionados por una plantilla JSONPath.
range ... end
Construcción de JSONPath para recorrer una lista, usada comúnmente para imprimir un elemento por línea.
-o custom-columns
Modo de salida que imprime una tabla con nombres de columna definidos por el usuario y valores JSONPath.
Terminating
Estado del Pod que se muestra cuando hay una marca de tiempo de borrado pero el borrado no se ha confirmado.
Force deletion (borrado forzado)
Eliminar un objeto Pod de inmediato con --grace-period=0 --force, sin confirmación del kubelet.
out-of-service taint (taint de fuera de servicio)
Un taint de nodo que lo marca como apagado para que se limpien sus Pods y las conexiones de sus volúmenes.
Grace period (período de gracia)
El tiempo permitido entre SIGTERM y SIGKILL para que un contenedor se detenga; 30 segundos por defecto.
Estudia CKA gratis
Plan semana a semana con lecciones, cuestionarios, simulaciones de examen y práctica, en español.
Abrir el plan de estudio