Gestion des conteneurs

HASH (0x2c1a078) comprend deux nouvelles fonctionnalités pour améliorer les déploiements de Docker Containers sur HASH (0x2c1a078)

  • Prise en charge des machines virtuelles CoreOS Linux et configuration de Cloud Config Drives

  • Gestion des conteneurs pour CoreOS, Debian 8, Ubuntu 14.04 et RHEL/CentOS/OEL 7

  • Aperçu de la gestion des conteneurs pour les conteneurs Windows Server sur Windows Server 2016 Technology Preview

CoreOS est une distribution Linux minimaliste qui est devenue populaire pour héberger des applications Docker. Le Cloud Config Drive de CoreOS permet la personnalisation de diverses options de configuration du système d’exploitation. Lorsque la gestion des conteneurs est activée sur une machine virtuelle, HASH (0x2c1a078) prend connaissance de tous les conteneurs Docker s’exécutant dans la machine virtuelle.

Note :

Pour plus d’informations sur l’installation des invités CoreOS, la configuration des paramètres Cloud-Config et la gestion des conteneurs Docker, consultez l’aide HASH (0x2e6c8e8). Appuyez sur F1 ou cliquez sur Aide .

Le parc supplémentaire de gestion des conteneurs permet à HASH (0x2c1a078) d’effectuer les actions suivantes :

  • Interroger les machines virtuelles
  • Interagir avec les lecteurs de configuration Cloud
  • Découvrir les conteneurs d’application
  • Afficher les conteneurs d’application dans la vue Infrastructure de HASH (0x2e6c8e8).

HASH (0x2e6c8e8) permet également l’interaction avec les conteneurs pour permettre les opérations de démarrage, d’arrêt et de pause, ainsi que d’autres fonctions de surveillance. Pour plus d’informations, reportez-vous à la section Pack supplémentaire pour la gestion des conteneurs.

Qu’est-ce que Docker

Docker est une plate-forme ouverte permettant aux développeurs et aux administrateurs système de créer, d’expédier et d’exécuter des applications distribuées. Un conteneur Docker comprend uniquement l’application et ses dépendances. Il fonctionne comme un processus isolé dans l’espace utilisateur sur le système d’exploitation hôte, partageant le noyau et le système de fichiers de base avec d’autres conteneurs. Pour plus d’informations, reportez-vous à la section https://www.docker.com/whatisdocker.

Note :

La fonctionnalité de gestion des conteneurs HASH (0x2c1a078) complète, mais ne remplace pas l’environnement Docker. Vous pouvez utiliser l’un des nombreux outils de gestion Docker disponibles pour gérer des instances Docker Engine individuelles dans les machines virtuelles.

Pack supplémentaire pour la gestion des conteneurs

Le pack supplémentaire de gestion des conteneurs fournit les éléments suivants :

Surveillance et visibilité : vous permet de voir quelles machines virtuelles sont utilisées pour l’hébergement Docker et quels conteneurs sur la machine virtuelle sont en cours d’exécution.

Diagnostics : l’accès est fourni aux informations de base du conteneur telles que les ports réseau transférés et le nom de l’image Docker d’origine. Cette fonctionnalité peut aider à accélérer les enquêtes sur les problèmes susceptibles d’avoir un impact sur l’infrastructure et les couches d’applications.

Performances : donne un aperçu des conteneurs qui s’exécutent sur cette machine virtuelle. Selon les informations fournies par le système d’exploitation, il fournit des informations sur les processus et les applications s’exécutant sur le conteneur, ainsi que sur la ressource CPU consommée.

Applications de contrôle : vous permet d’utiliser HASH (0x2e6c8e8) pour démarrer, arrêter et suspendre (si le système d’exploitation prend en charge) des conteneurs d’application permettant la fin rapide des applications problématiques.

Note :

HASH (0x2c1a078) prend en charge l’installation de packs supplémentaires à l’aide de HASH (0x2e6c8e8). Pour plus d’informations sur l’installation d’un pack supplémentaire à l’aide de HASH (0x2e6c8e8), consultez l’aide HASH (0x2e6c8e8). Si vous préférez installer à l’aide de l’interface de ligne de commande xe, reportez-vous à la section HASH (0x2c1a078) Packs supplémentaires et le guide DDK.

Gérer les conteneurs Docker à l’aide de HASH (0x2e6c8e8)

