SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Gestión de Kubernetes Apps con HELM
+
Por: Mario Inga
@mario21ic
Who am I?
● Mario Inga Cahuana
● DevOps Engineer en BlazingSQL
● Software Developer
● Miembro de comunidades:
○ DevOps Perú
○ Cloud Native Peru
○ Docker Lima
● Security fan
● Metal m/
● twitter: @mario21ic
Tecnologías
● Docker
● Kubernetes
Docker
Kubernetes
Clustering
Container Orchestration
Scaling Pods
Declarative
Kubernetes Resources
Los problemas
- Manejo de diferentes versiones (tags, componentes, config, etc)
- Outputs (url de mi service, instrucciones)
- Condicionales?
- Distribución de mi recetario con varios parámetros.
- Instalar una solución más de una vez (namespace?)
- Instalar dicha solución con algunos cambios como: services,
pods, volumes, configmap, secrets, etc.
Spoiler: Kubernetes manifest no es dinámico!
Alternativas
- Repositorio de codigo: github, gitlab, bitbucket, etc
- Un buen Readme.md
- La vieja confiable “bash script”
- Le paso parametros
- Hacemos el clásico “sed”
- Realiza el “kubectl apply *.yml“
- Poner un sleep.
- Obtener la Url de un Service
- Imprimir la Url e indicaciones.
Helm
● El manejador de paquetes (charts) para Kubernetes.
● Es la mejor forma para encontrar, compartir
y usar aplicaciones hechas para Kubernetes.
● Opensource https://github.com/helm/helm
● Web Oficial https://helm.sh/
● Actualmente en “v3”
(No Tiller)
Helm
1. Manejo de la complejidad
2. Actualizaciones fáciles (helm upgrade)
3. Simple forma de compartir recetarios (Charts)
4. Rollbacks
5. Chart Testing
Chart
Helm es una herramienta para manejar Charts.
Charts son paquetes pre configurados de
recursos de Kubernetes.
En resumen:
Un Chart es un grupo de Kubernetes manifests.
Repository
Un lugar centralizado donde se pueden almacenarse Charts y compartir.
Nota: también puedes crearte tu propio Helm Repository
Mas informacion https://helm.sh/docs/topics/chart_repository/
CLI:
$ helm repo list
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com
$ helm repo update
Helm Hub
Es el Repositorio público de Helm
https://hub.helm.sh/
CLI:
$ helm search hub redis
Releases
Es la manera de manejar las instalaciones de Charts obtenidos
mediante Repositorios en Kubernetes.
CLI:
$ helm install <nombre_release> <ubicacion del chart>
$ helm install <nombre_release> --set replicatCount=1 <ubicacion del chart>
$ helm status <nombre_release>
$ helm list
$ helm upgrade <nombre_release> <ubicacion del chart>
$ helm uninstall <nombre_release>
Helm Flow
$ helm client mychart/Chart.yaml Releases
$ helm list
K8s cluster
$ kubectl
get nodes
Bla bla bla...
Talk is cheap. Show me the
code!
Linus Torvalds
Demo time!
1. Navegar en el Hub de Helm e instalar un Wordpress.
2. Clonar y analizar el App https://github.com/mario21ic/devops-peru-meetup-mayo-2020
3. Generar un Release con nombre “demo1”, obtener k8s manifest y probar.
4. Generar otro Release con nombre “demo2”, 3 réplicas y Service de tipo “Load Balancer” finalmente
probar que sean independientes.
5. Actualizar el Release con una nueva versión del docker image.
6. Desinstalar el Release.
Demo App
1. Es una web hecha en Python
2. Obtiene e imprime la variable de entorno “MY_KEY” obtenido desde un Configmap.
3. Se conecta a Redis mediante el endpoint almacenado en un Configmap.
4. Hace get de un Key de Redis y aplica +1, luego lo imprime.
5. Imprime el Hostname del container.
6. Imprime la Versión actual del Docker Image
Helm graduation - 30 Abril
https://www.cncf.io/announcement/2020/04/30/cloud-native-computing-foundation-announces-helm-graduation/
Dudas o consultas?
Mario Inga
@mario21ic
“Gestión de Kubernetes Apps con HELM”
+

Más contenido relacionado

La actualidad más candente

Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18Young Suk Ahn Park
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerizationBalint Pato
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefitsAmit Manwade
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Head first docker
Head first dockerHead first docker
Head first dockerHan Qin
 
Jenkins 101: Getting Started
Jenkins 101: Getting StartedJenkins 101: Getting Started
Jenkins 101: Getting StartedR Geoffrey Avery
 
