Containermanagement

Citrix Hypervisor enthält zwei neue Funktionen zur Verbesserung der Bereitstellung von Docker Containern auf Citrix Hypervisor

  • Unterstützung für CoreOS Linux VMs und Konfigurieren von Cloud Config Drives

  • Containerverwaltung für CoreOS, Debian 8, Ubuntu 14.04 und RHEL/Centos/OEL 7

  • Vorschau der Containerverwaltung für Windows Server-Container unter Windows Server 2016 Technologievorschau

CoreOS ist eine minimalistische Linux-Distribution, die für das Hosten von Docker Anwendungen populär geworden ist. Das CoreOS Cloud Config Drive ermöglicht die Anpassung verschiedener Betriebssystemkonfigurationsoptionen. Wenn die Containerverwaltung auf einer VM aktiviert ist, erkennt Citrix Hypervisor alle Docker Container, die auf der VM ausgeführt werden.

Hinweis:

Informationen zum Installieren von CoreOS-Gästen, zum Konfigurieren von Cloud-Config-Parametern und zum Verwalten von Docker Containern finden Sie in der XenCenter er-Hilfe. Drücken Sie F1 oder klicken Sie auf Hilfe .

Der Container Management Supplemental Park ermöglicht Citrix Hypervisor die folgenden Aktionen:

  • Abfragen der VMs
  • Interagieren mit Cloud-Konfigurationslaufwerken
  • Entdecken Sie Anwendungscontainer
  • Zeigen Sie Anwendungscontainer in der Infrastrukturansicht von XenCenter an.

XenCenter ermöglicht auch die Interaktion mit den Containern, um Start-, Stopp- und Pausevorgänge sowie andere Überwachungsfunktionen zu ermöglichen. Weitere Informationen finden Sie unter Ergänzungspaket für die Containerverwaltung.

Was ist Docker?

Docker ist eine offene Plattform für Entwickler und Systemadministratoren, um verteilte Anwendungen zu erstellen, zu versenden und auszuführen. Ein Docker Container umfasst nur die Anwendung und ihre Abhängigkeiten. Es läuft als isolierter Prozess im Benutzerbereich auf dem Host-Betriebssystem und teilt den Kernel und das Basisdateisystem mit anderen Containern. Weitere Informationen finden Sie unter https://www.docker.com/whatisdocker.

Hinweis:

Das Feature Citrix Hypervisor Container Management ergänzt, ersetzt jedoch nicht die Docker Umgebung. Sie können eines der vielen verfügbaren Docker er-Verwaltungstools verwenden, um einzelne Docker Engine-Instanzen in den VMs zu verwalten.

Ergänzungspaket für die Containerverwaltung

Das Container Management Supplemental Pack bietet:

Überwachung und Sichtbarkeit: Hier können Sie sehen, welche VMs für das Docker Hosting verwendet werden und welche Container auf der VM ausgeführt werden.

Diagnose: Zugriff auf grundlegende Containerinformationen wie weitergeleitete Netzwerkports und den ursprünglichen Docker Imagenamen. Diese Funktion kann dazu beitragen, die Untersuchungen zu Problemen zu beschleunigen, bei denen die Infrastruktur- und Anwendungsebenen möglicherweise betroffen sind.

Performance: Gibt einen Einblick in die Container, die auf dieser VM ausgeführt werden. Abhängig von den vom Betriebssystem bereitgestellten Informationen werden Informationen zu den Prozessen und Anwendungen bereitgestellt, die auf dem Container ausgeführt werden, und der verbrauchten CPU-Ressource.

Steuerungsanwendungen: Mit XenCenter können Sie Anwendungscontainer starten, stoppen und pausieren (falls vom Betriebssystem unterstützt), wodurch problematische Anwendungen schnell beendet werden können.

Hinweis:

Citrix Hypervisor unterstützt die Installation von Supplemental Packs mit XenCenter. Informationen zum Installieren eines Zusatzpakets mit XenCenter finden Sie in der XenCenter-Hilfe. Wenn Sie lieber mit der XE CLI installieren möchten, lesen Sie dieCitrix Hypervisor Supplemental Packs und DDK-Handbuch.

Verwalten von Docker Containern mithilfe von XenCenter

