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

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Kubernetes

Curso de Kubernetes

Jaggy Castaño

Jaggy Castaño

Introducción a la API de Kubernetes y kubectl

4/24
Recursos

¿Cómo configurar y empezar a trabajar con Kubernetes usando MiniKube?

Conocer cómo configurar y gestionar Kubernetes eficientemente es fundamental para cualquier profesional en el área de DevOps o administración de sistemas. Con un clúster configurado con MiniKube, podemos comenzar a explorar las capacidades de Kubernetes. A continuación, te ofrecemos una guía paso a paso basada en prácticas recomendadas para que puedas aprovechar al máximo las herramientas a tu disposición.

¿Cuál es el primer paso para iniciar con MiniKube y Kubernetes?

Primero, se debe tener el clúster local configurado con MiniKube. Este es una herramienta esencial que te permite gestionar tu clúster localmente, ofreciendo una plataforma flexible para diferentes configuraciones, como trabajar con múltiples nodos o diferentes versiones de Kubernetes. Para iniciar el clúster, usamos el comando:

minikube start --driver=docker

Este comando, además de levantar el clúster, puede ser complementado con varios parámetros específicos según tus necesidades, como el driver que prefieras usar.

¿Qué es KubeCTL y cómo interactuamos con Kubernetes?

KubeCTL es el puente esencial hacia el API server de tu clúster de Kubernetes. A través de este, podemos efectuar una variedad de solicitudes como crear, leer, actualizar y eliminar (CRUD) recursos. Un ejemplo básico para consultar los recursos es el comando:

kubectl get pods

Con este, podemos listar los pods activos en nuestro namespace actual. Sin embargo, para obtener más detalles, podemos usar:

kubectl get pods -o wide

¿Qué son los namespaces y cómo gestionarlos?

Los namespaces son cruciales para organizar y separar lógicamente los recursos dentro de Kubernetes. Por defecto, el clúster tiene un namespace de "default", pero puedes crear y eliminar adicionales según sea necesario:

  • Crear un nuevo namespace:

    kubectl create namespace k8s-demo

  • Validar la creación del namespace:

    kubectl get namespaces

  • Eliminar un namespace:

    kubectl delete namespace k8s-demo

¿Cómo gestionamos nodos dentro de Kubernetes?

Un aspecto importante de Kubernetes es la gestión de nodos que conforman el clúster, donde ejecutamos operaciones con:

  • Listar nodos:

    kubectl get nodes

  • Describir un nodo:

    kubectl describe node

Estos comandos ofrecen información valiosa sobre el rol, estado y recursos del nodo.

¿Cómo se aplican configuraciones operadores declarativas e imperativas?

Kubernetes permite dos estilos para gestionar configuraciones:

  1. Declarativa: utiliza archivos YAML para definir el estado deseado del sistema.
  2. Imperativa: ejecuta comandos directamente para llevar a cabo una acción específica.

Para aplicar un pod usando un archivo YAML de manera imperativa, utilizamos:

kubectl apply -f simple-pod.yaml

Y para borrar ese pod si ya no es necesario:

kubectl delete pod 

¿Cómo mantener nuestro clúster a punto con MiniKube?

Para personalizar nuestro clúster y expandir sus funcionalidades, MiniKube ofrece varios add-ons. Algunos esenciales para mejorar la gestión son:

  • Metric Server: para obtener métricas del clúster y posibilidades de autoescalamiento.

    minikube addons enable metrics-server

  • Registry: vincula el registro de Docker con MiniKube.

    minikube addons enable registry

Estos componentes son críticos para un manejo eficiente y un desarrollo fluido dentro de Kubernetes.

Ahora que hemos explorado las bases para interactuar y gestionar Kubernetes con MiniKube y KubeCTL, es momento de aprender a desplegar aplicaciones complejas. ¡Sigue explorando y aprende más sobre el despliegue de aplicaciones frontend y backend con Kubernetes!

Aportes 7

Preguntas 0

Ordenar por:

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

### **Comandos para manejar Pods** 1. **Listar Pods** `kubectl get pods` Muestra todos los pods en el namespace actual. Para ver los pods en otro namespace, agrega el flag `--namespace=<namespace>`. 2. **Desplegar un Pod** `kubectl run <nombre-del-pod> --image=<imagen> --restart=Never` Crea un pod con el nombre y la imagen especificados. El flag `--restart=Never` se usa para asegurar que el pod no se reinicie como un Deployment. 3. **Ver los detalles de un Pod** `kubectl describe pod <nombre-del-pod>` Muestra información detallada sobre un pod, incluidos sus eventos, contenedores, volúmenes, etc. 4. **Obtener logs de un Pod** `kubectl logs <nombre-del-pod>` Muestra los logs de un pod. Si el pod tiene varios contenedores, puedes especificar el contenedor con el flag `-c`. 5. **Eliminar un Pod** `kubectl delete pod <nombre-del-pod>` Elimina el pod especificado. ### **Comandos para manejar Nodos** 1. **Listar Nodos** `kubectl get nodes` Muestra una lista de todos los nodos en el clúster. 2. **Ver los detalles de un Nodo** `kubectl describe node <nombre-del-nodo>` Muestra información detallada sobre un nodo, como la memoria, CPU y recursos disponibles. 3. **Eliminar un Nodo** `kubectl delete node <nombre-del-nodo>` Elimina el nodo del clúster (no eliminará los pods en el nodo, pero podría afectar su disponibilidad). 4. **Ver el estado de los Pods en los Nodos** `kubectl get pods --all-namespaces -o wide` Muestra todos los pods de todos los namespaces y en qué nodo están corriendo. ### **Comandos para manejar Namespaces** 1. **Listar Namespaces** `kubectl get namespaces` Muestra todos los namespaces en el clúster. 2. **Crear un Namespace** `kubectl create namespace <nombre-del-namespace>` Crea un nuevo namespace con el nombre especificado. 3. **Cambiar de Namespace** `kubectl config set-context --current --namespace=<nombre-del-namespace>` Cambia el namespace predeterminado para las siguientes operaciones. 4. **Eliminar un Namespace** `kubectl delete namespace <nombre-del-namespace>` Elimina el namespace especificado y todos los recursos dentro de él. 5. **Listar los Pods en un Namespace específico** `kubectl get pods --namespace=<nombre-del-namespace>` Muestra los pods dentro de un namespace específico.
Me esta gustando mucho este curso, solo que esta clase tiene un error en el audio, solo se escucha en el lateral izquierdo, hasta el momento solo ha pasado con esta clase.
Muy cierto, es necesario equilibrar el sonido estéreo de éste vídeo en particular. Otro detalle, es el cursor en la caja de comentarios, ya que no se puede trasladar hacia otra palabra, me ha tocado borrar el avance de mi comentario para insertar una nueva palabra o corregir el texto. Saludos!!
Los minikube profiles sirven para crear varios clusters k8s independientes (aislados, con configuraciones diferentes) en una sóla máquina. Por ejemplo, esto sirve cuando necesitamos trabajar con varios entornos de k8s simultáneamente sin que interfieran entre sí.
Yo comparto mis notas por acá: <https://memoescalona.notion.site/Kubernetes-Introducci-n-1b44fd7dd88780e89717f2ac4835ff5f>
No es estrictamente necesario el "-o wide" para listar todos los pods del clúster, solamente así: `kubectl get pods -A`
Me daba error con la imagen usada en los ejemplos, usé en su lugar: ```js image: alexnaupay/nginx-hostname:latest ```