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

Creación y manejo de pods

14/33
Recursos

Aportes 18

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta 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á “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.

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

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

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 “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.

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/

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 😃

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