Cette section contient des informations sur la gestion de vos machines virtuelles CoreOS à l’aide de HASH (0x2e6c8e8). Pour gérer les machines virtuelles CoreOS, procédez comme suit :

  1. Installez ou mettez à niveau votre hôte vers HASH (0x2c1a078).

  2. Installez le HASH (0x2e6c8e8) livré avec HASH (0x2c1a078).

  3. Installez le pack supplémentaire de gestion des conteneurs disponible sur le Site Web Citrix.

  4. Créez une machine virtuelle CoreOS et incluez un lecteur de configuration pour la machine virtuelle.

    Lorsque vous créez une machine virtuelle CoreOS dans HASH (0x2e6c8e8), l’assistant Nouvelle machine virtuelle vous invite à spécifier les paramètres cloud-config pour votre machine virtuelle. Le lecteur de configuration fournit des données utilisateur pour l’instance de machine virtuelle. Si vous prévoyez d’utiliser HASH (0x2c1a078) pour gérer les conteneurs s’exécutant à l’intérieur de la machine virtuelle, créez un lecteur de configuration.

    Par défaut, HASH (0x2e6c8e8) inclut un ensemble prédéfini de paramètres sur la page Paramètres de configuration du cloud. Vous pouvez modifier ces paramètres en fonction de vos besoins. Pour plus d’informations sur les paramètres de configuration pris en charge, consultez la documentation CoreOS.

    Avertissement :

    La gestion des conteneurs peut ne pas fonctionner si vous ne créez pas de lecteur de configuration pour la machine virtuelle.

  5. Activer la gestion des conteneurs pour la machine virtuelle. Vous pouvez actualiser ce paramètre dans l’onglet Propriétés de la machine virtuelle dans HASH (0x2e6c8e8).

Note :

Si vous migrez une machine virtuelle gérée par conteneur entre les pools, la gestion des conteneurs cesse de fonctionner pour la machine virtuelle. Ce comportement est dû au fait que la gestion des conteneurs est implémentée à l’aide d’une clé spécifique au pool. Pour réactiver la fonctionnalité de gestion des conteneurs pour la machine virtuelle, mettez à jour la configuration Cloud Config Drive dans les préférences de la machine virtuelle.

Gérer les conteneurs sur d’autres hôtes Linux

Les machines virtuelles CoreOS créées avec la configuration par défaut Cloud Config Drive sont automatiquement préparées pour la gestion des conteneurs. Juste besoin d’activer la fonctionnalité. Les autres invités Linux peuvent être préparés manuellement. Cette fonctionnalité est prise en charge uniquement pour les machines virtuelles Debian 8, Ubuntu 14.04 et Rhel/Centos/OEL 7.x.

Pour préparer manuellement un invité Linux :

  1. Vérifiez que HASH(0x2e68170) est installé sur la machine virtuelle et que le réseau de machine virtuelle est configuré comme décrit à la section Configuration réseau requise et sécurité.

  2. Installez Docker, Ncat et SSHD à l’intérieur de la machine virtuelle.

    Pour Ubuntu 14.04 :

    apt-get install docker.io nmap openssh-server
    

    Pour RHEL/CentOS/OEL 7.x :

    yum install docker nmap openssh-server
    
  3. Activer le démarrage automatique pour docker.service :

    systemctl enable docker.service
    
  4. Démarrer docker.service

    systemctl start docker.service
    

    Utilisez un utilisateur non root pour la gestion des conteneurs. Ajoutez l’utilisateur au groupe ‘docker’ pour fournir l’accès à Docker.

  5. Préparez la machine virtuelle pour la gestion des conteneurs ; exécutez la commande suivante sur le domaine de contrôle (dom0) sur l’un des hôtes du pool :

    xscontainer-prepare-vm -v vm_uuid -u username
    

    vm_uuid est la machine virtuelle à préparer etusername le nom d’utilisateur sur la machine virtuelle que la gestion des conteneurs utilise pour l’accès à la gestion.

Le script de préparation vous guide tout au long du processus et active automatiquement la gestion des conteneurs pour cette machine virtuelle.

Note :

