Introducción a Kubernetes

1

¿Qué es Kubernetes y por qué es importante?

2

Configura un clúster local con Minikube o Kind

3

Arquitectura de Kubernetes: nodos, pods, servicios y componentes clave

4

Introducción a la API de Kubernetes y kubectl

5

Diferencias entre enfoques declarativos e imperativos

Quiz: Introducción a Kubernetes

Objetos y Recursos de Kubernetes

6

Pods, ReplicaSets y Deployments

7

Servicios e Ingress: Exposición de aplicaciones

8

ConfigMaps y Secrets: Gestión de configuraciones y datos sensibles

Quiz: Objetos y Recursos de Kubernetes

Redes y Almacenamiento en Kubernetes

9

Modelo de red de Kubernetes: Comunicación entre pods y servicios

10

Tipos de servicios: ClusterIP, NodePort, LoadBalancer y ExternalName

11

Volúmenes persistentes (PV) y reclamaciones (PVC)

12

DaemonSets y StatefulSets

Quiz: Redes y Almacenamiento en Kubernetes

Cargas de Trabajo y Escalado

13

Despliegue de una aplicación multi-tier en Local

14

Jobs y CronJobs: Tareas únicas y programadas

15

Escalado de aplicaciones: HPA y VPA

16

Escalado de aplicaciones en Kubernetes

Quiz: Cargas de Trabajo y Escalado

Kubernetes en la Nube

17

Introducción a EKS, AKS y GKE

18

Configuración de Kubernetes en EKS (AWS)

19

Configuración de Kubernetes en AKS (Azure) y GKE (Google Cloud)

20

Despliegue del Proyecto en la nube de AWS (EKS)

Quiz: Kubernetes en la Nube

Troubleshooting, Casos de uso y Certificaciones K8s

21

Troubleshooting en Kubernetes

22

Otros casos de uso de Kubernetes

23

Certificaciones profesionales en K8s

24

Despliegue en Kubernetes Finalizado

Aportes 6

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

`kubectl get -o yaml pod hello-cloud > hello-cloud.yaml` Así se obtiene el archivo en formato yaml de un pod corriendo, llamado «hello-cloud» y lo guardo en un archivo en la misma ruta llamándolo «hello-cloud.yaml»
Kubernetes maneja recursos usando dos enfoques: **imperativo** y **declarativo**. **Enfoque Imperativo**: * Se basa en dar instrucciones específicas y secuenciales a Kubernetes mediante comandos en la terminal (kubectl). * Ideal para tareas rápidas y debugging. * Ejemplo de uso: `kubectl run mypod --image=nginx` para crear un pod. **Enfoque Declarativo**: * Se centra en describir el estado deseado del sistema con archivos YAML. * Ideal para producción, fácil de versionar y mantener. * Ejemplo de archivo YAML para crear un pod:yaml`apiVersion: v1` `kind: Pod` `metadata:` ` name: mypod` `spec:` ` containers:` ` - name: mycontainer` ` image: nginx` **Ventajas y Desventajas**: * Imperativo: rápido y directo, pero difícil de reproducir a largo plazo. * Declarativo: fácil de mantener y auditar, pero requiere aprender YAML. Ambos enfoques son útiles dependiendo del contexto y las necesidades del proyecto.
## **1. Enfoque Imperativo** El enfoque **imperativo** se basa en ejecutar comandos manualmente para realizar cambios en el clúster, indicando **paso a paso** lo que se debe hacer. 🔹 **Características:** * Se usa cuando se requiere control inmediato sobre los recursos. * Es útil para tareas puntuales o de prueba. * No mantiene un estado deseado, solo ejecuta acciones en el momento. 🔹 **Ejemplo:** Crear un pod de manera imperativa bashCopyEditkubectl run mi-pod --image=nginx --restart=Never 🔹 **Otro ejemplo:** Eliminar un pod bashCopyEditkubectl delete pod mi-pod En este caso, cada acción debe ejecutarse manualmente cada vez que se necesite. ## **2. Enfoque Declarativo** El enfoque **declarativo** define el estado deseado del clúster mediante archivos de configuración en formato YAML o JSON, y Kubernetes se encarga de aplicar los cambios necesarios para que el estado actual coincida con el estado deseado. 🔹 **Características:** * Se describe **qué** se quiere lograr, no cómo hacerlo. * Permite una administración más estructurada y escalable. * Se usa en entornos de producción porque facilita la automatización y el control de versiones. 🔹 **Ejemplo:** Crear un pod de manera declarativa Archivo `mi-pod.yaml`: yamlCopyEdit`apiVersion: v1` `kind: Pod` `metadata:` ` name: mi-pod` `spec:` ` containers:` ` - name: nginx` ` image: nginx` Aplicarlo en Kubernetes: bashCopyEditkubectl apply -f mi-pod.yaml Si el pod ya existe y se modifican sus parámetros en el archivo YAML, Kubernetes aplicará solo los cambios necesarios. ## **3. Diferencias Clave** ![](https://static.platzi.com/media/user_upload/image-e95f52c7-669f-43b3-a326-8fbc55793d9f.jpg) ## **¿Cuándo usar cada uno?** ✔️ **Imperativo**: * Para pruebas rápidas o tareas administrativas puntuales. * Cuando se requiere un cambio inmediato sin necesidad de persistencia. ✔️ **Declarativo**: * Para gestionar entornos de producción de manera estructurada. * Cuando se usa GitOps, CI/CD y herramientas de infraestructura como código (IaC). * Para asegurar que los cambios sean rastreables y reproducibles. En **producción**, el enfoque **declarativo** es el recomendado porque permite mejor escalabilidad, automatización y control del estado del clúster.
`kubectl get deploy nginx -n nginx-demo -o yaml`
kubectl get pod \<nombre-del-pod> -o yaml > pod.yaml
Para obtener el archivo YAML o JSON de un pod ya creado en Kubernetes, puedes usar el siguiente comando: ### **Obtener el YAML de un pod** kubectl get pod \<nombre-del-pod> -o yaml Ejemplo: kubectl get pod mi-pod -o yaml > mi-pod.yaml Esto guardará la configuración del pod en un archivo `mi-pod.yaml`. ### **Obtener el JSON de un pod** kubectl get pod \<nombre-del-pod> -o json Ejemplo: kubectl get pod mi-pod -o json > mi-pod.json Esto guardará la configuración del pod en un archivo `mi-pod.json`.
undefined