Docker Registry V2
Docker Registry V2Docker Registry V2
Docker Registry V2Docker, Inc.
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a DockerfileKnoldus Inc.
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Simplilearn
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 
Docker intro
Docker introDocker intro
Docker introOleg Z
 

La actualidad más candente (20)

Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerization
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Head first docker
Head first dockerHead first docker
Head first docker
 
Jenkins 101: Getting Started
Jenkins 101: Getting StartedJenkins 101: Getting Started
Jenkins 101: Getting Started
 
Docker Registry V2
Docker Registry V2Docker Registry V2
Docker Registry V2
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
 
Jenkins
JenkinsJenkins
Jenkins
 
Docker Container Introduction
Docker Container IntroductionDocker Container Introduction
Docker Container Introduction
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Docker intro
Docker introDocker intro
Docker intro
 

Similar a Gestión de Kubernetes Apps con HELM

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineMario IC
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemMario IC
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Vicente Gerardo Guzman Lucio
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a proPlain Concepts
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Desplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDesplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDavid Gil Sánchez
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaipquaip
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020BelnGonzlezGarca1
 

Similar a Gestión de Kubernetes Apps con HELM (20)

Docker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - EngineDocker Ecosystem - Part I - Engine
Docker Ecosystem - Part I - Engine
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Desplegando Drupal con Capistrano
Desplegando Drupal con CapistranoDesplegando Drupal con Capistrano
Desplegando Drupal con Capistrano
 
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - QuaipWordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 

Más de Mario IC

Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...Mario IC
 
Aws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSAws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSMario IC
 
Aws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSAws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSMario IC
 
Testing Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraTesting Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraMario IC
 
Automatización de tareas con Ansible
Automatización de tareas con AnsibleAutomatización de tareas con Ansible
Automatización de tareas con AnsibleMario IC
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesMario IC
 
Infraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersInfraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersMario IC
 
Cloud native Computing Perú Octubre
Cloud native Computing Perú OctubreCloud native Computing Perú Octubre
Cloud native Computing Perú OctubreMario IC
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeMario IC
 
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraWorkshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraMario IC
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmMario IC
 
GDG Lima - Docker Compose
GDG Lima - Docker ComposeGDG Lima - Docker Compose
GDG Lima - Docker ComposeMario IC
 
Docker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioDocker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioMario IC
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoMario IC
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y BehaveMario IC
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with TerraformMario IC
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayMario IC
 
Modelado de API con RAML
Modelado de API con RAMLModelado de API con RAML
Modelado de API con RAMLMario IC
 
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryDocker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryMario IC
 
Docker Ecosystem: Part IV - Swarm
Docker Ecosystem: Part IV - SwarmDocker Ecosystem: Part IV - Swarm
Docker Ecosystem: Part IV - SwarmMario IC
 

Más de Mario IC (20)

Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
 
Aws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMSAws Security Latam - Criptografia con KMS
Aws Security Latam - Criptografia con KMS
 
Aws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMSAws Community Day Guatemala Criptografia con AWS KMS
Aws Community Day Guatemala Criptografia con AWS KMS
 
Testing Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfraTesting Ansible Playbook con Molecule + TestInfra
Testing Ansible Playbook con Molecule + TestInfra
 
Automatización de tareas con Ansible
Automatización de tareas con AnsibleAutomatización de tareas con Ansible
Automatización de tareas con Ansible
 
Earthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroidesEarthly, Dockerfile con esteroides
Earthly, Dockerfile con esteroides
 
Infraestructura como Codigo para Developers
Infraestructura como Codigo para DevelopersInfraestructura como Codigo para Developers
Infraestructura como Codigo para Developers
 
Cloud native Computing Perú Octubre
Cloud native Computing Perú OctubreCloud native Computing Perú Octubre
Cloud native Computing Perú Octubre
 
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As CodeAgiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
 
Workshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - SuestraWorkshop Infrastructure as Code - Suestra
Workshop Infrastructure as Code - Suestra
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
 
GDG Lima - Docker Compose
GDG Lima - Docker ComposeGDG Lima - Docker Compose
GDG Lima - Docker Compose
 
Docker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junioDocker Lima meetup - 22 de junio
Docker Lima meetup - 22 de junio
 
Docker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup MayoDocker Compose para el Docker Lima Meetup Mayo
Docker Compose para el Docker Lima Meetup Mayo
 
Testing en BDD con Python y Behave
Testing en BDD con Python y BehaveTesting en BDD con Python y Behave
Testing en BDD con Python y Behave
 
Infrastructure as Code with Terraform
Infrastructure as Code with TerraformInfrastructure as Code with Terraform
Infrastructure as Code with Terraform
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbday
 
