No tienes acceso a esta clase

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

Creación y manejo de pods

14/33
Recursos

Aportes 26

Preguntas 5

Ordenar por:

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

El kubectl run ya no funciona tal cual lo explica el instructor, debido a que el deployment ya no es generado (está “deprecated” como lo indica él, pero en las versiones actuales de kubectl lo ignora completamente).

Para poder hacer el ejercicio tal cual, en vez de crear un deployment directamente a través de kubectl run, yo creé un archivo pingpong.yaml con lo que quería desplegar en el pod:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pingpong-deployment
  labels:
    app: pingpong
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pingpong
  template:
    metadata:
      labels:
        app: pingpong
    spec:
      containers:
      - name: pingpong
        image: alpine
        command: ["ping", "1.1.1.1"]

Y luego ejecuté

kubectl apply -f pingpong.yaml

El resto del tutorial fluye igual, excepto que el nombre del pod es un poco distinto porque lo auto-genera, pero eso se puede ver con el mismo kubectl get pods que indica en el tutorial.

Amigos, para los que usan Mac, hay una alternativa a play with kubernetes.
https://callistaenterprise.se/blogg/teknik/2017/12/20/kubernetes-on-docker-in-docker/

Esto se realiza con Docker in Docker (DinD) que en terminos practicos es que en vez de maquinas virtuales, se usan contenedores. Es básicamente lo mismo que hace play with kubernetes pero deployado en tu máquina.

Ojalá les sirva.

Debido a que la documentación está deprecada para kubectl run…, y si la usas solo nos genera el pod, les traigo la alternativa:

DOCUMENTACIÓN:

kubectl create deployment NAME --image=image -- [COMMAND] [args...] [options]

CASO DEL CURSO:

kubectl create deployment pingpong --image=alpine ping 1.1.1.1

Buenas clase, entendiendo la gestión de Pods.

sudo kubectl get pods
sudo kubectl get pods --all-namespaces
sudo kubectl get pods -n kube-system
sudo kubectl get secrets
sudo kubectl get secrets -n kube-public
sudo kubectl run pingpong --image alpine ping 1.1.1.1
sudo kubectl get pods
sudo kubectl get all
sudo kubectl logs deploy/pingpong
sudo kubectl logs deploy/pingpong --tail 20
sudo kubectl logs deploy/pingpong --tail 20 -f
sudo kubectl logs -l run=pingpong
 sudo kubectl gets pods
sudo kubectl describe pods pingpong

No entiendo porqué con minikube no podemos hacerlo si en la docu oficial se especifica el comando para crear un cluster multinodo:
minikube start --nodes 3 -p multinode-test
O es que estoy entendiendo mal el concepto multinodo??

He visto un blog que explica muy bien esta parte por si alguien le interesa:

https://www.josedomingo.org/pledin/2018/06/recursos-de-kubernetes-pods/

Comandos

  • Levantar minikube con multiples nodos: minikube start --nodes 3 -p test
  • Obtener nodos: kubectl get nodes
  • Lo ejecutas con kubectl apply -f pingpong.yaml
  • Listar pods: kubectl get pods
  • Obtener todos los recursos levantandos funcionales: kubectl get all
  • Listar todo el log del pod: kubectl logs deploy/pingpong-deployment
  • Listar los ultimos 20 output del log: kubectl logs deploy/pingpong-deployment --tail 20
  • Obtener las ultimas 10 lineas de logs y hacer un follow de las salidas: kubectl logs deploy/pingpong-deployment --tail 20 -f
  • kubectl run esta deprecado, no usar.
  • obtejer los logs por el label app: kubectl logs -l app=pingpong
  • Listar los labels de los pods: kubectl get pods --show-labels

Utilice el yammel que dejo Tito Alvarez

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pingpong-deployment
  labels:
    app: pingpong
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pingpong
  template:
    metadata:
      labels:
        app: pingpong
    spec:
      containers:
      - name: pingpong
        image: alpine
        command: ["ping", "1.1.1.1"]

Ya no funciona igual el comando “kubectl run…” por mi parte utilice

kubectl create deployment pingpong --image alpine -- ping 1.1.1.1

ya con eso me creo el pod, el deployment y el replicaset.

En Kubernetes 1.18 el comando kubectl run ya no crea deployments ni replicaset

Resumen de los scripts presentados en el video