Si vous migrez une machine virtuelle gérée par conteneur entre les pools, la gestion des conteneurs cesse de fonctionner pour la machine virtuelle. Ce comportement est dû au fait que la gestion des conteneurs est implémentée à l’aide d’une clé spécifique au pool. Pour réactiver la fonctionnalité de gestion des conteneurs pour la machine virtuelle, exécutez à nouveau laxscontainer-prepare-vm commande sur la machine virtuelle. Même après avoir exécuté cette commande, le pool HASH d’origine (0x2e68218) peut conserver l’accès à la machine virtuelle.

Accédez à la console et aux journaux du conteneur Docker

Pour les machines virtuelles Linux, HASH (0x2e6c8e8) permet aux clients d’accéder à la console de conteneurs et d’afficher les journaux pour gérer et surveiller les applications s’exécutant sur des conteneurs Docker. Pour accéder à la console du conteneur et aux journaux en utilisant HASH (0x2e6c8e8) :

  1. Sélectionnez le conteneur dans le volet Ressources .

  2. Dans la section Propriétés générales du conteneur , cliquez sur Afficher la console pour afficher la console du conteneur. Pour afficher les journaux de la console, cliquez sur Afficher le journal. Cette action ouvre un client SSH sur la machine exécutant HASH (0x2e6c8e8).

  3. Lorsque vous y êtes invité, connectez-vous au client SSH à l’aide du nom d’utilisateur et du mot de passe de la machine virtuelle.

    Note :

    Les clients peuvent automatiser le processus d’authentification en configurant leurs clés SSH public/privées. Voir la section suivante pour plus de détails.

Automatisation du processus d’authentification (facultatif)

Lors de l’accès à la console de conteneur et aux journaux, les clients doivent entrer les informations d’identification de connexion de la machine virtuelle pour authentifier les connexions SSH. Toutefois, les clients peuvent automatiser le processus d’authentification pour éviter de saisir manuellement les informations d’identification. Suivez les instructions ci-dessous pour configurer le processus d’authentification automatique :

  1. Générer une paire de clés publiques/privées.

  2. Ajoutez la clé SSH publique au répertoire utilisateur de la machine virtuelle exécutant le conteneur.

    • Pour les conteneurs s’exécutant sur une machine virtuelle CoreOS, ajoutez la clé publique à la section Paramètres Cloud-Config dans l’onglet Général de la machine virtuelle dans HASH (0x2e6c8e8).
    • Pour les conteneurs fonctionnant sous Ubuntu 14.04, RHEL/CentOS/Oracle Linux 7 et Debian 8, ajoutez manuellement la clé publique à~/.ssh/authorized_keys.
  3. Ajoutez la clé SSH privée au%userprofile% répertoire de la machine exécutant HASH (0x2e6c8e8) et renommez la clé commeContainerManagement.ppk .

Gérer les conteneurs Windows Server

Les conteneurs Windows Server font partie du système d’exploitation invité Windows Server 2016. Ils permettent l’encapsulation des applications Windows en isolant les processus dans leur propre espace de noms. La gestion des conteneurs HASH (0x2c1a078) prend en charge la surveillance et la gestion des conteneurs Windows Server sur les systèmes d’exploitation invités Windows Server 2016.

Note :

Les machines virtuelles Windows Server 2016 doivent être configurées avec une ou plusieurs adresses IP statiques pour la communication TLS, car les certificats de serveur TLS sont liés à certaines adresses IP.

