Accueil > Acropolis, Docker > Acropolis Container Services
Sep/1680

ACSAvec la sortie fin juin d’AOS 4.7, AHV porte maintenant la fonctionnalité d’Acropolis Container Service (ACS). C’est à dire la possibilité d’utiliser une technologie de Container (comme Docker) sur une plateforme Nutanix en fournissant un driver Nutanix Docker-machine, une image ContainerHost et un plugin Nutanix pour les Data Volumes persistants. Pour le moment, la gestion des containers est en CLI mais sera intégré avec Prism dans la prochaine release “Asterix”.

L’approche des Containers est différentes de celui des VMs car elle fournit une manière plus légère pour fournir des Micro-services pour les nouvelles générations d’applications construites avec une vision « Cloud Native ». Les containers répondent aux besoins d’agilité des développeurs, là ou les VMs répondent aux besoins de contrôle des administrateurs systèmes. Mais plutôt que d’opposer ces approches, pourquoi ne pas avoir le meilleur des 2 mondes sans pour autant ajouter le cout de l’hyperviseur. Et c’est l’approche d’ACS pour utiliser des Containers sur l’hyperviseur KVM gratuit de Nutanix : Acropolis Hypervisor (AHV). Voici la représentation de ces 3 approches:

Virtu Container

Pour piloter et utiliser des containers, il vous faut une partie Client de Docker et Docker-Machine sur votre poste. Il existe différente manière d’installer Docker. Pour les OS récents (Windows 10, MacOS X Yosemite & El Captain), le client Docker s’appuie sur Hyperviseur local du poste: la fonctionnalité Hyper-V pour Docker for Windows et le service HyperKit (xhyve) pour Docker for Mac. Pour les OS un peu plus ancien (64 bit mais sans Hyperviseur local), on utilise Docker Toolbox qui intègre Docker avec VirtualBox. Mais si ne sais pas lancer de containers localement et s’appuyer sur le ACS, juste la partie CLI de Docker est suffisante, pour cela vous pouvez utiliser Homebrew pour faciliter l’installation sur Mac et Chocolatey sur Windows.

Docker-Client-Server

Pour mettre en place la partie ACS, il faut aller sur la page Tools & Firmware du portail support et récupérer le driver Docker Machine pour votre poste et l’image de la VM Docker Host pour mettre coté AHV.

SupportPortal Docker

Pour installer le driver Docker Machine, il suffit de placer le fichier correspondant à l’OS dans le chemin d’exécution de Docker. Pour Linux et MacOS, il fait en plus enlever l’extension et rendre le fichier exécutable (avec un chmod).

Et coté AHV, il faut ajouter l’image de la VM Container Host (container-host-image-xxxxxxxx.qcow2) dans l’Images Services:

ContainerHostImage.png

On a besoin d’avoir le Nom d’un réseau coté AHV qui accède a du DHCP (ou sur lequel l’IP management est activé) afin de fournir une IP à la VM Container Host:

AHV-Network.png

Enfin, il faut qu’une adresse IP soit associé aux Services de Données Externes. On aura besoin de cette IP lors de la configuration du stockage persistant:

AHV-DataServices.png

On peut maintenant lancer la creation de la VM qui servira de Docker Host pour lancer les Containers. Pour cela on utilise la commande docker-machine create avec le driver Nutanix depuis votre poste. Vous pouvez avoir la liste des paramètres en tapant la commande avec le driver comme paramètre:

docker-machine_create_-d_nutanix

 

Ce qui donne la commande la commande suivante:

docker-machine create -d nutanix –nutanix-endpoint PRISM-ADDRESS:9440 –nutanix-username admin –nutanix-password Password –nutanix-vm-image container-host-image –nutanix-vm-network Network docker-host-YourName

Vous pouvez voir dans Prism que la VMs est créé avec une IP associé:

docker-host-vm

Et vous pouvez aussi voir la liste des Docker Hosts disponibles depuis votre machine avec la commande docker-machine ls:

docker-machine_ps.png

Pour aller dans le contexte de ce Docker Host et envoyer des commandes directement au démon docker, on utilise généralement la commande eval $(docker-machine env docker-host-YourName) mais en fonction de votre OS la commande peut varier. Utiliser la commande docker-machine env docker-host-YourName savoir la commande valable pour votre OS. Une fois dans l’environnement Docker Host vous accès aux commande Docker classique.

Avant de pouvoir rattacher du stockage persistant aux containers, il faut configurer le Volume driver de Nutanix dans la VM Docker Host en utilisant la commande ssh de docker-machine puis en lançant le script “start-volume-plugin.sh” afin de renseigner les informations pour communiquer avec Prism et dans quel container Nutanix (stockage) créer les Volume Group pour les containers de cette VM Docker Host.

start-volume-plugin.png

Voila toute est prêt et configuré.

Pour ajouter du stockage persistant à un container, il faut utiliser les paramètres –volume-driver nutanix (pour spécifier le driver) et -v (pour spécifier le Volume Group et sont point de montage) aux commandes docker create et docker run. Comme dans cet exemple:

docker_run_-volume-driver_nutanix

Cela parait simple et évident mais par défaut il n’y a pas de persistence des données dans les conteneurs. Dans Prism, on voit le stockage associé au container dans la liste des Volume Group:

docker_vg_mynutavol

Ainsi depuis un poste client docker vous pouvez interagir avec le Prism en CLI pour demander la création d’une VM Docker Host et présenter des Volume Groups pour fournir du stockage persistant aux containers que vous créer sur votre Docker Host comme illustré ci-dessous:

ACS-schema

La video suivante présente la mise en oeuvre et l’utilisation d’Acropolis Container Service:

Quelques ressources complémentaires:

Et enfin merci à Christophe (@tuxfof) pour son aide et ces explications sur le sujet.

  1. Pas encore de commentaire