Dieser Abschnitt enthält Informationen zum Verwalten Ihrer CoreOS-VMs mit XenCenter. Führen Sie die folgenden Schritte aus, um CoreOS-VMs zu verwalten:

  1. Installieren oder aktualisieren Sie Ihren Host auf Citrix Hypervisor 8.0.

  2. Installieren Sie XenCenter, das im Lieferumfang von Citrix Hypervisor 8.0 enthalten ist.

  3. Installieren Sie das Container Management Supplemental Pack, das über die verfügbar istCitrix Website.

  4. Erstellen Sie eine CoreOS-VM und schließen Sie ein Konfigurationslaufwerk für die VM ein.

    Wenn Sie eine CoreOS-VM in XenCenter erstellen, werden Sie vom Assistenten für neue VM aufgefordert, cloud-config-Parameter für Ihre VM anzugeben. Das Konfigurationslaufwerk stellt Benutzerdaten für die VM-Instanz bereit. Wenn Sie planen, Citrix Hypervisor für die Verwaltung von Containern zu verwenden, die innerhalb der VM ausgeführt werden, erstellen Sie ein Konfigurationslaufwerk.

    Standardmäßig enthält XenCenter einen vordefinierten Satz von Parametern auf der Seite „Cloud-Config-Parameter“. Sie können diese Parameter basierend auf Ihren Anforderungen ändern. Ausführliche Informationen zu unterstützten Konfigurationsparametern finden Sie in der CoreOS-Dokumentation.

    Warnhinweis:

    Die Containerverwaltung funktioniert möglicherweise nicht, wenn Sie kein Konfigurationslaufwerk für die VM erstellen.

  5. Aktivieren Sie die Containerverwaltung für die VM. Sie können diese Einstellung auf der Registerkarte Eigenschaften der VM in XenCenter aktualisieren.

Hinweis:

Wenn Sie eine Container-verwaltete VM zwischen Pools migrieren, funktioniert die Container-Verwaltung nicht mehr für die VM. Dieses Verhalten liegt daran, dass Container-Management mit einem pool-spezifischen Schlüssel implementiert wird. Um die Container-Management-Funktionalität für die VM wieder zu aktivieren, aktualisieren Sie die Konfiguration des Cloud Config Drive-Laufwerks in den VM-Voreinstellungen.

Verwalten von Containern auf anderen Linux-Gästen

CoreOS-VMs, die mit der standardmäßigen Cloud Config Drive-Konfiguration erstellt werden, werden automatisch für die Container-Verwaltung vorbereitet. Nur müssen Sie die Funktion aktivieren. Andere Linux-Gäste können manuell vorbereitet werden. Diese Funktion wird nur für VMs von Debian 8, Ubuntu 14.04 und RHEL/Centos/OEL 7.x unterstützt.

So bereiten Sie einen Linux-Gast manuell vor:

  1. Stellen Sie sicher, dass auf der VM Citrix VM Tools installiert sind und dass das VM-Netzwerk wie unter beschrieben konfiguriert ist Netzwerkanforderungen und -sicherheit.

  2. Installieren Sie Docker, Ncat und SSHD in der VM.

    Für Ubuntu 14.04:

    apt-get install docker.io nmap openssh-server
    

    Für RHEL/Centos/OEL 7.x:

    yum install docker nmap openssh-server
    
  3. Autostart für docker.service aktivieren:

    systemctl enable docker.service
    
  4. docker.service starten

    systemctl start docker.service
    

    Verwenden Sie einen Nicht-Root-Benutzer für die Containerverwaltung. Fügen Sie den Benutzer zur Gruppe „Docker“ hinzu, um den Zugriff auf Docker zu ermöglichen.

  5. Bereiten Sie die VM für die Containerverwaltung vor; führen Sie den folgenden Befehl für die Steuerdomäne (dom0) auf einem der Hosts im Pool aus:

    xscontainer-prepare-vm -v vm_uuid -u username
    

    Wovm_uuid ist die zu vorbereitende VM undusername der Benutzername auf der VM, die die Containerverwaltung für den Verwaltungszugriff verwendet.

Das Vorbereitungsskript führt Sie durch den Prozess und ermöglicht automatisch die Containerverwaltung für diese VM.

Hinweis:

Wenn Sie eine Container-verwaltete VM zwischen Pools migrieren, funktioniert die Container-Verwaltung nicht mehr für die VM. Dieses Verhalten liegt daran, dass Container-Management mit einem pool-spezifischen Schlüssel implementiert wird. Um die Container-Management-Funktionalität für die VM wieder zu aktivieren, führen Sie denxscontainer-prepare-vm Befehl erneut auf der VM aus. Selbst nach dem Ausführen dieses Befehls kann der ursprüngliche Citrix Hypervisor Pool weiterhin auf die VM zugreifen.

