OpenStack sur LXD avec Juju  et k3sup dans phoenixNAP …
Tags: ubuntu, kubernetes, openstack, lxd
Published: 2020-11-08 20:55:02

---
title: OpenStack sur LXD avec Juju  et k3sup dans phoenixNAP …
published: true
date: 2020-11-08 17:26:32 UTC
tags: ubuntu,kubernetes,openstack,lxd
canonical_url: https://medium.com/@deep75/openstack-sur-lxd-avec-juju-et-k3sup-dans-phoenixnap-e5867a487497
---

![](https://cdn-images-1.medium.com/max/1024/1*uDzF49Jcz8IX-bF0unqVEQ.jpeg)

Le fournisseur mondial de services informatiques phoenixNAP proposant des infrastructures en nuage axées sur la sécurité, des serveurs dédiés, la colocation et des solutions technologiques spécialisées d’infrastructure en tant que service (IaaS), a annoncé le mois dernier le lancement officiel de Bare Metal Cloud, une nouvelle plateforme de serveurs en mode Pay as You Go …

[phoenixNAP Announces General Availability of Bare Metal Cloud](https://aithority.com/it-and-devops/cloud/phoenixnap-announces-general-availability-of-bare-metal-cloud/)

> Bare Metal Cloud est une infrastructure de serveur physique non virtualisée, à locataire unique, qui peut être mise en place en quelques minutes. Les organisations peuvent déployer des ressources supplémentaires rapidement et à moindre coût pour faire face à des pics soudains de la demande. Parallèlement, les entreprises dont la charge de travail est plus prévisible et qui ont besoin d’une disponibilité garantie des ressources peuvent profiter d’une option de réservation mensuelle plus longue.

- [phoenixNAP and Pulumi Collaborate to Simplify Bare Metal Cloud Management](https://www.prweb.com/releases/phoenixnap_and_pulumi_collaborate_to_simplify_bare_metal_cloud_management/prweb17449325.htm)
- [phoenixNAP Bare Metal Cloud sorti de la phase bêta - Maniac Geek](https://maniacgeek.net/hebergement-web-et-cloud/phoenixnap-bare-metal-cloud-sorti-de-la-phase-beta/)

![](https://cdn-images-1.medium.com/max/720/0*Mr3MjJZMNk6WZDVk.jpg)

[Bare Metal Cloud Servers](https://phoenixnap.com/bare-metal-cloud)

![](https://cdn-images-1.medium.com/max/1024/1*V_In8viAum8r-xQNafjeDw.jpeg)

Je provisionne un serveur bare metal en s1.c1.small à 64 GB de RAM avec Ubuntu 18.04 LTS depuis le tableau de bord client de phoenixNAP :

![](https://cdn-images-1.medium.com/max/1024/1*kcyfBrpf7Y0rWEe_DFj7bw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*NCZHhXO2CNWNbJNMzwXsJQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*RWTra0ZTyDqMLUc5Wfovyw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*XG4JS6fw8P_iiwyD_TEgMQ.jpeg)

> Il est possible de provisionner ce serveur en ligne de commande via par exemple le fournisseur Pulumi :

- [phoenixnap/pulumi-pnap](https://github.com/phoenixnap/pulumi-pnap)
- [phoenixNAP and Pulumi Collaborate to Simplify Bare Metal Cloud Management - phoenixNAP | Global IT Services](https://phoenixnap.com/company/press/phoenixnap-and-pulumi-collaborate-to-simplify-bare-metal-cloud-management)

![](https://cdn-images-1.medium.com/max/500/1*g2o224cnmDVWe6lYBGKojQ.png)

J’y installe Juju avec les clients Python pour OpenStack :

![](https://cdn-images-1.medium.com/max/1024/1*yhiBDrk0foL5d4MyZua7ag.png)

J’y installe également l’hyperviseur LXD :

![](https://cdn-images-1.medium.com/max/816/1*tjAVqLmZJztsw8xX_sY1xQ.png)

![](https://cdn-images-1.medium.com/max/783/1*r5Ny5iWAOImfCQwCHqDAqg.png)

Initialisation de LXD :

![](https://cdn-images-1.medium.com/max/951/1*CWftmQCssdMyBP_VB5D4eA.png)

et paramétrage du pool d’adresses IP pour les futurs conteneurs LXC via un serveur DHCP :

![](https://cdn-images-1.medium.com/max/825/1*jlFYo15ave6TqPcJ2q0TSw.png)

Initialisation locale d’un contrôleur Juju :

![](https://cdn-images-1.medium.com/max/1024/1*2IiZNvMQKBYt-9_SydjmMQ.png)

Je récupère le Bundle OpenStack on LXD pour Juju via GitHub :

[openstack-charmers/openstack-on-lxd](https://github.com/openstack-charmers/openstack-on-lxd)

![](https://cdn-images-1.medium.com/max/1024/1*khwZsxRn5qTB8KuhvHByOg.jpeg)

[OpenStack on LXD](https://docs.openstack.org/charm-guide/latest/openstack-on-lxd.html)

> Pour rappel, Canonical Juju est un gestionnaire de paquets pour le cloud et la gestion de charges de travail basées ici sur les conteneurs LXC. Les développeurs et les utilisateurs finaux sont ciblés.Il utilise pour cela des bundles (ensembles de charms qui relient les services entre eux) permettent de décrire les relations entre les modèles pour réutiliser des applications hors de leur modèle d’origine.

- [Juju | Operator lifecycle manager for K8s and traditional workloads](https://juju.is/)
- [JAAS | Juju as a service](https://jaas.ai/)

![](https://cdn-images-1.medium.com/max/1024/1*927iwiSjrqOVtYP5kQB8vA.jpeg)

Lancement de ce dernier avec Juju via le contrôleur installé localement qui va créer un cluster OpenStack sur une base de conteneurs LXC :

![](https://cdn-images-1.medium.com/max/1010/1*QI_JPIFHLvaKX-OWkXagRQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*izrMk2NNO6_iJaeNbN3H1g.jpeg)

Je lance cette action supplémentaire pour finaliser la création du cluster :

![](https://cdn-images-1.medium.com/max/1024/1*G4y-O--ycs03si3mtr9qHQ.png)

Le cluster OpenStack est déployé et opérationnel :

![](https://cdn-images-1.medium.com/max/1024/1*6e9v23E5xXxxtxyzRpJ80g.png)

Avec son pool de conteneurs LXC :

![](https://cdn-images-1.medium.com/max/1024/1*S2o4udjTUy4KSARHlHf0mw.png)

et ses services actifs :

![](https://cdn-images-1.medium.com/max/1010/1*PL4SWWHOSI9t-s3GV2MzwQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*M41M8sruzzzj1pQtbZBjGQ.jpeg)

Configuration des réseaux interne, public et du routeur :

![](https://cdn-images-1.medium.com/max/1024/1*56G34xEsX70rzMIYYFKkUg.png)

Récupération d’une image Ubuntu 20.04 LTS pour une inscription dans Glance :

![](https://cdn-images-1.medium.com/max/1024/1*hmkm9E7AQo4PNdS0lkZXmQ.png)

Après récupération des identifiants, je peux accéder au dashboard du cluster OpenStack :

![](https://cdn-images-1.medium.com/max/1024/1*9DKFOttkwoh7UedIk8gghQ.png)

via une redirection SSH :

![](https://cdn-images-1.medium.com/max/1024/1*TF68E15zEMJsMyV_fqvCTg.png)

![](https://cdn-images-1.medium.com/max/1024/1*0jlxGNkoikx3ujoB6v3r8g.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*AaYHzPPBoDo3tyKomQvstQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*0CH2uQnZVQ-NZ_ZbjnpIFw.jpeg)

Et de la même manière pour le tableau de bord de Juju :

![](https://cdn-images-1.medium.com/max/1024/1*FVFhePta7KgCXRxYRhZfmA.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*-9980v3v45gl0gT-O0cVnw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*ts3g-HdkhP9MJSf9pfomPQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*gCYbOipLhAYZ96G85U_87Q.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*xPfLkAII9dsgwkxnqZ5WsA.jpeg)

Avec l’image d’Ubuntu 20.04 LTS récupérée précédemment, je peux lancer un pool de 6 instances :

![](https://cdn-images-1.medium.com/max/1024/1*xow6R2WWm5pviwCNiBYU2g.jpeg)

J’installe Arkade :

[alexellis/arkade](https://github.com/alexellis/arkade)

![](https://cdn-images-1.medium.com/max/1024/1*alFpks-FlalXi2GNXumIeQ.jpeg)

qui me permet de récupérer k3sup :

[alexellis/k3sup](https://github.com/alexellis/k3sup)

![](https://cdn-images-1.medium.com/max/1024/1*Gi0UfUx_PFQR2l4TCa2x1g.jpeg)

Via k3sup je peux initialiser un cluster k3s en mode HA avec Etcd embarqué (mode non recommandé en production). Création du premier serveur maître :

![](https://cdn-images-1.medium.com/max/1024/1*SkRD4fQdOMWP6ndaeQFSHg.png)

Puis ajout du second serveur maître :

![](https://cdn-images-1.medium.com/max/1024/1*Cn6jMf0V7myPNTb_-C1D6Q.jpeg)

ainsi que le dernier :

![](https://cdn-images-1.medium.com/max/1024/1*ij8RZeTTpVxWFVLk7od4lA.jpeg)

Les trois noeuds maîtres sont actifs :

![](https://cdn-images-1.medium.com/max/1024/1*gSS4PB09_i44VbGQcYSp8w.jpeg)

Ajout des trois instances restantes en tant que noeuds Worker du cluster k3s :

![](https://cdn-images-1.medium.com/max/1024/1*tD8SENZedEXRoy1eI86Y5g.png)

Le cluster est opérationnel :

![](https://cdn-images-1.medium.com/max/1024/1*RFZDLKWWQ4sf1dYxD6CHsA.jpeg)

Déploiement test du sempiternel démonstrateur FC :

![](https://cdn-images-1.medium.com/max/597/1*PpjeGHYTvZvLCLFReQpIIQ.png)

![](https://cdn-images-1.medium.com/max/1024/1*oPvVnqqSHMsjU9_zmVgGGw.png)<figcaption>deployment.yml</figcaption>

En utilisant l’Ingress Controller dans k3s sur le port TCP 80 :

![](https://cdn-images-1.medium.com/max/1024/1*kHVeR7I2Yi0U_6QJKa-2WA.jpeg)

qui utilise l’adresse IP d’un des noeuds maître :

![](https://cdn-images-1.medium.com/max/1024/1*vrnOv8qzh2sHXmk7GOqlJQ.jpeg)

Récupération de cloudflared Argo :

[Argo Tunnel | Logiciel de tunnellisation sécurisée | Cloudflare](https://www.cloudflare.com/fr-fr/products/argo-tunnel/)

Pour créer un tunnel permettant d’accéder publiquement au démonstrateur FC :

![](https://cdn-images-1.medium.com/max/1024/1*15iXdY_vAEvI9YOJpTSFmw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*Pi2sTaB7CUz_IszfJjCU_w.jpeg)

Via l’URL fournie j’y accède :

![](https://cdn-images-1.medium.com/max/1024/1*LYZKdOED-GVmyQ0HxTeYaQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*QcX7wJAOxk55JwlLW-0rWg.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*4mCZ_FkgfwMaRQbmHiUWlA.jpeg)

C’est une méthode alternative à celle utilisée dans un article précédent avec MicroStack et le NFV :

[NFV/Edge : Déploiement de Charmed OSM (Open Source MANO) via Juju, MicroStack et MicroK8s …](https://medium.com/@deep75/nfv-edge-d%C3%A9ploiement-de-la-distribution-charmed-osm-open-source-mano-via-juju-microstack-et-7b0077b4474d)

> Il est aussi possible de provisionner phoenixNAP Bare Metal Cloud avec l’aide de Canonical MAAS (Metal as a Service) :

- [Automating Server Provisioning in phoenixNap's Bare Metal Cloud with MAAS (Metal-as-a-Service) | Ubuntu](https://ubuntu.com/blog/automating-server-provisioning-in-phoenixnaps-bare-metal-cloud-with-maas-metal-as-a-service)
- [Automating Server Provisioning in Bare Metal Cloud with MAAS (Metal-as-a-Service) by Canonical](https://phoenixnap.com/blog/automated-server-provisioning-bare-metal-cloud)

ou via Terraform :

[Infrastructure as Code with Terraform on Bare Metal Cloud](https://phoenixnap.com/blog/terraform-infrastructure-as-code)

![](https://cdn-images-1.medium.com/max/620/0*PMdt_hFjoIF13h6y.jpg)