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谩 鈥渄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.

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 鈥渒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/

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