On voudrait isoler nos différentes installation de notre application. On créé pour cela des environnements, typiquement prod
et dev
dans Kubernetes.
Il y a deux principales façon de faire cela:
L’isolation des namespaces permet 3 choses :
Cela permet de garantir en terme de sécurité et de resources que chaque namespace ne viendra pas déranger son voisin.
On peut donc créer un namespace pour la prod
et un namespace dev
pour les différentes releases liées au dev.
L’isolation en terme de namespace est parfois insuffisante ou complexe en terme de sécurité. On privilégie alors la création d’un cluster par environnement
Cela qui rend également le risque de chute d’un cluster moins élevé (moins couteux).
Par contre cela demande un peu plus de travail initial et de maintenance.
Deux principales solutions s’offrent à nous pour éviter de répéter le même code pour chaque environnement:
kustomize
de kubectl
pourHelm est :
chartmuseum
en plus du repository dockerKustomize est :
Associé à Kustomize la méthode la plus simple pour déployer plusieurs instance d’une application est d’utiliser plusieurs namespaces pour chaque déploiement de notre application.