Search This Blog

mercredi 13 janvier 2016

Windows Containers

Bonjour,

Nous allons voir aujourd’hui les Windows containers au sein de Windows Server 2016, cet article aura plusieurs parties, nous allons commencer déjà par les bases des Windows containers, on verra ensuite leur mise en place avec un cas très concret 

Les Windows containers et Hyper-V containers proviennent des technologies de virtualisation linux, propulsés également par Docker.

Par ailleurs Windows Server 2016 dispose du moteur et client docker en vue du partenariat avec Microsoft.

Les Windows containers sont conçus pour le Cloud, ainsi qu’à la rapidité de déploiement d’applications et de mise en service, ils offrent également une isolation applicative. Il facilitent également l’intégration des applications.

Ps : Tout se fait en PowerShell, (la création, l’administration etc), pas d’interface graphique pour le moment pour gérer les Windows Containers.

Schéma de fonctionnement:

Serveur physique :


Voici tout d’abord une visualisation simple d’un serveur physique avec Windows Server 2016 installé dessus :



Hyperviseur (Hyper-V) :


Nous avons ici quelque chose de classique qu’on connait depuis de nombreuses années maintenant, un hyperviseur avec des quelques VMs dessus.




Windows Container :

Nous allons donc rentrer dans le vif du sujet et vous présenter les Windows Containers, cette représentation vous permettra de mieux les comprendre.

Nous avons un serveur physique, avec Hyper-V dessus, vous pouvez créer un ou plusieurs Windows containers directement au niveau de l’OS Windows Server 2016, On peut également créer des Windows containers au niveau des VMs qui sont hébergés dans notre hyperviseur Hyper-V.




Hyper-V Containers :


Les Hyper-V containers offrent une meilleure isolation que les Windows Containers, voici comment ont peu les représenter :



Mise en place des Windows Containers

Nous allons voir comment mettre en place les Windows Containers sur Windows Server 2016 TP de manière très simple.

Commencer par l’installation de la Feature « Container » comme ceci :



 Vérification :


Image Container :


Afin de déployer les Windows containers, vous aurez besoin d’images containers, les Windows containers se déploient à l’aide de ces images Containers. Ces images containers incluent bien entendu un Os, et peuvent également inclure des applications, des services pré installés etc.

Nous avons deux types d’images containers :

  •           Base OS Images : c’est une image livrée directement par Microsoft
  •           Container images : c’est une image crée comme modèle via l’image de base « Bas OS Images »

Pour commencer, veuillez installer le package Provider comme ceci :

Install-PackageProvider ContainerProvider -Force


Une fois terminée, vous devez donc télécharger les images « Base OS Images » containers, vous avez deux versions :

  •           Une image NanoServer
  •           Une image WindowsServerCore


Pour installer les deux images, vous devez lancer la commande suivante :

Install-ContainerImage -Name NanoServer -Version 10.0.10586.0





Le paramètre « Version » est optionnel, si vous ne le mettez pas, le serveur vous installera la dernière version de l’image container.

Faites la même chose pour la version « WindowsServerCore » :


Pour cette version, cela prendre environ 1h, en fonction de votre débit bien entendu J

Vous pouvez également télécharger l’image Wim via ce lien : http://aka.ms/ContainerOSImage

Une fois téléchargée, placez la dans un dossier C:\Images par exemple, et installez là avec la commande suivante :


Install-ContainerOsImage -wimPath C:\images\CBaseOs_th2_release_10514.0.150808-1529_amd64fre_ServerDatacenterCore_en-us.wim


Une fois que vous avez installé vos images containers, vous devez vérifier leur présence par la commande suivante :
    
Get-ContainerImage 
               

On voit bien nos deux images installées:

 

Avec l’installation de la feature « Container » nous avons avec un module PowerShell qui apporte plusieurs commandes afin de vous aider à mettre en place les Windows containers, pour obtenir toutes les commandes disponibles pour le module « Containers » passer la commande suivante : Get-Commande -Module Containers


Et vous avez toutes la listes de commandes PowerShell nécessaires pour les Windows Containers.



Création d’un Windows Container :

Nous allons voir par une méthode simple la création de Windows containers, 3 Windows containers seront crées ici:
  •          Contain01
  •           Contain02
  •           Contain03



Voici comment je représente ces trois containers qu’on va créer ensemble selon ma propre compréhension, ce qui permet de mieux les visualiser et de mieux comprendre ce nouveau concept de container





Nous allons passer à la création de ces 3 container avec la commande Powershell suivante «  New-Container »



Explication de la commande de création:

-Name : le Nom du container

-ContainerImageName : vous l'aurez compris, on va chercher l’image container qu’on a installée auparavant, nos containers sont basés sur cette image.

-SwitchName : C’est le switch virtuel auquel le container sera connecté afin d’avoir une connexion réseaux, ça fera l’objet d’un article à part pour mieux vous expliquer les switches virtuels avec les Windows Containers.


Vérification de la création des 3 containers avec la commande suivante « Get-Container », les voici présents ici :



 Vous pouvez les mettre en route avec la commande suivante : « Start-Container -Name » comme ceci : remarquez que leur état doit passer en « Running » :



Repository des containers

Une fois crés, allons voir l’emplacement de ces Windows containers dans notre Host, pour cela, tapez la commande suivante « Get-ContainerHost » :


Vous avez le nom de votre serveur, (bon ici je ne l’ai pas renommé, ce n'est pas bien x) ) et vous avez également « ContainerImageRepositoryLocation » remontez d'un cran et allez dans le dossier "Container" qui est l'endroit de stockage des containers crées, allons faire un tour dans ce dossier :



Pour chaque container vous allez avoir les fichiers et dossiers suivants :

  •           Un dossier nommé avec le GUID du container dans lequel vous allez trouver un dossier « Hives » et dans ce dossier, on trouve les registry du container en question
  •           Un disque virtuel VHDx
  •           Un fichier de configuration. VMCX 
  •           Un VMRS qui correspond au Runtime du container


Nous allons nous concentrer sur notre container « Contain01 », afin de trouver son GUID, tapez la commande suivante :  (Get-Container contain01).Id


Grâce au GUID obtenu pour le "Contain01" nous allons pouvoir l'identifier dans le repository des containers, le voici en rouge avec les explications en bleu.


Dans le dossier, on va trouver le dossier « Hives » comme ceci :



Voici le contenu du dossier Hives :



Administration en PowerShell de votre Windows Container

Avec PowerShell direct, nous allons pouvoir administrer un Windows Container de manière très simple, voici la commande qu’il faut passer afin de se connecter sur un des containers qu’on a créés auparavant.
Enter-Pssession -ContainerName Contain01 -RunAsAdministrator



Et voilà nous sommes directement en PowerShell direct sur notre Windows Container « Contain01 » et on peut l’administrer en PowerShell de manière classique, remarquez par exemple la commande passer « Ipconfig » afin de savoir ses paramètre TCP/IP.


On peut par exemple installer IIS dessus comme ceci :


Vérification : avec un get-WindowsFeature


Voilà, c’est terminé pour aujourd’hui, nous verrons la prochaine fois l’administration des Containers au niveau mémoire, carte réseaux etc

@bientôt
Seyfallah Tagrerout
Microsoft MVP
< >