Introducción a Kubernetes

1

Introducción a Kubernetes: conceptos y aplicación práctica

2

Repaso de contenedores e introducción a k8s

3

De pods a contenedores

4

¿Cómo funciona la arquitectura de red de Kubernetes?

5

Modelos declarativos e imperativos

6

Visión general del modelo de red

7

Recomendaciones

8

Introducción a aplicación de prueba

9

Instalando nuestro primer cluster con Minikube, Kubeadm

10

Instalando nuestro primer cluster con Kubeadm

11

Desplegando el Cluster en AWS con EKS

12

Desplegando una aplicación de prueba con EKS

Primer contacto con un cluster de kubernetes

13

Usando kubectl

14

Creación y manejo de pods

15

Deployments y replica sets

Balanceo de carga y service discovery

16

Accediendo a nuestros PODS a través de servicios

17

Enrutando el tráfico utilizando servicios

18

Desplegando nuestra app en k8s

Escalando nuestra aplicación

19

Exponiendo servicios interna y externamente (kubectl-proxy)

20

Kubernetes dashboard

21

Balanceo de carga y Daemon sets

22

Despliegues controlados

23

Healthchecks

Optimizando el uso de nuestro cluster

24

Gestionar stacks con Helm

25

Gestionando la configuración aplicativas utilizando Config Maps

26

Volúmenes

Autorización y Namespaces

27

Introducción a namespaces

28

Despliegue múltiples instancias de la misma aplicación en un solo cluster.

29

Autenticación y autorización

30

Service account tokens

31

RBAC

Fin del curso

32

Recomendaciones para implementar Kubernetes en tu organización o proyectos

Bonus

33

Clase en vivo: workflows de Kubernetes usando git

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
21 Hrs
52 Min
50 Seg

De pods a contenedores

3/33
Recursos

¿Qué son Docker y Kubernetes y cómo se diferencian?

Si alguna vez te has adentrado en el mundo de las aplicaciones en la nube, sin duda has escuchado hablar de Docker y Kubernetes. Estas dos tecnologías son piedra angular en la gestión y orquestación de contenedores. Docker gestiona el ciclo de vida de los contenedores, permitiendo a los desarrolladores correr, parar y configurar recursos como memoria y CPU. Por otro lado, Kubernetes va un paso más allá en la orquestación. Permite la gestión de múltiples nodos en un clúster, asegurando la comunicación entre aplicaciones y facilitando la escalabilidad.

Comparativa: Open Source y Comunidad

  • Docker: Inicialmente concebido como un proyecto open source, ahora bajo el nombre de Moby, ofrece varios servicios para la gestión de contenedores.
  • Kubernetes: Nacido de la mano de Google, fue adoptado por la comunidad y forma parte del Cloud Native Computing Foundation (CNCF). Su naturaleza open source permite una colaboración continua y el aporte de múltiples promotores.

Ambos han sido abrazados por la comunidad y ahora son ofrecidos por varios proveedores de servicios en la nube como Amazon AWS, Azure, DigitalOcean, entre otros.

¿Cuáles son los conceptos clave de Kubernetes?

Kubernetes no solo orquesta aplicaciones, sino que también proporciona herramientas avanzadas para la gestión de la infraestructura y servicios:

  • Replica Sets: Aseguran que múltiples réplicas de aplicaciones estén siempre funcionando, protegiendo la disponibilidad ante fallos.
  • Balanceador de carga: Interno y externo, facilita la distribución automática del tráfico de red, mejorando el rendimiento y la confiabilidad sin requerir servicios adicionales como Nginx o HAProxy.
  • Rollouts de código: Kubernetes soporta despliegues continuos con estrategias diversas como rolling updates, canary deploys y blue-green.

Estas funcionalidades hacen de Kubernetes una solución robusta y versátil para manejar aplicaciones modernos en la nube.

Escalado y autoescalado

Kubernetes permite configuraciones detalladas de autoescalado, basado en métricas de uso del sistema, como CPU o memoria. Los usuarios pueden automáticamente aumentar o reducir el número de réplicas de una aplicación según la demanda del sistema.

