DEPLOYMENTS EN KUBERNETES

Поделиться
HTML-код
  • Опубликовано: 19 окт 2024
  • Jugamos un poco con deployments, modificando las réplicas y haciendo nuestro primer deploy. También tocamos un poco las labels para poner pods en cuarentena.
    Minikube: kubernetes.io/...
    --
    merch.peladone...
    Repo con todos los archivos que uso: github.com/pab...
    Link para registrarse en Digital Ocean (50 USD de Regalo!)
    bit.ly/digital...
    Micrófono: Blue Snowball ICE
    Cámara: Canon Rebel SL2
    Lente: Canon 50mm f/1.8
    Laptop: Macbook Pro 15'' 2017
    Kit completo: bit.ly/kit-pel...
    Mi canal de vlogs: bit.ly/youtube-...
    Comprame un cafecito: bit.ly/kofi-pe...

Комментарии • 88

  • @phillippedubo8023
    @phillippedubo8023 4 года назад +4

    Gracias por la clara explicación! estoy comenzando a utilizar esto en mi trabajo y tus videos me han aportado bastante diría yo.

  • @leonardoflores2974
    @leonardoflores2974 5 лет назад +1

    Muy buenos tutoriales, me encantan la sencillez de la explicación y lo claro de los ejemplos. Soy nuevo con Kubernetes, vengo del palo Aws+Terraform y definitivamente ésto se ve mucho más sencillo. Gracias por tu tiempo y por la onda que le ponés a los videos, para que no se vuelvan aburridos. Lamentablemente ya había creado mi cuenta de Digital Ocean, sino con gusto te "regalaba" los 25 dólares.

  • @javiermarin9092
    @javiermarin9092 3 года назад

    Este video me parece simplemente genial, ..., llevaba buscando esta explicación mucho tiempo, ..., simple, directa, explicativa.

  • @jesusignacioenriquezagalve1328
    @jesusignacioenriquezagalve1328 4 года назад +13

    Cuarentena sigue corriendo hasta hoy xD

    • @joel6672
      @joel6672 3 года назад

      que ya le de kill al pod

  • @Guitsu
    @Guitsu 5 лет назад +4

    Sencillo y al grano. Me quedo super claro las explicación y se agradece el resolver las dudas en los comentarios.

  • @miguekos1233
    @miguekos1233 5 лет назад

    Simplemente brutal tus vídeos.. precisos , al grano , sin vueltas y con humor..

  • @damiconsystem
    @damiconsystem 3 года назад

    Me encanta que le pongas humor! Eso si q falta en estos tutoriales! Te felicito man!

  • @taraDto
    @taraDto 3 года назад

    Un saludo pelado excelente tus videos como siempre. Ché tengo el sig problema, he creado varios pods siguiendo tus videos como el q lo instala como NodePort etc, y me ocurre q los servicios me aparecen sin Endpoint, así q a pesar de q me salen los pods "Running" no hallo manera de interactuar con ellos. Será por algún parámetro q me está faltando en el yaml? Q me recomiendas para darle visibilidad a estos pods/servicios? De antemano agradecido por tu input. Sos un crack!

  • @diegoruggirello32
    @diegoruggirello32 5 лет назад +1

    Muchas gracias Señor por este video! Sirve mucho para aprender. Toma tu like

  • @victormanuelcapotelucumi9506
    @victormanuelcapotelucumi9506 5 лет назад +1

    Loco pregunta, ¿es sano hacer el versionamiento de esa manera o mejor aplicar un RollingUpdate + HistoryLimit de # versiones (ej. 2), para buenas practicas?

  • @isaargentina4495
    @isaargentina4495 4 года назад

    Mil gracias. Estoy tratando de levantar un MYSQL con volumen permanente que tiene que estar linkeado a un front end con puma. EL Pod de Puma lo levante desde gitlab, pero no ententiendo bien como levantar el de MYSQL y relacionarlo con el FE.. Tu video me ayuda mucho

    • @PeladoNerd
      @PeladoNerd  4 года назад

      Te invito a que te metas al slack y lo vemos ahí. slack.peladonerd.com

  • @hugorodriguez8237
    @hugorodriguez8237 4 года назад

    Excelente Pablo!
    Una pregunta, como identificas el pod que esta degradado para ponerlo en cuarentena?

  • @lacuevadelinsecto
    @lacuevadelinsecto 2 года назад

    Excelente material. Gracias a tus videos tengo un skill extra para mi empleo.
    Todo esto lo voy practicando en los tiempos libres o me hago tiempo si hace falta.

  • @kilik7451
    @kilik7451 5 лет назад +2

    Gracias por el video y la explicación.
    Consulta, cuando se crea un nuevo pod, por ej. cuando creas una nueva versión, y se "mata" al viejo, como es a nivel tecnico eso? O sea, el anterior pod se borra literalmente? Es como si se hiciera un "rm" de los archivos?
    Por otro lado, como veo o administro el uso de cpu, mem, disco, etc. del pod para ver si realmente necesito crear otro y escalar? Como manejo eso? Y como se cual es mi limite de pods? O sea, como sé si puedo crear 100 pods por dar un numero? Como veo hasta donde puedo llegar? A cada pod le puedo asignar mas o menos recursos, como maneja eso el pod internamente?
    Perdon si las consultas son tontas, pero me dá curiosidad. Gracias nuevamente, saludos!

    • @PeladoNerd
      @PeladoNerd  5 лет назад +4

      Muy buenas preguntas! Y no son preguntas tontas para nada, me re sirve que se hagan estas preguntas para saber si faltó explicar algo o cosas que tengo que tener en cuenta para los próximos videos.
      * Cuando se mata el pod es como hacerle un docker stop, se frena el proceso y se muere el contenedor, pero los archivos no se borran automaticamente, hay un servicio que se llama garbage colector que corre en cada nodo, manejado por el controlador; cuando el GC ve que hay poco espacio en disco, se pone a borrar las imagenes y los contenedores que ya no se usan.
      * En el próximo video voy a hablar de cómo asignar recursos a los pods, y en ese mismo voy a explicar cómo se distribuyen los pods en los nodos basados en esos recursos
      Abrazo y de nuevo gracias por las consultas

    • @kilik7451
      @kilik7451 5 лет назад +1

      @@PeladoNerd Excelente, mil gracias por responder!

    • @jorge4035
      @jorge4035 5 лет назад

      Muy buenos tus tutos, pero me surge una duda con este, qué ventajas nos trae hacerle cuarentena a un pod y no eliminarlo directamente.

    • @PeladoNerd
      @PeladoNerd  5 лет назад

      Generalmente solo se hace cuarentena cuándo necesitas hacer algún análisis o investigación al pod después de haberle quitado el tráfico. Tal vez hubo algún problema que no pudiste descubrir rápidamente y necesitas sacar el pod de rotación para que los clientes puedan seguir visitando tu sitio sin dramas. Se entiende ?

  • @taraDto
    @taraDto 3 года назад

    Para complementar la pregunta pelado, cuando hago get nodes -o wide el campo External IP de Minikube me aparece vacío :( Importa esto?Una acotación, este Minikube lo tengo instalado en Windows, no en VB

  • @ldipenti
    @ldipenti 5 лет назад +1

    Muy interesante esta serie, muchas gracias!

  • @adrianfgutierrez2836
    @adrianfgutierrez2836 3 года назад

    Que buen video Pablo 👌. Gracias 👍

  • @taraDto
    @taraDto 3 года назад

    Hola Pablo un gusto saludarte, tengo una duda con respecto a minikube, cuando lo instalas en VirtualBox, debes instalarlo en una VM Linux q instalaste previamente? Lo otro es, si tu VB corre sobre Windows (puedes burlarte), tienes q poder instalar hypervisor? he intentado hacerlo antes y entiendo q tengo q pagarle a BG para q mi máq pueda hacer esto (lo cual lógicamente me irrita). Gracias por las luces man!

    • @PeladoNerd
      @PeladoNerd  3 года назад

      Buenas! Con tener virtualbox instalado es suficiente. Minikube automáticamente va a bajar la imagen que corresponde e iniciar todo. No hace falta que crees una vm con linux

    • @taraDto
      @taraDto 3 года назад

      @@PeladoNerd Excelente Pelado, de hecho no necesité VB, ya q Docker se instala directamente sobre Windows, solo tuve q instalar minikube y kubectl (en Windows/system32)

  • @aabajolatareaa
    @aabajolatareaa 11 дней назад

    Gracias por enseñar.

  • @rocketbox9
    @rocketbox9 4 года назад

    jajaja mori de risa con tu comentario de la luz jaja

  • @gabrieldariobonelli1683
    @gabrieldariobonelli1683 4 года назад

    Pelado, cuando haces un update de una version de la app de una vieja a una mas nueva y kubernetes mata pods viejos para levantar versiones nuevas.. que pasa con los pods cuyos contenedores estan al palo atendiendo transacciones? los espera a que termine para no cortar las transacciones en seco por decirlo de alguna manera? o le migra las transacciones existentes a los nuevos que va creando...gracias!!

  • @JAIRTA25
    @JAIRTA25 5 лет назад

    Excelente video estimado... Super claro y sencillo de entender 😉👍

  • @andresfelipepolo3663
    @andresfelipepolo3663 4 года назад

    Hola Pelao, muchas gracias por tus videos, de verdad entretienen y son de aprendizaje. Queria preguntarte como puedo saber la versión actual del contenedor que esta corriendo en los pods?

  • @luciano5026
    @luciano5026 Месяц назад

    Excelente...gracias

  • @Takigatita9739
    @Takigatita9739 3 года назад

    Pelado tengo una duda, como creas PODs si no tienes workers?, el kubectl get nodes te mostró que solo tienes un máster sin workers. Pensé que los deployments solo se podían hacer en los workers.

    • @PeladoNerd
      @PeladoNerd  3 года назад +1

      Se pueden poner pods en masters. Hay una cosa que se llama “tolerations” que te permite hacerlo

  • @victorcapote28
    @victorcapote28 5 лет назад +1

    Compañero, gracias por el vídeo, pregunta, cual es la diferencia entre deployment y rc (según el vídeo anterior)?

    • @PeladoNerd
      @PeladoNerd  5 лет назад +5

      Hola, muy buena pregunta (estaba esperando que alguien la hiciera) Replication Controllers (RC) es la forma original de replicación de pods de Kubernetes, fue reemplazada por Replica Sets (+ Deployments) ... pero muchos todavia usan RCs.
      Los RS están siempre atados a un deployment, y crear un deployment crea un RS. Pero, una de las ventajas de deployments + RS es que podes tener un deployment atado a muchos RS, haciendo mucho mas facil volver atrás (los pods estan corriendo pero no recibiendo trafico)
      Con RC solo podes tener un solo set de pods que siempre están recibiendo trafico y al aplicar un update se reemplaza el RC actual con los pods nuevos.
      Yo recomiendo usar deployments.
      Capaz hago un videito de viernes con esto, gracias por la consulta!

    • @victorcapote28
      @victorcapote28 5 лет назад

      @@PeladoNerd a ti por responder maquina

    • @luisantunez1454
      @luisantunez1454 4 года назад

      Terminé de ver el vídeo y me surgió la misma pregunta. Gracias al que preguntó y gracias a vos Pablo por tu respuesta clarísima.

  • @damiconsystem
    @damiconsystem 3 года назад +1

    Aclaro que hoy en dia se pueden crear mas de un nodo para jugar un poco con el networking

  • @miguelaliaga4973
    @miguelaliaga4973 4 года назад

    grande bro!, gracias a ti pude empezar a ver kubernetes, gracias :D

  • @FeriaMaoMao
    @FeriaMaoMao 4 года назад

    Buenisimo, si la gente no entiende, entonces les toca empezar de nuevo desde 0 porque algo se saltaron en su aprendizaje... Saludos desde Bogotá Colombia... Tengo algunas dudas porque me gustaria implementarlo donde trabajo pero... normalmente yo no creo las imagenes de Docker con la app, no se si sea un poco arcaico como lo hago, pero pues no creo las imagenes, entonces me tocaria investigar mas como hacerlo como yo normalmente lo hago

    • @FeriaMaoMao
      @FeriaMaoMao 4 года назад

      Por cierto, 3 videos vistos, 3 Likes, 1 Suscripcion, te los ganaste mi viejo...

  • @frvo
    @frvo Год назад

    Acá se arma la guerra. Odio el frío 🤷🏼‍♂

  • @morpheus117
    @morpheus117 3 года назад

    Gracias !!!

  • @espinoza4473
    @espinoza4473 4 года назад

    Cuál sería la diferencia entre replication contróller y deployment ?

  • @raphauy
    @raphauy 4 года назад

    Impresionannnnte!!!

  • @enriquesotomendoza9024
    @enriquesotomendoza9024 5 лет назад

    Hola pelado, una pregunta: Cuando hago un deployment que tiene migraciones ¿ En que etapa se deberían hacer? si la respuesta son "jobs", ¿Como aplico automaticamente el job una vez se haya cargado la imagen y que la migración sea idempotente? (Estoy usando terraform)
    Muchas gracias, buenos videos

    • @PeladoNerd
      @PeladoNerd  5 лет назад +1

      Buena pregunta. Eso lo tiene que manejar el servicio. Lo que debería haber es crear un lock cuando inicia y hacer la migración ahí mismo. De esa forma te aseguras que el mismo servicio se encargue de manejar las migraciones y nunca vas a tener un drama con que el servicio este corriendo sin la migración

    • @enriquesotomendoza9024
      @enriquesotomendoza9024 5 лет назад

      @@PeladoNerd Hola pelado, gracias, al final lo hice en circle ci, en el script de post deploy que colgaste en tu video CI/CD.
      ./kubectl --kubeconfig=kubeconfig.yml set image deployment/django django-web=gcr.io/xxx/xxx:$COMMIT_SHA1 --record=true -n django-pods
      # Check deployment rollout status every 10 seconds (max 10 minutes) until complete.
      //.
      .....
      //
      MYAPP_POD=$(./kubectl --kubeconfig=kubeconfig.yml get pods -l app=django-container -n django-pods | grep "^django.*Running" | awk '{print $1}')
      ./kubectl --kubeconfig=kubeconfig.yml exec "$MYAPP_POD" -n django-pods -- bash -c "python manage.py collectstatic --noinput"
      ./kubectl --kubeconfig=kubeconfig.yml exec "$MYAPP_POD" -n django-pods -- bash -c "python manage.py migrate"
      Gracias!!

  • @luismunoz9126
    @luismunoz9126 4 года назад

    gracias

  • @PraexorVS
    @PraexorVS 4 года назад

    Magnifico gracias 🙏

  • @wilbertbocanegra
    @wilbertbocanegra 3 года назад

    Gracias porfin encuentro un vídeo donde dice que se tiene que compilar el Docker image y subirlo y en el yml apuntar a esa URL de la imagen 😭😭

  • @carlosvasquez4567
    @carlosvasquez4567 4 года назад

    Pregunta... como puedo saber el limite de pods que puedo escalar sobre un nodo?

  • @osakenaruto
    @osakenaruto 4 года назад

    alguno lo probo en windows y si tiene mi misma situación del porque minikube ip retorna 127.0.0.1 esta correcto esto?

  • @JonasMarquez
    @JonasMarquez 4 года назад

    Excelente Pelado! en mi caso no me balancea, pero de resto todo perfecto!

  • @gastongabas3756
    @gastongabas3756 5 лет назад +1

    muy bueno increible genial

  • @carlosvasquez4567
    @carlosvasquez4567 4 года назад

    y como seria si quisiera hacer un canary?

  • @JlarMM
    @JlarMM 4 года назад

    si tengo 15 versiones de la app de la más vieja a la más nueva, en el proveedor de cloud va a haber 15 deployments?

    • @PeladoNerd
      @PeladoNerd  4 года назад

      Hay una opción para ver cuantas versiones se guardan, se llama revisionHistoryLimit y por defecto es 10: kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy

  • @augustocarvalhochavez3192
    @augustocarvalhochavez3192 4 года назад +1

    Disculpa solo me muestra eso no me muestra la ip del nodo la maquina virtual como la optengo???
    augusto@augusto:~$ minikube status
    m01
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured
    averigue minikube ip me mostro pero como hago para que se vea en status hay alguna configuracion que me falta?? debo crear antes un namespace?

    • @PeladoNerd
      @PeladoNerd  4 года назад +2

      Es posible que solo lo muestre con minikube ip ahora (este video lo hice hace un año)

    • @augustocarvalhochavez3192
      @augustocarvalhochavez3192 4 года назад

      @@PeladoNerd ok gracias ceguire con su curso gracias recien estoy entranto en este mundo de kubernetes y docker es por ello que lo estoy viendo en este año jajaja pero es muy bueno su canal

    • @manmani78
      @manmani78 3 года назад

      Consulta.. tengo un problema similar... y no me expone la IP, figura una IP usando el comando "minikube ip" pero no es accesible al desplegar la app... te paso lo mismo?

  • @SergioAlonso-pancutan
    @SergioAlonso-pancutan 5 лет назад +1

    Buenísimo.

  • @luismottato5377
    @luismottato5377 Год назад

  • @juliomejia9824
    @juliomejia9824 3 года назад

    buenisimo

  • @juaneliseocarrascodiaz8911
    @juaneliseocarrascodiaz8911 3 года назад +1

    Fichero 01-hello-app-deployment.yaml para que funcione con la versión minikube 1.18.1-0:
    -----
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: hello-d
    labels:
    app: hello
    spec:
    replicas: 3
    selector:
    matchLabels:
    app: hello
    template:
    metadata:
    labels:
    app: hello
    spec:
    containers:
    - name: hello
    image: gcr.io/google-samples/hello-app:1.0
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8080
    -----
    Ojo, también habría que cambiar el manifiesto del nodeport, usando app: hello en lugar de role: hello
    -----
    apiVersion: v1
    kind: Service
    metadata:
    name: hello-np
    spec:
    type: NodePort
    ports:
    - port: 8080
    targetPort: 8080
    nodePort: 30000
    selector:
    app: hello
    -----

    • @PeladoNerd
      @PeladoNerd  3 года назад

      Hacete un PR en el repo :)

  • @nicolasparada
    @nicolasparada 5 лет назад

    Buen video :)

  • @anibalaguila7278
    @anibalaguila7278 5 лет назад

    Alguien sabe que reemplaza a Depoloyment?
    KIND: Deployment
    VERSION: extensions/v1beta1
    DESCRIPTION:
    DEPRECATED - This group version of Deployment is deprecated by
    apps/v1beta2/Deployment.

    • @PeladoNerd
      @PeladoNerd  5 лет назад

      Ahí lo dice :) simplemente cambia extensions/v1beta1 por lo otro

  • @gabrieldariobonelli1683
    @gabrieldariobonelli1683 4 года назад

    Pelado como va?
    tengo un problema seguro que porque desde la version que vos usaste en el video a la que tengo yo ahora algo cambio: (el contenido del yaml) es el mismo al tuyo
    patrol@paw:~$ kubectl apply -f 01-hello-app-deployment.yaml
    error: error validating "01-hello-app-deployment.yaml": error valida ting data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec; if you choose to ig nore these errors, turn validation off with --validate=false
    Entiendo que ahora exige un selector tambien en el deploy de la app... Siguiendo el video veo que en el deploy del servicio ahi vos pones el selector role: hello, esta mismo se podria usar para la app?
    Saludos

    • @PeladoNerd
      @PeladoNerd  4 года назад +1

      Si, proba agregando eso y te tiene que andar. Y si te anda, por favor hace un PR al repo para que quede arreglado para los próximos :)

    • @gabrieldariobonelli1683
      @gabrieldariobonelli1683 4 года назад

      @@PeladoNerd Gracias por la respuesta, claro yo habia tipeado tu ej viendo el video, ahora veo que en el repo esta actualizado.. Como tambien aprendi git con tus videos ahi me hice un clone del repo ;) vamos a ver que sale

  • @lucianofacchinelli
    @lucianofacchinelli 5 лет назад +1

    #lacanaenlabarba

    • @PeladoNerd
      @PeladoNerd  5 лет назад +1

      Si. Me volví loco mientras editaba, tendría que haber contratado a un equipo de efectos especiales para sacarla a lo Superman

  • @JoseManuelTA156
    @JoseManuelTA156 3 года назад

    Muy interesante.. pero vas algo rápido...

  • @joserodriguezavila4076
    @joserodriguezavila4076 5 лет назад

    Tengo una consulta pelado help me

    • @joserodriguezavila4076
      @joserodriguezavila4076 5 лет назад

      tengo problemas viendo el host externo de mi aplicacion tiro kubectl get svc --namespace magento -w magento-magento pero no sale nada

    • @PeladoNerd
      @PeladoNerd  5 лет назад

      Hace kubectl get svc --all-namespaces. Capaz lo tenés en otro namespace o el nombre está mal

    • @joserodriguezavila4076
      @joserodriguezavila4076 5 лет назад

      @@PeladoNerd eres un crack

  • @domingotatis5889
    @domingotatis5889 7 месяцев назад

    porfavor ya no mas HELLO WORLD

  • @arturogonzalezhenriquez9346
    @arturogonzalezhenriquez9346 5 лет назад

    jujaujaujauj esta cagado..

  • @JesusLd935
    @JesusLd935 2 года назад

    minikube start --nodes 100000000 -p SuperPelonK8BaldCluster