Zugriff auf die Docker Container-Konsole und Protokolle

Bei Linux-VMs ermöglicht XenCenter Kunden den Zugriff auf die Containerkonsole und das Anzeigen von Protokollen zur Verwaltung und Überwachung von Anwendungen, die auf Docker Containern ausgeführt werden. So greifen Sie mit XenCenter auf die Containerkonsole und die Protokolle zu:

  1. Select den Container im Bereich Ressourcen aus.

  2. Klicken Sie im Abschnitt Allgemeine Containereigenschaften auf View Console , um die Containerkonsole anzuzeigen. Klicken Sie auf Protokoll anzeigen, um die Konsolenprotokolle anzuzeigen. Diese Aktion öffnet einen SSH-Client auf dem Computer, auf dem XenCenter ausgeführt wird.

  3. Melden Sie sich bei entsprechender Aufforderung am SSH-Client mit dem Benutzernamen und dem Kennwort der VM an.

    Hinweis:

    Kunden können den Authentifizierungsprozess automatisieren, indem sie ihre öffentlichen/privaten SSH-Schlüssel konfigurieren. Weitere Informationen finden Sie im folgenden Abschnitt.

Automatisieren des Authentifizierungsprozesses (optional)

Beim Zugriff auf die Containerkonsole und die Protokolle müssen Kunden die Anmeldeinformationen der VM eingeben, um SSH-Verbindungen zu authentifizieren. Kunden können jedoch den Authentifizierungsprozess automatisieren, um die Eingabe der Anmeldeinformationen zu vermeiden. Befolgen Sie die folgenden Anweisungen, um den automatischen Authentifizierungsprozess zu konfigurieren:

  1. Generieren Sie ein öffentliches/privates Schlüsselpaar.

  2. Fügen Sie den öffentlichen SSH-Schlüssel zum Benutzerverzeichnis auf der VM hinzu, auf der der Container ausgeführt wird.

    • Fügen Sie bei Containern, die auf einer CoreOS-VM ausgeführt werden, den öffentlichen Schlüssel zum Abschnitt Cloud-Config-Parameter auf der Registerkarte Allgemein der VM in XenCenter hinzu.
    • Fügen Sie für Container, die unter Ubuntu 14.04, RHEL/Centos/Oracle Linux 7 und Debian 8 ausgeführt werden, den öffentlichen Schlüssel manuell hinzu~/.ssh/authorized_keys.
  3. Fügen Sie den privaten SSH-Schlüssel dem%userprofile% Verzeichnis auf dem Computer hinzu, auf dem XenCenter ausgeführt wird, und benennen Sie den Schlüssel umContainerManagement.ppk .

Verwalten von Windows Server-Containern

Windows Server-Container sind Teil des Windows Server 2016-Gastbetriebssystems. Sie ermöglichen die Kapselung von Windows Anwendungen, indem Prozesse in ihren eigenen Namespace isoliert werden. Citrix Hypervisor Container Management unterstützt die Überwachung und Verwaltung von Windows Server Containern unter Windows Server 2016-Gastbetriebssystemen.

Hinweis:

Windows Server 2016-VMs müssen mit einer oder mehreren statischen IP-Adressen für die TLS-Kommunikation konfiguriert werden, da TLS-Serverzertifikate an bestimmte IP-Adressen gebunden sind.

