Sommaire
Installation de Helm3
Par défaut Micro-K8s vient avec très peu d’add-on activé.
Si nous allons sur cette page, nous verrons qu’il est très simple d’activer/désactiver un module et nous aurons la liste des add-ons disponibles : https://microk8s.io/docs/addons
Installation de l’add-on Helm3
Activation du module : microk8s enable helm3
Nous notons qu’avec la commande : microk8s status
nous pouvons voir le status des add-ons actifs, dont helm3 :
Installation de CouchDB via Helm3
Pré-requis
Soit nous allons sur le site de Helm pour trouver les informations dont nous avons besoin à propos de CouchDB, soit nous allons directement sur le site de CouchDB :
- https://artifacthub.io/packages/helm/couchdb/couchdb
- https://docs.couchdb.org/en/stable/install/kubernetes.html
Sur l’ArtifactHub, nous trouvons des informations un peu plus complète, nous utiliserons celui-ci pour référence.
Etant donné que Helm est packagé via Microk8s, les commandes helm
deviendront microk8s helm3
.
La première étape, on ajoute le repository :
microk8s helm3 repo add couchdb https://apache.github.io/couchdb-helm
Déploiement du cluster
Ensuite nous devons générer un uuid, j’utilise la commande uuidgen
(nous installons cet utilitaire avec le package uuid-runtime comme ceci : sudo apt install uuid-runtime
ou sinon il est déjà présent sur la VM microk8s).
Pour plus de faciliter, nous l’exporterons dans une variable :
export COUCHDB_UUID=`uuidgen`
Puis nous lançons la commande suivante :
sudo microk8s helm3 install \
my-couchdb-server \
--set couchdbConfig.couchdb.uuid=$COUCHDB_UUID \
couchdb/couchdb
Etant donné que j’étais dans la vm de Micro-K8s, j’ai du corriger la commande initiale en rajoutant sudo, sinon nous avions cette erreur :
Une fois corrigé, nous installons notre chart :
Nous pouvons vérifier notre déploiement simplement avec kubectl get pods
Nous constatons que par défaut, nous avons 3 replicas de notre déploiement.
Nous notons également que je n’ai pas mis de namespace, il utilise le namespace par défaut : “default”.
Vérification du bon fonctionnement
Maintenant, si l’on souhaite accéder au cluster CouchDB, il faut rendre les ressources accessibles, la méthode la plus rapide, ce serait de faire un port-forward, comme ceci :
microk8s kubectl port-forward statefulset/my-couchdb-server-couchdb 15984:5984
A noter que le port par défaut de CouchDB est le 5984.
Je déploie le port-forward sur le Statefulset, car le chart Helm déploie un StatefulSet.
Néanmoins, par défaut, il expose sa route sur sa loopback, on corrige donc avec le paramètre --address
:
microk8s kubectl port-forward statefulset/my-couchdb-server-couchdb 15984:5984 --address 0.0.0.0
Et nous avons désormais accès à notre cluster CouchDB :
Accès à l’interface d’administration Fauxton
Le cluster peut s’administrer avec CouchDB Fauxton, qui est une interface web incluse avec le cluster.
Il faut aller sur l’URL : http://your_ip_addr:15984/_utils/
Et là, il nous faut des identifiants … !
microk8s kubectl get secret my-couchdb-server-couchdb -o yaml
Dans la documentation du Helm chart, nous constatons qu’il y a 2 paramètres : adminUsername et adminPassword.
Le adminPassword est “auto-generated”, donc il faut aller le chercher.
Dans le template Helm, nous voyons qu’il déploie une ressource de type Secret, allons regarder les secrets de la plateforme avec microk8s kubectl get secrets
:
Nous constatons plusieurs Secrets pour CouchDB, prenons le premier, et essayons d’en récupérer des informations avec cette commande : microk8s kubectl get secret my-couchdb-server-couchdb -o yaml
Nous voyons dans la partie data, nos 2 clés/valeurs.
Mais celles-ci sont en base64, il faut en prendre le contenu, et le décoder avec l’utilitaire base64 comme ceci : echo 'YWRtaW4=' | base64 --decode
, ici pour le username, qui est … admin !
Et voilà, nous pouvons nous identifier sur l’interface :
Sur cette interface, nous pouvons créer nos bases de données, gérer la réplication, interroger ces bases, etc.