CKA / Lecciones en español · English
Lecciones de CKA CKA (Kubernetes v1.35 curriculum)
- Componentes del control plane y de los nodos: kube-apiserver, etcd, kube-scheduler, kube-controller-manager, kubelet, kube-proxy y container runtime
- Preparar los hosts para kubeadm: containerd, cgroup driver systemd coincidente, swap, módulos overlay y br_netfilter, sysctls de ip_forward y bridge, y puertos requeridos
- kubeadm init (pod network CIDR, control-plane endpoint), instalación de un plugin CNI, kubeadm join y bootstrap tokens
- Static Pods y /etc/kubernetes/manifests; certificados de kubeadm (check-expiration, renew) y archivos kubeconfig
- Actualizaciones del clúster con kubeadm: una versión minor a la vez, upgrade plan/apply/node, drain, actualización del kubelet, uncordon y version skew
- Backup y restauración de etcd con etcdctl/etcdutl y la PKI de etcd; apuntar el static Pod de etcd a un directorio de datos restaurado
- Control planes de alta disponibilidad: etcd stacked vs externo, quorum, balanceador de carga frente a los API servers, --upload-certs y --certificate-key
- RBAC: Roles, ClusterRoles, RoleBindings, ClusterRoleBindings, roles agregados e integrados, usuarios mediante CertificateSigningRequests y kubectl auth can-i
- Mantenimiento de nodos: cordon, drain, uncordon y PodDisruptionBudgets
- Helm (repo add/update, upgrade --install, --version, values) y Kustomize (kubectl apply -k) para instalar componentes del clúster
- Interfaces de extensión: CRI (containerd, CRI-O, crictl), CNI (Calico, Cilium, Flannel) y drivers CSI
- CustomResourceDefinitions, custom resources y operators (CRD más controlador)
- Deployments y ReplicaSets como primitivas de autorreparación; rolling updates, rollout status, history, undo y restart
- DaemonSets y StatefulSets desde el punto de vista del operador, incluidas las tolerations para los nodos del control plane
- ConfigMaps y Secrets: creación, consumo como env y como volumen, objetos inmutables y reinicio de cargas de trabajo tras los cambios
- Requests y limits de recursos, LimitRange y ResourceQuota como controles de admisión
- Programación: nodeSelector, nodeName y node affinity (required vs preferred)
- Taints y tolerations: NoSchedule, PreferNoSchedule, NoExecute y tolerationSeconds
- Pod affinity y anti-affinity con topologyKey; topologySpreadConstraints
- PriorityClasses y preemption (desplazamiento)
- Autoescalado de cargas de trabajo: HorizontalPodAutoscaler (kubectl autoscale, autoscaling/v2), metrics-server y requests de CPU; nociones de VPA y Cluster Autoscaler
- Static Pods frente a Pods ubicados por el scheduler; qué pasa cuando el scheduler está caído
- El modelo de red de Kubernetes: una IP por Pod, tráfico entre Pods sin NAT, el papel del plugin CNI y los CIDR de Pods y Services
- Modos de kube-proxy (iptables, IPVS, nftables) y cómo funcionan las IP virtuales de los Services
- Tipos de Service: ClusterIP, NodePort (30000–32767), LoadBalancer (cloud controller o MetalLB), headless y ExternalName
- EndpointSlices, Services sin selectores, externalTrafficPolicy y sessionAffinity
- NetworkPolicies: default deny, reglas de ingress y egress, podSelector, namespaceSelector (kubernetes.io/metadata.name), ipBlock y puertos
- Gateway API: GatewayClass, listeners y allowedRoutes del Gateway, parentRefs y matches de HTTPRoute y backendRefs con pesos; instalación de las CRDs y de un controlador
- Ingress controllers, IngressClass y la clase por defecto; reglas de Ingress, tipos de ruta y TLS
- CoreDNS: el ConfigMap coredns y el Corefile, reenvío y stub zones, registros DNS de Services y Pods, y dnsPolicy
- Probar la conectividad con Pods temporales (busybox, nicolaka/netshoot), nslookup, curl y nc
- Volumes frente a PersistentVolumes; ciclo de vida de PV y PVC (Available, Bound, Released) y reglas de vinculación
- Modos de acceso: ReadWriteOnce, ReadOnlyMany, ReadWriteMany y ReadWriteOncePod
- Políticas de recuperación: Retain y Delete (Recycle obsoleta) y limpieza de PVs en Released
- StorageClasses, provisioners y aprovisionamiento dinámico; la anotación de StorageClass predeterminada
- volumeBindingMode: Immediate frente a WaitForFirstConsumer
- Expansión de volúmenes con allowVolumeExpansion
- PVs estáticos: hostPath para laboratorios, volúmenes local con nodeAffinity y NFS
- Drivers CSI y volumeClaimTemplates de StatefulSet con retención de PVCs
- Problemas de nodos: NotReady, estado del kubelet y journalctl -u kubelet, configuración y certificados del kubelet, container runtime caído y condiciones del nodo (DiskPressure, MemoryPressure)
- Problemas del control plane: manifiestos de static Pods, crictl ps/logs cuando el API server está caído, síntomas del scheduler y del controller-manager, y salud de etcd con etcdctl
- Pods en Pending: mensajes FailedScheduling por recursos, taints, affinity y PVCs sin vincular
- Monitoreo de recursos: metrics-server, kubectl top nodes/pods --sort-by y los allocated resources de describe node
- Flujos de salida de los contenedores: opciones de kubectl logs, stdout/stderr frente a archivos de log, /var/log/pods y /var/log/containers, y streaming de logs con sidecar
- Eventos: kubectl get events con field selectors y ordenamiento
- Problemas de Services y de red: selectores, readiness y EndpointSlices, kube-proxy, tráfico CNI entre nodos y errores de red del sandbox
- Problemas de DNS: Pods y logs de CoreDNS, detección de bucles con systemd-resolved y pruebas con un Pod temporal
- Problemas de acceso al clúster: contexts de kubeconfig, certificados vencidos y connection refused en el 6443
- Manejo de la salida en las tareas: -o jsonpath, custom-columns, --sort-by y escritura de respuestas en archivos
- Pods atascados en Terminating en nodos perdidos y borrado forzado