Modelado de API con RAML
Modelado de API con RAMLModelado de API con RAML
Modelado de API con RAML
 
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker RegistryDocker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part V - Docker Registry
 
Docker Ecosystem: Part IV - Swarm
Docker Ecosystem: Part IV - SwarmDocker Ecosystem: Part IV - Swarm
Docker Ecosystem: Part IV - Swarm
 

Gestión de Kubernetes Apps con HELM

  • 1. Gestión de Kubernetes Apps con HELM + Por: Mario Inga @mario21ic
  • 2. Who am I? ● Mario Inga Cahuana ● DevOps Engineer en BlazingSQL ● Software Developer ● Miembro de comunidades: ○ DevOps Perú ○ Cloud Native Peru ○ Docker Lima ● Security fan ● Metal m/ ● twitter: @mario21ic
  • 7. Los problemas - Manejo de diferentes versiones (tags, componentes, config, etc) - Outputs (url de mi service, instrucciones) - Condicionales? - Distribución de mi recetario con varios parámetros. - Instalar una solución más de una vez (namespace?) - Instalar dicha solución con algunos cambios como: services, pods, volumes, configmap, secrets, etc. Spoiler: Kubernetes manifest no es dinámico!
  • 8. Alternativas - Repositorio de codigo: github, gitlab, bitbucket, etc - Un buen Readme.md - La vieja confiable “bash script” - Le paso parametros - Hacemos el clásico “sed” - Realiza el “kubectl apply *.yml“ - Poner un sleep. - Obtener la Url de un Service - Imprimir la Url e indicaciones.
  • 9. Helm ● El manejador de paquetes (charts) para Kubernetes. ● Es la mejor forma para encontrar, compartir y usar aplicaciones hechas para Kubernetes. ● Opensource https://github.com/helm/helm ● Web Oficial https://helm.sh/ ● Actualmente en “v3” (No Tiller)
  • 10. Helm 1. Manejo de la complejidad 2. Actualizaciones fáciles (helm upgrade) 3. Simple forma de compartir recetarios (Charts) 4. Rollbacks 5. Chart Testing
  • 11. Chart Helm es una herramienta para manejar Charts. Charts son paquetes pre configurados de recursos de Kubernetes. En resumen: Un Chart es un grupo de Kubernetes manifests.
  • 12. Repository Un lugar centralizado donde se pueden almacenarse Charts y compartir. Nota: también puedes crearte tu propio Helm Repository Mas informacion https://helm.sh/docs/topics/chart_repository/ CLI: $ helm repo list $ helm repo add stable https://kubernetes-charts.storage.googleapis.com $ helm repo update
  • 13. Helm Hub Es el Repositorio público de Helm https://hub.helm.sh/ CLI: $ helm search hub redis
  • 14. Releases Es la manera de manejar las instalaciones de Charts obtenidos mediante Repositorios en Kubernetes. CLI: $ helm install <nombre_release> <ubicacion del chart> $ helm install <nombre_release> --set replicatCount=1 <ubicacion del chart> $ helm status <nombre_release> $ helm list $ helm upgrade <nombre_release> <ubicacion del chart> $ helm uninstall <nombre_release>
  • 15. Helm Flow $ helm client mychart/Chart.yaml Releases $ helm list K8s cluster $ kubectl get nodes
  • 16. Bla bla bla... Talk is cheap. Show me the code! Linus Torvalds
  • 17. Demo time! 1. Navegar en el Hub de Helm e instalar un Wordpress. 2. Clonar y analizar el App https://github.com/mario21ic/devops-peru-meetup-mayo-2020 3. Generar un Release con nombre “demo1”, obtener k8s manifest y probar. 4. Generar otro Release con nombre “demo2”, 3 réplicas y Service de tipo “Load Balancer” finalmente probar que sean independientes. 5. Actualizar el Release con una nueva versión del docker image. 6. Desinstalar el Release.
  • 18. Demo App 1. Es una web hecha en Python 2. Obtiene e imprime la variable de entorno “MY_KEY” obtenido desde un Configmap. 3. Se conecta a Redis mediante el endpoint almacenado en un Configmap. 4. Hace get de un Key de Redis y aplica +1, luego lo imprime. 5. Imprime el Hostname del container. 6. Imprime la Versión actual del Docker Image
  • 19.
  • 20. Helm graduation - 30 Abril https://www.cncf.io/announcement/2020/04/30/cloud-native-computing-foundation-announces-helm-graduation/
  • 21. Dudas o consultas? Mario Inga @mario21ic “Gestión de Kubernetes Apps con HELM” +