Control de acceso basado en roles (RBAC)

Esta potente característica permite establecer políticas finas de acceso, asegurando que diferentes equipos dentro de una organización tengan los permisos adecuados para las tareas que necesitan realizar. Esto es esencial para mantener la seguridad y eficiencia en entornos de trabajo colaborativos.

¿Qué es un Pod en Kubernetes y por qué es crucial?

El Pod es la mínima unidad de orquestación dentro de Kubernetes. Es un grupo de contenedores que comparten red e IP, permitiendo una intercomunicación fluida como si fueran procesos en el mismo sistema.

Características de los Pods

  • Unidad atómica: Los pods pueden tener uno o varios contenedores colaborando juntos. Esto es esencial para aplicaciones que requieren múltiples funcionalidades como sidecars.
  • Compartición de red: Todos los contenedores en un Pod comparten la misma dirección IP, facilitando la gestión y comunicación interna.
  • Escalabilidad: Cuando un Pod necesita escalar, Kubernetes crea nuevas copias del Pod original en lugar de añadir más contenedores al existente.

Recordar que un Pod es más que solo un contenedor es clave para entender la eficacia y flexibilidad de Kubernetes. Es el que facilita el diseño de aplicaciones que pueden ser escaladas y distribuidas para maximizar el uso de recursos y garantizar el uptime.

Kubernetes continúa evolucionando, ofreciendo funcionalidades avanzadas que permiten una gestión eficiente y dinámica de las aplicaciones en la nube. Aprender y entender estos conceptos es vital para aprovechar al máximo lo que estos sistemas ofrecen.

Aportes 37

Preguntas 4

Ordenar por:

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

Importante pregunta de examen

Todos los contenedores del mismo pod comparten el mismo namespaces de red.

Me encanta este profe, es super técnico pero se esmera en explicarlo muy muy bien, No cambies!!

Excelente profesor. Deberias dar tambien un curso de Linux Servers

Llegue a esta clase hace unos meses me senti abrumado por los conceptos, entonces seguí el concejo del profe y vi el curso de docker swarm y ahora entiendo los conceptos a la perfección y entiendo las funcionalidades que hace que kubernetes se destaque frente a docker swarm y otros orquetadores de servicios. Recomiendo ver el curso de docker swarm primero.

Un pod son uno o mas contenedores que viven juntos y comparten un namespaces de red.

Recursos de Kubernetes

Kubernetes trabaja con una entidad llamada scheduling (programación de -planes-, Planificación) de orquestación llamada Pod.
.
Jobs batch: K8s es por ahora la única tecnología de K8s que permite programar tareas como en un crontab.
.
CRD’s: Customs Record Definitions.
Service catalog: Que esta desplegado y conectarme a ese servicio.
RBAC: Roll Back Access Control. Permitir al orquestador dar políticas de Roles (que también solo lo tiene K8s), esto es muy poderoso, por ejemplo: te permite tener varios equipos dentro de la organicación, yo puedo usar un cluster de K8s para dar accesos a: dev team, QA team, analitics team, ets. Para tener una política de acceso bien definida de quien puede acceder y como acceder.

¿Un nodo Minion puede contener otros nodos? Después de investigar, llegue a la conclusión de que un nodo Minion NO puede contener otros nodos ya que el nodo Minion debería ser un nodo Master para poder administrar las tareas de los nodos Minions.
Ref: https://kubernetes.io/es/docs/concepts/architecture/nodes/
.
Y, ¿Un Pod puede contener otro Pod? Un Pod no puede contener otro Pod al ser tratados como unidades atómicas:
"A Pod is is the smallest deployable unit that can be deployed and managed by Kubernetes. In other words, if you need to run a single container in Kubernetes, then you need to create a Pod for that container. At the same time, a Pod can contain more than one container, if these containers are relatively tightly coupled."
Ref: https://linchpiner.github.io/k8s-multi-container-pods.html