Pour préparer les conteneurs Windows Server pour la gestion des conteneurs :

  1. Vérifiez que HASH(0x2e68170) est installé sur la machine virtuelle et que le réseau de machine virtuelle est configuré comme décrit à la section Configuration réseau requise et sécurité.

  2. Installez la prise en charge du conteneur Windows Server à l’intérieur de la machine virtuelle, comme décrit à la sectionDocumentation Microsoft. Les conteneurs Windows Server ne sont pas des conteneurs Hyper-V.

  3. Créez un fichier appelédaemon.json dans le dossierC:\ProgramData\docker\config avec le contenu :

    {
        "hosts": ["tcp://0.0.0.0:2376", "npipe://"],
        "tlsverify": true,
        "tlscacert": "C:\ProgramData\docker\certs.d\ca.pem",
        "tlscert": "C:\ProgramData\docker\certs.d\server-cert.pem",
        "tlskey": "C:\ProgramData\docker\certs.d\server-key.pem"
    }
    
  4. Préparez la machine virtuelle pour la gestion des conteneurs ; exécutez l’une des commandes suivantes sur le domaine de contrôle (dom0) sur l’un des hôtes du pool :

    Option 1 (pour les machines virtuelles mono-utilisateur) : Avoir HASH (0x2c1a078) générer des certificats TLS pour cette machine virtuelle.

    Important :

    Cette option n’est sûre que lorsqu’un seul utilisateur a accès à la machine virtuelle. Les clés du serveur TLS et du client sont injectées dans la machine virtuelle à l’aide d’un CD virtuel. Ces informations peuvent être copiées par des utilisateurs malveillants pendant la préparation.

    xscontainer-prepare-vm -v vm_uuid -u root --mode tls --generate-certs
    

    vm_uuid est la machine virtuelle à préparer. Suivez les instructions à l’écran pour terminer le processus de préparation des conteneurs Windows Server. Il s’agit d’interagir avec dom0 et la VM.

    Option 2 : Pour configurer HASH (0x2c1a078) avec des certificats TLS générés en externe

    xscontainer-prepare-vm -v vm_uuid -u root --mode tls \
        --client-cert client_cert --client-key client_key --ca-cert ca_cert
    

    vm_uuid est la machine virtuelle à préparer, client_cert est le certificat client TLS, client_key est la clé client TLS et ca_cert est le certificat de l’autorité de certification. Cette option suppose que Docker est déjà configuré pour TLS à l’intérieur de la machine virtuelle.

Exigences réseau et sécurité

Important :

Pour que la gestion des conteneurs fonctionne, il peut être nécessaire d’assouplir les exigences de sécurité concernant l’isolement du réseau.

Pour une sécurité maximale des environnements de virtualisation, nous recommandons aux administrateurs de partitionner le réseau en isolant le réseau de gestion de HASH (0x2c1a078) (avec HASH (0x2c1a078) Control Domain) des machines virtuelles.

L’activation de la gestion des conteneurs nécessite une route entre ces deux réseaux, ce qui augmente le risque que des machines virtuelles malveillantes attaquent le réseau de gestion (c’est-à-dire dom0). Afin d’atténuer le risque d’autoriser le trafic entre VM et le réseau de gestion, nous vous conseillons de configurer des règles de pare-feu afin d’autoriser uniquement les sources fiables à établir une connexion entre les deux réseaux.

N’utilisez pas cette fonctionnalité en production dans les cas suivants :

  • Si cette configuration réseau recommandée ne correspond pas à votre profil de risque
  • Si vous n’avez pas l’expertise nécessaire en réseau ou en pare-feu pour sécuriser cette route suffisamment pour votre cas d’utilisation spécifique

Partitionnement réseau et pare-feu

Comme pour les autres machines virtuelles, ne connectez pas les machines virtuelles gérées par conteneur directement au réseau de gestion de HASH (0x2c1a078) pour fournir l’isolation nécessaire.

Pour que la gestion des conteneurs fonctionne, les machines virtuelles gérées doivent être accessibles à partir du domaine de contrôle (dom0) du HASH (0x2c1a078). Pour surveiller les conteneurs sur les systèmes d’exploitation Linux, la topologie de mise en réseau et les pare-feu doivent autoriser les connexions SSH sortantes de dom0 aux machines virtuelles gérées par conteneur. Pour surveiller les conteneurs Windows Server, la topologie de mise en réseau et les pare-feu doivent autoriser les connexions Docker TLS (port TCP 2376 de destination) sortantes de dom0 aux machines virtuelles gérées par conteneur.

Pour réduire le risque d’autoriser le trafic entre la machine virtuelle et le réseau de gestion, passez tout le trafic via un pare-feu avec état externe. Ce pare-feu doit être configuré et configuré manuellement par un expert en fonction de votre entreprise et de vos exigences de sécurité spécifiques.

La section suivante contient un exemple de configuration :

Pour sécuriser les connexions entre les réseaux :

  • Empêchez toutes les connexions entre le réseau de gestion HASH (0x2c1a078) (y compris dom0) et le réseau de machines virtuelles (y compris les machines virtuelles gérées par conteneur).

