Introducción a Kubernetes

1

Todo lo que aprenderás sobre Kubernetes

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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

Balanceo de carga y Daemon sets

21/33
Recursos

Aportes 12

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Un DaemonSet se asegura que todos, o algunos nodos corra una copia de un Pod. No se crean en el CLI (kubectl), sino a través de los manifest files.

¿Cómo sabe k8s como enviar trafico a que pods?
Lo hace a tráves de los selectores, este permite el balanceo de carga. Cada service tiene los endpoints de los pods que estan corriendo para que otros
servicios puedan acceder. Al eliminar uno, k8s crea otro para cumplir con el estado deseado y lo integra automaticamente para ser destinatario de trafico.

Ya que --export fue deprecado, pueden obtener el rng.yml de la siguiente manera:

kubectl get deploy/rng -o yaml > rng.yml

Comandos de la clase:
kubectl get deploy/rng -o yaml --export > rng.yml
kind DaemonSet
kubectl apply -f rng.yml
kubectl apply -f rng.yml --validate=false
kubectl describe service rng
kubectl get pods --selector=app=rng
kubectl label pod podname app- //borrar label

buena clase 😃 gracias

En las versiones mas recientes de kubernetes fue deprecado el flag

--export

Por lo que en este caso la forma correcta de resolverlo es

kubectl get deploy/rng -o yaml > rng.yaml

Eso servira para exportar las configuraciones y poder editar. El export queda en el directorio en el que se encuentren, cualquier cosa un ls los ayudara a ver el archivo

#Ver pods ejecutando
kubectl get pods

#Exportar deploy a archivo 
kubectl get deploy/<name> -o yaml --export > <file.yml>

#Cambiar tipo de servicio en archivo exportado
kind: daemonSet

#Desplegar sin validacion
kubectl apply -f <file> --validate=false

#Administrar deployment por labels
kubectl get pods -selector=label<>
kubectl label pod <labeL> app-

Al momento de crear un recurso de tipo DaemonSet se va a mostrar en nuestro dashboard de la siguiente forma:

O por el CLI también podemos observarlo y revisar su especificación:

Cuando se elimina el label del pod deseado, entiendo que no es que se elimine el pod, si no que el pod sigue existiendo pero sin el label por el cual k8s hace el balanceo. En este orden de ideas K8S crea un nuevo pod que cumpla con la especificación para llegar al estado deseado, pero el pod al que se le quito el label sigue existiendo.

Seria bueno acotar que toca analizar si este pod sigue siendo útil para nuestro requerimiento y si no eliminarlo.

kubectl get deploy/NAME -o yaml > FILEYAML.yml
#deployar sin validar archivo yaml
kubectl apply -f FILEYAML.yaml --validate=false
  • DeamonSet: para garantizar que un pod se escale en un nodo.

y que pasa cuando agrego el label nuevamente al pod que se lo quite, se elimina un pod para volver al estado deseado?

Entendido