Er zijn phishingmails in omloop die uit naam van TransIP worden verstuurd. Twijfel je over de echtheid van een e-mail van TransIP, klik dan niet op linkjes en neem contact met ons op via je controlepaneel of via support@transip.nl. Lees meer over phishing in onze Knowledge Base: https://www.transip.nl/knowledgebase/artikel/205-wat-is-phishing/
Hulpartikel overzicht

Hulpartikel

De Helm Kubernetes package manager gebruiken

Helm is een package manager voor Kubernetes. Helm gebruikt een package formaat genaamd 'Charts'. Een Chart is een verzameling bestanden die een gerelateerde set van Kubernetes resources beschrijft. Net zoals apt een packagemanager is die het beheer van software eenvoudiger maakt in Ubuntu en Debian, doet Helm dat voor Kubernetes resources.

In deze handleiding laten we zien hoe je gebruik maakt van de Helm-packagemanager. Zorg ervoor dat je onze Helm-packagemanager installatiehandleiding hebt doorlopen op de computer waarop je je Kubernetes-cluster beheert voordat je deze handleiding gebruikt.

  • Op Artifact Hub vind je beschikbare Helm Charts en een aantal alternatieve repositories.
  • Voor deze handleiding gaan we ervan uit dat je de Bitnami Helm-repository gebruikt.

Helm gebruiken

 

Stap 1

Update voor je Helm gebruikt eerst (net als in Linux) de beschikbare repositories:

helm repo update

 

Stap 2

Op de Artifact Hub-website kun je zoeken op beschikbare Helm Charts. Een alternatief is om dit rechtstreeks vanuit command-line te doen met Helm:

helm search hub | grep softwarename

Als je je zoekresultaat niet specificeert met grep, krijg je alle beschikbare charts te zien in alle beschikbare repositories.

Alternatief kun je ook rechtstreeks de op jouw computer beschikbare repositories doorzoeken:

helm search repo

Je krijgt een vrij groot overzicht te zien, maar kunt je zoekopdracht altijd specificeren door een repository te specificeren en/of die te 'pipen' naar een grep-commando als volgt:

helm search repo bitnami | grep mysql

 

Stap 3

Voor je een Helm-chart installeert wil je allicht eerst de inhoud van de Chart zien. Dit kan eenvoudig met het commando:

helm show chart reponame/chartname

Om bij ons eerdere voorbeeld te blijven, kun je bijvoorbeeld de Helm Chart voor MySQL in de Bitnami-repository als volgt bekijken:

helm show chart bitnami/mysql

De inhoud van de Helm Chart kan bijvoorbeeld als volgt eruit zien:

annotations:
  category: Database
apiVersion: v2
appVersion: 8.0.31
dependencies:
- name: common
  repository: https://charts.bitnami.com/bitnami
  tags:
  - bitnami-common
  version: 2.x.x
description: MySQL is a fast, reliable, scalable, and easy to use open source relational
  database system. Designed to handle mission-critical, heavy-load production applications.
home: https://github.com/bitnami/charts/tree/main/bitnami/mysql
icon: https://bitnami.com/assets/stacks/mysql/img/mysql-stack-220x234.png
keywords:
- mysql
- database
- sql
- cluster
- high availability
maintainers:
- name: Bitnami
  url: https://github.com/bitnami/charts
name: mysql
sources:
- https://github.com/bitnami/containers/tree/main/bitnami/mysql
- https://mysql.com
version: 9.4.4

 

Stap 4

Zoals je gewend bent van een goede packagemanager, kun je een Helm Chart eenvoudig installeren. Hiervoor gebruik je het 'helm install'-commando, bijvoorbeeld:

helm install bitnami/mysql --generate-name

De output ziet er als volgt uit:

NAME: mysql-1670407849
LAST DEPLOYED: Wed Dec  7 11:10:51 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.4.4
APP VERSION: 8.0.31

** Please be patient while the chart is being deployed **

Tip:

  Watch the deployment status using the command: kubectl get pods -w --namespace default

Services:

  echo Primary: mysql-1670407849.default.svc.cluster.local:3306

Execute the following to get the administrator credentials:

  echo Username: root
  MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql-1670407849 -o jsonpath="{.data.mysql-root-password}" | base64 -d)

To connect to your database:

  1. Run a pod that you can use as a client:

      kubectl run mysql-1670407849-client --rm --tty -i --restart='Never' --image  docker.io/bitnami/mysql:8.0.31-debian-11-r10 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash

  2. To connect to primary service (read/write):

      mysql -h mysql-1670407849.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
  • In dit voorbeeld krijgen we de naam mysql-1670407849 toegewezen. Wanneer je een Chart op deze manier installeert maak je een nieuwe 'release'. Het nummer in de naam is uniek en wordt dankzij de --generate-name flag gegenereerd. Dit betekent dat je meerdere MySQL-releases kunt maken met dezelfde chart binnen hetzelfde Kubernetes-cluster. Deze krijgen een unieke release naam toegewezen dankzij de --generate-name toevoeging en kunnen onafhankelijk van elkaar beheerd worden.
  • Eventuele aanvullende stappen, zoals hier nodig zijn om met je database te verbinden, worden normaal gesproken getoond in de output van het installatie-commando.
  • Meer informatie over het helm install commando vind je hier.

Alternatief kun je ook zelf een naam kiezen. Dit is handig wanneer je op een eenvoudigere manier wil onthouden welke namen je releases hebben en gebruik maakt van de --keep-history flag, zie de volgende paragraaf.

helm install yourcustomname bitnami/mysql

De installatie van je Helm Chart is daarmee voltooid.

Let op: de MySQL Helm Chart van Bitnami bevat op moment van schrijven een bug waardoor de aangemaakte Pod niet kan starten. Voor enkele oplossingen, zie deze pagina.


Helm releases beheren

 

Wanneer een Helm Chart geïnstalleerd is, spreekt men over een 'release'. In deze paragraaf doorlopen we een aantal handige beheercommando's voor het managen van Helm Charts op jouw Kubernetes-cluster.

 

Releases controleren

Alle releases op je cluster zie je eenvoudig terug met het commando:

helm list

De output ziet er als volgt uit (let op de scroll balk):

NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                     APP VERSION
mysql-1670416172        default         1               2022-12-07 13:29:33.9111825 +0100 STD   deployed        mysql-9.4.4               8.0.31

Specifiekere informatie vergelijkbaar met de output van het 'helm install'-commando vraag je op met:

helm status releasename

 

Een release verwijderen

Een release verwijder je even eenvoudig als dat je hem installeert:

helm uninstall releasename

Vervang hierbij 'releasename' door de naam van de release zoals zichtbaar onder 'NAME' in de output van het 'helm list'-commando.

Optioneel kun je de flag --keep-history toevoegen. Dit is een handige optie om de informatie over de release te behouden:

helm uninstall releasename --keep-history

Je kunt dan later de history van de release 'releasename' terugbekijken met het commando:

helm history releasename

Helm gaat zelfs nog een stapje verder: je kunt met deze informatie ook een release na de-installatie weer terugrollen met het commando:

helm rollback releasename revision

Het revision nummer zie je terug in de output van het helm history commando.


Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op