Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Démarrer avec Helm

35 views

Published on

Helm est un gestionnaire de paquets pour Kubernetes.

Cette petite présentation est une petite introduction à Helm en 2 parties:
* installer des composants dans un cluster avec Helm
* comment utiliser Helm pour déployer ses propres composants.

Cette présentation a été donnée aux Human Talks à distance le 12/01/2021

Published in: Engineering
  • Login to see the comments

  • Be the first to like this

Démarrer avec Helm

  1. 1. DÉMARRER AVEC HELMDÉMARRER AVEC HELM
  2. 2. QUI SUIS-JE ?QUI SUIS-JE ? Indépendant 🔗 Debian Developer Twitter: @dod38fr 📧 Dominique Dumont https://code-straight.fr dominique@code-straight.fr
  3. 3. KUBERNETESKUBERNETES pour le cloud gère le cycle de vie des composants déployés gère les connexions réseau déployé en cluster
  4. 4. HELM POUR INSTALLER DES COMPOSANTSHELM POUR INSTALLER DES COMPOSANTS Helm est un gestionnaire de paquets un peu comme apt, yum, brew ou chocolatey la cible est un cluster Kubernetes
  5. 5. LES 3 CONCEPTS PRINCIPAUXLES 3 CONCEPTS PRINCIPAUX Chart Helm package. Comme un rpm ou un paquet deb Repository un espace d'échange de Charts. Comme CPAN ou un Debian repository Release Une instance de Chart installé dans un cluster. Release name pour différencier les installations d'un même chart
  6. 6. PRÉ-REQUISPRÉ-REQUIS accès à un cluster Kubernetes Helm installé
  7. 7. CHERCHER UN PAQUET SUR ARTIFACTHUB.IOCHERCHER UN PAQUET SUR ARTIFACTHUB.IO Par exemple: 🞋vault
  8. 8. CHERCHER UN PAQUET EN CLICHERCHER UN PAQUET EN CLI helm search hub vault URL CHART VERSION APP VERSION DESCRIPTION https://hub.helm.sh/charts/wener/vault 0.9.0 1.6.1 Official HashiCorp Vaul https://hub.helm.sh/charts/hashicorp/vault 0.9.0 1.6.1 Official HashiCorp Vaul https://hub.helm.sh/charts/banzaicloud-stable/v... 1.10.0 1.10.0 A Helm chart for Vault, https://hub.helm.sh/charts/adfinis/vault-auth 0.1.0 0.1.0 A helm chart to install https://hub.helm.sh/charts/appscode/vault-catalog 0.3.0 v0.3.0 Vault Catalog by AppsCo https://hub.helm.sh/charts/appscode/vault-operator 0.3.0 v0.3.0 Vault Operator by AppsC https://hub.helm.sh/charts/talend/vault-sidecar... 4.1.1 7.0.1 A Helm chart for Talend https://hub.helm.sh/charts/appscode/csi-vault 0.3.0 v0.3.0 HashiCorp Vault CSI Dri https://hub.helm.sh/charts/banzaicloud-stable/v... 1.10.0 1.10.0 A Helm chart for banzai https://hub.helm.sh/charts/banzaicloud-stable/v... 1.10.0 1.10.0 A Helm chart that deplo https://hub.helm.sh/charts/cronce/mayan-edms 0.1.0 3.4.4 Mayan EDMS is a Free Op https://hub.helm.sh/charts/itscontained/secret-... 0.2.1 0.3.0 External secret managem
  9. 9. EXEMPLE:EXEMPLE: Serveur web minimaliste pour test. 🧪 WWWWWW helm repo add dniel https://dniel.github.io/charts/ helm install mon-www dniel/www --version 0.5.0
  10. 10. VÉRIFIER CE QU'ON AVÉRIFIER CE QU'ON A helm list
  11. 11. NETTOYAGENETTOYAGE helm uninstall mon-www
  12. 12. SÉCURITÉSÉCURITÉ Comme pour tous les logiciels téléchargés depuis Internet, il faut: véri er l'origine estimer la con ance qu'on a en l'auteur examiner le contenu
  13. 13. AUTRES EXEMPLES DE COMPOSANTS DISPONIBLESAUTRES EXEMPLES DE COMPOSANTS DISPONIBLES Quelques exemples de charts: cert-manager manage Let's Encrypt certi cates discourse deploying Discourse to Kubernetes KubeInvaders Gami ed Chaos Engineering Tool for Kubernetes, an alien is a pod
  14. 14. HELM POUR GÉRER LES FICHIERS YAMLHELM POUR GÉRER LES FICHIERS YAML
  15. 15. RAPPELRAPPEL Kubernetes demande beaucoup de chiers YAML pour dé nir le cluster … à décliner pour les clusters de test ou de prod ou à modi er pour des clients (isolation) Helm est une des solutions possibles pour modi er les chiers de déploiements.
  16. 16. ORGANISATION:ORGANISATION: Chart.yaml pour dé nir le chart (nom, version) values.yaml pour dé nir les propriétés du chart templates/*.yml pour déclarer les composants du cluster Les templates utilisent les template Go
  17. 17. EXEMPLESEXEMPLES Dé nir un nom de release («human-talk») à l'installation Différencier le nom et les labels du déploiement: helm install human-talk mon-chart metadata: name: "{{ .Release.Name }}-server" # → human-talk-server labels: client: {{ .Release.Name }} # → human-talk
  18. 18. EXEMPLESEXEMPLES Dé nir une fois le nombres de réplicas dans values.yaml: Et les utiliser dans les déploiements replicaCount: 2 spec: replicas: {{ .Values.replicaCount }} # → 2
  19. 19. EXEMPLESEXEMPLES Dé nir les version des images dans values.yaml: Et les utiliser dans les pods: imageVersion: ht_server: 1.5.0 another_server: 1.6.1 containers: - name: {{ .Release.Name }}-ht_server # → ht_server:1.5.0 image: ht_server:{{ .Values.imageVersion.ht_server }}
  20. 20. CONCLUSIONCONCLUSION helm permet de gérer: des déploiements multiples les cycle de vie des composants installés Mais ajoute une couche de complexité (Go template).

×