Openstack sous Kubernetes avec Kolla et Helm dans Azure ...

Openstack sous Kubernetes avec Kolla et Helm dans Azure ...

Karim le 12 avril 2017

Kubernetes peut servir de réceptacle à Openstack avec le projet Kolla :




Or il se trouve que grâce à l'action des labos ATT, on a la possibilité de déployer un cluster Openstack sous Kubernetes via Helm. Je commence donc par déployer un nouveau cluster Kubernetes puis à y installer et initialiser Helm :


 


Je récupère les Charts depuis le dépôt officiel de la fondation Openstack (car les labos ATT ont tous migré vers celui-çi) :




Activation d'un repo local pour Helm et transfert des Charts de Helm vers celui-çi :




et je déploie ceux-çi au sein du cluster Kubernetes :




Après cela tous les PODs sont en mode RUNNING :




Je n'ai plus alors qu'à exposer le service Horizon via le load balancer attaché au sein du Cluster Kubernetes dans Azure et sur le port 80 :






Je n'ai plus qu'à me connecter au dashboard Horizon avec les identifiants par défaut :








PS: Microsoft a fait tout un battage autour de la sortie de Windows 10 Creators Update. Mais pour moi le plus intéressant a été l'amélioration apportée par Windows Subsystem for Linux qui comme son nom

l'indique apporte un noyau Ubuntu de canonical :




On voit que c'est une base Ubuntu 16.04 qui est utilisée (et plus 14.04 LTS) :




Et il est possible d'invoquer des scripts shell bash depuis powershell directement :




et même d'exécuter tmux depuis la console :



Microsoft a fait l'acquisition du PaaS Open Source Deis pour Azure =>






C'est une décision très importante car c'est justement Deis qui était à l'origine de Helm mais également de Deis Workflow et Deis Steward.


Pour rappel, Deis Workflow qui forme l'ossature de la plateforme PaaS, s'installe au dessu de Kubernetes =>




Avec le cluster Kubernetes précedemment créé, je teste le déploiement de Deis Workflow :





et j'attends que tous les PODs de la plateforme Deis soit en mode RUNNING :




J'atends alors l'IP de l'Ingress fournie avec le déploiement de la plateforme (ici tout fonctionne avec un service public de Wild Card DNS très connu nip.io) :





Je procède à l'enregistrement de l'administrateur de la plateforme :




Une fois effectuée, je n'ai plus qu'à réaliser un petit test avec un simple serveur web en Go =>





On peut également effectuer un pull d'une image Docker existante du Docker Hub : exemple avec l'image précedente du botdiplomatique =>






Il est possible de coupler Deis avec un processus de CI/CD comme celui-çi (et en y faisant participer par exemple le packager Helm) :




Mais le plus intéressant va être la possibilité de coupler des services de Deis avec ceux de la plateforme Cloud Foundry via la brique (toujours en Alpha) Deis Steward :



Un webinar intéressant a eu lieu sur le thème de l'insertion de Helm dans Kubernetes au sein d'Azure =>




Je commence donc à relancer un cluster Kubernetes (cette fois-çi "full linux") dans Azure =>






et je vais tenter de créer un Chart d'Helm pour Kubernetes à partir du projet Kompose :




Pour rappel, Helm est une sorte de gestionnaire de package pour Kubernetes (comme Yum ou apt-get dans Linux) :




Kompose permet très facilement de générer un Chart à partir d'un fichier Docker-Compose.yml comme cet exemple avec le démonstrateur FranceConnect Particulier :




avec cette structure dans l'arborescence générée :




et je teste ce Chart avec une installation dans le cluster Kubernetes via le binaire Helm (préalablement installé) :




et cela fonctionne :




mais j'ai également la possibilité de générer ce chart à partir d'un template vide via la commande Helm =>







Je peux alors après modification des variables du template autogeneré par Helm, procéder à son installation dans le cluster via également la commande Helm :






et le load-balancer attaché au cluster Kubernetes dans le pool de ressources dans Azure, me fournit un accès externe au service déployé via ce Chart :


*






On peut alors packager ce Chart et l'envoyer dans le dépôt officiel dans Github =>






Kubeapps.com constitute une sorte de marketplace externe de la Cloud Native Computing Foundation pour des Charts officiels =>




un marketplace qui peut être déployé localement avec le projet monocular de Kubernetes =>




Installation depuis Helm directement :




avec un accès local par exemple :






Helm devient une composante importante du CI/CD car on peut implémenter ce type de workflow :




avec un exemple dans la plateforme Wercker =>






Report Page