gracias, estoy repitiendo el curso para no olvidar nada, consejo de Freddy

Considero que hacer una app monolitica no esta del todo mal. Usualmente lo hago cuando algún cliente me contrata para hacer algun MVP. En un proyecto pequeño no necesitas todo de K8s, pero…
Y que tal si crece? y que tal si necesita HA? Monitoring? CI/CD?
Este curso es el ideal para resolver algunas de esas preguntas.

Muy buena explicación. Este orquestador es muy potente…

Que es un POD: Uno o más contenedores que comparten una IP de red

  • Kuberntes: Es la plataforma más extensiva para orquestación de servicios e infraestructura.
  • K8s permite correr varias réplicas y asegurarse que todas se encuentren funcionando.
  • Provee un balanceador de carga interno o externo automáticamente para nuestros servicios.
  • Definir diferentes mecanismos para hacer roll-outs de código.
  • Políticas de scaling automáticas.
  • Jobs batch.
  • Correr servicios con datos stateful.
  • Todos los contenedores del POD, comparten el mismo namespace de red

Con **Kubernete ** en mi equipo de trabajo esperamos hacer deployment mucho mas rápido de las nuevas funcionalidades sin detener el servicio a nuestros clientes actuales y futuros y asi poder escalar al 1000%

Se considera una buena practica tener un solo contenedor en cada pod?

Docker: Gestión de contenedores.
Kubernetes: Orquestación de servicios e infraestructura en contenedores.
Pod: Grupo de contenedores que comparten el mismo namespace de red. Se crean y destruyen cuando se escalan.

Kubernetes es una plataforma portable y extensible de código abierto para administrar cargas de trabajo y servicios. Kubernetes facilita la automatización y la configuración declarativa. Tiene un ecosistema grande y en rápido crecimiento. El soporte, las herramientas y los servicios para Kubernetes están ampliamente disponibles.
Google liberó el proyecto Kubernetes en el año 2014. Kubernetes se basa en la experiencia de Google corriendo aplicaciones en producción a gran escala por década y media, junto a las mejores ideas y prácticas de la comunidad.

Excelente explicación. Desconocida sobre los proyecto Borg y Omega

Me gusta la forma de explicar, facil y sencillo

La unidad de orquestacion es el pod.

Kubernetes elimina el soporte para Docker: ¿y ahora qué? ¿qué pasa con Docker? ¿cómo me influye?

Enlace de consulta

excelente explicación!!!

Concepto importante y pregunta de examen

Excelente explicación, se nota que domina bastante el tema.

vengo del futuro!!!!, el decir que ya no deberían existir monolitos está errado, empresa como Google y Amazon están adoptando una arquitectura modulitica (combinando servicios con modulitos) por costos y performance

Uhhhhh esas propuestas del profesor de q no nos preocupemos y lo q va a enseñar durante el curso, suena genial!!!

Con demasiadas expectativas…

**La distribución de RedHat para K8s **

Red Hat OpenShift versus Kubernetes:
https://www.redhat.com/es/topics/containers/red-hat-openshift-kubernetes

En el video 3 se dice que los contenedores de un mismo pod comparten el mismo segmento de red y luego se dice que son la misma dirección ip. confunde un poco, no me queda claro. (minuto 13 a 14)

Que es un POD: Uno o más contenedores que comparten una IP de red

Cuando se desea escalar un Pod, no se agregan más contenedores al mismo. Esto se debe a que un Pod es una unidad atómica. Lo que se hace es crear copias del mismo con un nuevo Id. Cuando se destruye un Pod, el mismo no puede ser creado o regenerado (es decir, que si se crean nuevas copias tendrán un Id nuevo).

Todos los contenedores que viven en un mismo Pod comparten el mismo namespace de red.

Un pod es uno o más contenedores que viven juntos y comparten un mismo namespace de red.

Excelente clase. Saludos!

repasando 😃

Excelente 😃 gracias

Los pod cuantos contenedores pueden soportar?