So bereiten Sie Windows Server-Container für die Containerverwaltung vor:

  1. Stellen Sie sicher, dass auf der VM Citrix VM Tools installiert sind und dass das VM-Netzwerk wie unter beschrieben konfiguriert ist Netzwerkanforderungen und -sicherheit.

  2. Installieren Sie Windows Server Container-Unterstützung innerhalb der VM wie unter beschriebenMicrosoft-Dokumentation. Windows Server-Container sind keine Hyper-V-Container.

  3. Erstellen Sie eine Datei, diedaemon.json im OrdnerC:\ProgramData\docker\config mit dem Inhalt aufgerufen wird:

    {
        "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. Bereiten Sie die VM für die Containerverwaltung vor; führen Sie einen der folgenden Befehle in der Steuerdomäne (dom0) auf einem der Hosts im Pool aus:

    Option 1 (für Einzelbenutzer-VMs): Citrix Hypervisor soll TLS-Zertifikate für diese VM generieren.

    Wichtig:

    Diese Option ist nur dann sicher, wenn nur ein einzelner Benutzer Zugriff auf die VM hat. Der TLS-Server und die Clientschlüssel werden mithilfe einer virtuellen CD in die VM injiziert. Diese Informationen können von böswilligen Benutzern während der Vorbereitung kopiert werden.

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

    Wobei vm_uuid die VM ist, die vorbereitet werden soll. Befolgen Sie die Anweisungen auf dem Bildschirm, um das Vorbereiten von Windows Server-Containern abzuschließen. Es beinhaltet die Interaktion mit dom0 und der VM.

    Option 2: Konfigurieren von Citrix Hypervisor mit extern generierten TLS-Zertifikaten

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

    Dabei steht vm_uuid für die VM, die vorbereitet werden soll, client_cert für das TLS-Clientzertifikat, client_key für den TLS-Clientschlüssel und ca_cert für das Zertifizierungsstellenzertifikat. Bei dieser Option wird davon ausgegangen, dass Docker bereits für TLS innerhalb der VM konfiguriert ist.

Netzwerkanforderungen und -sicherheit

Wichtig:

Damit das Containermanagement funktioniert, kann es notwendig sein, die Sicherheitsanforderungen hinsichtlich der Netzwerkisolierung zu lockern.

Für maximale Sicherheit von Virtualisierungsumgebungen empfehlen Administratoren, das Netzwerk zu partitionieren, indem sie das Verwaltungsnetzwerk von Citrix Hypervisor (mit Citrix Hypervisor Control Domain) von den VMs isolieren.

Das Aktivieren der Containerverwaltung erfordert eine Route zwischen diesen beiden Netzwerken, wodurch das Risiko erhöht wird, dass bösartige VMs das Verwaltungsnetzwerk angreifen (d. h. dom0). Um das Risiko zu verringern, dass der Datenverkehr zwischen VM und dem Verwaltungsnetzwerk zugelassen wird, empfehlen wir die Konfiguration von Firewallregeln, damit nur vertrauenswürdige Quellen eine Verbindung zwischen den beiden Netzwerken initiieren können.

Verwenden Sie diese Funktion in den folgenden Fällen nicht in der Produktion:

  • Wenn diese empfohlene Netzwerkkonfiguration nicht mit Ihrem Risikoprofil übereinstimmt
  • Wenn Ihnen das erforderliche Know-how im Netzwerk oder in der Firewall fehlt, um diese Route ausreichend für Ihren speziellen Anwendungsfall zu sichern.

Netzwerkpartitionierung und Firewalls

Wie bei anderen VMs können Sie Containerverwaltete VMs nicht direkt mit dem Verwaltungsnetzwerk von Citrix Hypervisor verbinden, um die erforderliche Isolation zu gewährleisten.

Damit die Container-Verwaltung funktioniert, müssen verwaltete VMs über die Control Domain (dom0) des Citrix Hypervisors erreichbar sein. Um Container auf Linux-basierten Betriebssystemen zu überwachen, müssen die Netzwerktopologie und Firewalls ausgehende SSH-Verbindungen von dom0 zu Container-verwalteten VMs zulassen. Um Windows Server-Container zu überwachen, müssen die Netzwerktopologie und Firewalls ausgehende Docker er-TLS-Verbindungen (Ziel-TCP-Port 2376) von dom0 zu Containerverwalteten VMs zulassen.

Um das Risiko zu verringern, dass der Datenverkehr zwischen VM und dem Verwaltungsnetzwerk zugelassen wird, leiten Sie den gesamten Datenverkehr über eine externe statusbehaftete Firewall. Diese Firewall muss manuell von einem Experten entsprechend Ihren geschäftlichen und Sicherheitsanforderungen eingerichtet und konfiguriert werden.

Der folgende Abschnitt enthält eine Beispielkonfiguration:

So sichern Sie Verbindungen zwischen den Netzwerken:

  • Verhindern Sie alle Verbindungen zwischen dem Citrix Hypervisor Verwaltungsnetzwerk (einschließlich dom0) und dem VM-Netzwerk (einschließlich containerverwalteten VMs) in beiden Richtungen.

Fügen Sie Ausnahmen für die Aktivierung der Container-Verwaltung hinzu:

  • Um das Linux-basierte Betriebssystem zu überwachen, erlauben Sie dom0 ausgehende SSH-Verbindungen (TCP-Port 22) (sowohl NEW als auch ESTINESTIERT) zu Container-verwalteten VMs.

  • Zum Überwachen von Windows Server-Containern erlauben Sie dom0 ausgehende Docker er-TLS-Verbindungen (TCP-Port 2376) (sowohl NEW als auch ESTEBUD) mit Containerverwalteten VMs.

  • Behälterverwaltete VMs können auf SSH- und Docker er-TLS-Verbindungen antworten, die von dom0 initiiert wurden.

Authentifizierung auf Linux-basierten Betriebssystemen

Das Container-Management von Citrix Hypervisor verwendet ein pool-spezifisches 4096-Bit-private/öffentliches RSA-Schlüsselpaar zur Authentifizierung auf Container-verwalteten VMs. Der private Schlüssel wird in der Citrix Hypervisor Control Domain (dom0) gespeichert. Der jeweilige Public-Key wird während der Vorbereitung auf Container Managed VMs registriert, entweder über das Cloud Config Drive oder die~user/.ssh/authorized_keys Datei. Wie bei allen privaten/öffentlichen Schlüsselpaaren üblich muss der private Schlüssel sicher aufbewahrt werden, da er einen passwortlosen Zugriff auf alle Container Managed VMs ermöglicht. Dieser Zugriff umfasst sowohl derzeit verwaltete VMs als auch VMs, die in der Vergangenheit verwaltet wurden.

Die Containerverwaltung von Citrix Hypervisor versucht, Container Managed VMs über eine der IP-Adressen zu erreichen, die von den Citrix VM-Tools angekündigt werden, die innerhalb der VM ausgeführt werden. Nach einer ersten Verbindung speichert Citrix Hypervisor den öffentlichen Schlüssel von Container-verwalteten VMs und überprüft, ob der Schlüssel bei jeder nachfolgenden Verbindung übereinstimmt. Stellen Sie sicher, dass nur die Container Managed VM über die angekündigte IP kontaktiert werden kann (mit IP Source Guard oder ähnlichen Mitteln). Wenn die Netzwerktopologie dieses Verhalten nicht gewährleisten kann, empfehlen wir Administratoren, den SSH-Hostschlüssel zu bestätigen, den die Containerverwaltung beim Herstellen der ersten Verbindung mit der VM erhalten hat.

Auf den Schlüssel kann mit dem folgenden Befehl zugegriffen werden:

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

vm_uuid ist die UUID der VM

Authentifizierung für Windows Server-Container

Citrix Hypervisor verwendet SSL oder TLS, um Windows Server-Container zu überwachen und zu steuern. In diesem Fall fungiert Citrix Hypervisor als SSL/TLS-Client, und Windows Server-VMs fungieren als SSL/TLS-Server. Schlüssel werden sowohl in Dom0 als auch in der VM gespeichert.

Wichtig:

  • Der Clientschlüssel muss sicher aufbewahrt werden, da er einen passwortlosen Zugriff auf Docker auf der VM ermöglicht
  • Der Serverschlüssel muss sicher aufbewahrt werden, da er zur Authentifizierung der Überwachungsverbindung zur VM dient

Wenn Citrix Hypervisor Container Management TLS-Zertifikate und -Schlüssel mithilfe der–generate-certs Option generiert, werden temporäre Zertifizierungsstellen-, Server- und Clientzertifikate für einen bestimmten Pool und eine bestimmte VM generiert. Zertifikate verwenden sha256-Hash und sind bis zu 2*365 Tage gültig. Nach dieser Zeit wiederholen Sie die Vorbereitung. Die TLS-Verbindung wird immer mit einer AES128-SHA-Verschlüsselung hergestellt.

Notizen

Wenn Sie Citrix Hypervisor Container Management und Docker verwenden, beachten Sie die folgenden Verhaltensweisen:

  • Durch das Umbenennen eines Containers wird die Containerverwaltungsansicht nicht aktualisiert. Darüber hinaus löst das Anhalten oder Aufheben eines Containers von außerhalb XenCenter unter Ubuntu 14.04 die Ansicht nicht zum Aktualisieren aus. Dieses Verhalten kann bedeuten, dass Citrix Hypervisor möglicherweise nicht den aktuellen Container-Status (umbenannt/angehalten) anzeigt. Die zugrunde liegende Ursache ist, dass die Ansicht nur nach Docker Ereignisbenachrichtigungen aktualisiert wird. Als Problemumgehung kann die Aktualisierung ausgelöst werden, indem eine Aktion (d. h. Start oder Stop) für einen nicht verwandten Container auf derselben VM ausgeführt wird.