No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

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?

o inicia sesi贸n.

El kubectl run ya no funciona tal cual lo explica el instructor, debido a que el deployment ya no es generado (est谩 鈥渄eprecated鈥 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

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??

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

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"]

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

Resumen de los scripts presentados en el video

Ya no funciona igual el comando 鈥渒ubectl 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.

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/

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

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 鈥渒ubectl run鈥 ya estaba obsoleto en el momento del video no se cre贸 el video con 鈥渒ubectl 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 鈥減ending鈥 por un tiempo hasta que pase a 鈥渞unning鈥

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