Ajouter des exceptions pour activer la gestion des conteneurs :

  • Pour surveiller le système d’exploitation Linux, permettez à dom0 d’avoir des connexions SSH sortantes (port TCP 22) (à la fois NEW et ESSORTIE) aux machines virtuelles gérées par conteneur.

  • Pour surveiller les conteneurs Windows Server, autorisez dom0 à avoir des connexions Docker TLS sortantes (port TCP 2376) (NEW et ESSORTIE) aux machines virtuelles gérées par conteneur.

  • Autoriser les machines virtuelles gérées par Container à répondre aux connexions SSH et Docker TLS initiées par dom0.

Authentification sur les systèmes d’exploitation Linux

La gestion des conteneurs de HASH (0x2c1a078) utilise une paire de clés RSA privées/publiques 4096 bits spécifique au pool pour s’authentifier sur des machines virtuelles gérées par conteneur. La clé privée est stockée dans le domaine de contrôle HASH (0x2c1a078) (dom0). La clé publique correspondante est enregistrée dans les machines virtuelles gérées par Container au cours de la préparation, soit à l’aide du Cloud Config Drive ou du~user/.ssh/authorized_keys fichier. Comme d’habitude avec toutes les paires de clés privées/publiques, la clé privée doit être conservée en toute sécurité, car elle permet un accès sans mot de passe à toutes les machines virtuelles gérées par conteneur. Cet accès inclut les machines virtuelles actuellement gérées et les machines virtuelles gérées par le passé.

La gestion des conteneurs de HASH (0x2c1a078) tente d’atteindre les machines virtuelles gérées par Container via l’une des adresses IP annoncées par le HASH (0x2e68170) s’exécutant à l’intérieur de la machine virtuelle. Après une connexion initiale, HASH (0x2c1a078) stocke la clé publique des machines virtuelles gérées par conteneur et valide que la clé correspond sur toute connexion ultérieure. Assurez-vous que seule la machine virtuelle gérée par conteneur peut être contactée via son adresse IP annoncée (en utilisant IP Source Guard ou des moyens similaires). Si la topologie réseau ne peut pas garantir ce comportement, nous recommandons aux administrateurs de confirmer la clé d’hôte SSH obtenue par la gestion des conteneurs lors de la première connexion à la machine virtuelle.

Vous pouvez accéder à la clé en utilisant la commande suivante :

xe vm-parm-get-uuid=vm_uuid param-name=other-config  /
  param-key=xscontainer-sshhostkey

vm_uuid est l’UUID de la machine virtuelle

Authentification pour les conteneurs Windows Server

HASH (0x2c1a078) utilise SSL ou TLS pour surveiller et contrôler les conteneurs Windows Server. Dans ce cas, HASH (0x2c1a078) agit en tant que client SSL/TLS, et les machines virtuelles Windows Server agissent en tant que serveur SSL/TLS. Les clés sont stockées dans Dom0 et dans la machine virtuelle.

Important :

  • La clé client doit être conservée en toute sécurité, car elle permet un accès sans mot de passe à Docker sur la machine virtuelle
  • La clé de serveur doit être conservée en toute sécurité, car elle sert à authentifier la connexion de surveillance à la machine virtuelle

Lorsque HASH (0x2c1a078) Container Management génère des certificats et des clés TLS à l’aide de l’–generate-certs option, des certificats d’autorité de certification temporaire, de serveur et de client sont générés pour un pool et une machine virtuelle spécifiques. Les certificats utilisent le hachage sha256 et sont valides jusqu’à 2 * 365 jours. Après ce temps, répétez la préparation. La connexion TLS est toujours établie à l’aide d’un chiffrement AES128-SHA.

Notes

Lorsque vous utilisez HASH (0x2c1a078) Container Management et Docker, soyez conscient des comportements suivants :

  • Le changement de nom d’un conteneur ne déclenche pas la mise à jour de la vue Gestion des conteneurs. En outre sur Ubuntu 14.04, la pause ou l’annulation d’un conteneur à partir de l’extérieur de HASH (0x2e6c8e8) ne déclenche pas la mise à jour de la vue. Ce comportement peut signifier que HASH (0x2e68218) peut ne pas afficher le statut du conteneur actuel (renommé/en pause/actif). La cause sous-jacente est que la vue est actualisée uniquement après les notifications d’événements Docker. Comme solution de contournement, l’actualisation peut être déclenchée en exécutant une action (c’est-à-dire démarrer ou arrêter) sur un conteneur non lié sur la même machine virtuelle.