El comando " kubectl run" ya no funciona como lo dice el profesor en el video, para seguir la practica usar el siguiente comando:

kubectl create deployment pingpong --image=alpine -- ping 1.1.1.1

Yo logré seguir el curso con docker desktop, wsl y k8s in docker

https://kubernetes.io/blog/2020/05/21/wsl-docker-kubernetes-on-the-windows-desktop/

Buenas tardes:

Realmente estoy sorprendido y muy desilusionado. Al parecer el instructor se dedica a batir su record personal de palabras por minuto. Pareciera que todo lo estuviera recitando de memoria. Me parece que las clases en la fundamentacion son muy pobres.

Ya de por sí toda la parte de EKS fue un tedio, pero si “kubectl run” ya estaba obsoleto en el momento del video no se creó el video con “kubectl create” en cambio???

Creo que esto ejemplifica al máximo lo tedioso que está siendo este curso, ni contar que es muy dificil seguirle el ritmo al instructor con todos los conceptos.

USAR RUN NO FUNCIONA! tener en cuenta si vas a intentar seguir la clase con play with kubernetes. En la clase de play with kubernetes hay un comentario explicando como copiar y pegar para que no se vuelva tan tediosa la tarea.
el comando que reemplazaria al RUN seria CREATE, y quedaria como:
kubectl create deployment pingpong --image=alpine – ping 1.1.1.1

Es importante que antes de que corras el comando, tengas seteado el nodo master, hayas creado la red, y hayas conectado un nodo slave al cluster. Todo eso se explica en la clase de play with kubertenes.
Una vez que ejecutes el comando CREATE, tene paciencia porque dependiendo de tu velocidad de internet el pod puede quedar en estado “pending” por un tiempo hasta que pase a “running”

Muy mal chiste el del principio tomando en cuenta que no me ha servido de casi nada todas las clases anteriores 😐

Los últimos 4 o 5 videos ha estado un poco enredado todo y no he podido seguir el ritmo. AWS (No tengo acceso) y PlayWithK8s siempre está como abajo que no he podido volver a utilizarlo. Siempre me detengo a leer a compañeros para ver si de pronto tienen algun problema similar al que tengo y ver si lo solucionan de alguna manera y yo tomo esa solución de ejemplo y sigo por esa vía pero hasta ahora no he podido. Entonces seguiré con el curso tomando apuntes de los comandos y enfocandome mas en la teoría pero si creo que se debe reestructurar este curso o dividirlo en sobre que plataforma seguirlo cuando se apliquen los comandos, etc. Creo que es bueno diferenciar como hacerlo desde mac, ubuntu(linux), windows u otro.

Si se desean crear nodos usando minikube se puede colocar este comando:

minikube start --driver=virtualbox --nodes 3

Forma mas rapida:

kubectl create deployment pinpong --image=alpine – ping 1.1.1.1

Amiwos, buena documentación sobre etcd mientras tanto
https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/

Para los que les dio problema el aws pude continuar con este ejemplo

https://minikube.sigs.k8s.io/docs/tutorials/multi_node/

En linux y en windows tambien sirve instalar Kind y funciona muy bien
https://kind.sigs.k8s.io/docs/user/quick-start/
esta toda la documentacion y puedes montar multinodos

Entendido… 😃

repasando 😃

Actualmente siguiendo este curso, al momento de ejecutar el comando:

kubectl describe pod <my-pod-name>

En la propiedad Labels, el label que el profesor dice que se puede encontrar como run=pingpong pero este en realidad aparece como app=pingpong, por lo tanto es clave para el selector al ejectuar el comando:

kubectl logs -l app=pingpong -f

si requieres ver los logs de los pods que están en un namespace diferente al default:

  1. primero obtienes la descripción del pod y en la seccion del label aparecerá el selector
kubectl describe pod my-deployment-5dd5dfd6b9-81m1b -n lab-app

Name:	     	my-deployment-5dd5dfd6b9-81m1b
Namespace:	lab-app
Priority:		0
Node:	    	lab-m02/172.26.239.231
Start Time:	Sun, 24 Jan 2021 17:10:48 -0600
Labels	  	app=my-app
		      	pod-template-hash-5dd5dfd6b9
....
  1. verificas los logs de todos los pods que tienen ese mismo selector
kubectl logs -l app=my-app -n lab-app