Containermanagement

HASH (0x2c1a078) enthält zwei neue Funktionen zur Verbesserung der Bereitstellungen von Docker-Containern auf HASH (0x2c1a078)

  • Unterstützung für CoreOS Linux VMs und Konfiguration 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 Technology Preview

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, wird HASH (0x2c1a078) auf alle Docker-Container aufmerksam, die in 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 HASH-Hilfe (0x2e6c8e8). Drücken Sie F1 , oder klicken Sie auf Hilfe .

Der Container Management Supplemental Park ermöglicht HASH (0x2c1a078) die folgenden Aktionen:

  • Abfragen der VMs
  • Interagieren Sie mit Cloud-Konfigurationslaufwerken
  • Ermitteln von Anwendungscontainern
  • Zeigen Sie Anwendungscontainer in der Infrastrukturansicht von HASH (0x2e6c8e8) an.

HASH (0x2e6c8e8) ermöglicht auch die Interaktion mit den Containern, um Start-, Stopp- und Pauseoperationen sowie andere Überwachungsfunktionen zu ermöglichen. Weitere Informationen finden Sie unter Ergänzungspaket für Containermanagement.

Was ist Docker?

Docker ist eine offene Plattform für Entwickler und Systemadministratoren zum Erstellen, Ausliefern und Ausführen verteilter Anwendungen. 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:

Die HASH (0x2c1a078) Containerverwaltungsfunktion ergänzt, ersetzt jedoch die Docker-Umgebung nicht. Sie können eines der vielen verfügbaren Docker-Verwaltungstools verwenden, um einzelne Docker Engine-Instanzen in den VMs zu verwalten.

Ergänzungspaket für Containermanagement

Das Container Management Supplemental Pack bietet:

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

Diagnose: Zugriff auf grundlegende Containerinformationen wie weitergeleitete Netzwerkports und den Ursprungsnamen des Docker-Images. Diese Funktion kann dazu beitragen, die Untersuchung von Problemen zu beschleunigen, bei denen sich die Infrastruktur- und Anwendungsschichten möglicherweise auswirken.

Leistung: gibt Einblick in welche Container auf dieser VM ausgeführt werden. Abhängig von den vom Betriebssystem bereitgestellten Informationen werden Informationen über die Prozesse und Anwendungen bereitgestellt, die auf dem Container ausgeführt werden, und die verbrauchte CPU-Ressource.

Steuerungsanwendungen: Mit dieser Option können Sie HASH (0x2e6c8e8) verwenden, um Anwendungscontainer zu starten, zu stoppen und zu pausieren (falls vom Betriebssystem unterstützt), was eine schnelle Beendigung problematischer Anwendungen ermöglicht.

Hinweis:

HASH (0x2c1a078) unterstützt die Installation von Supplemental Packs mit HASH (0x2e6c8e8). Informationen zur Installation eines Zusatzpakets mit HASH (0x2e6c8e8) finden Sie in der HASH-Hilfe (0x2e6c8e8). Wenn Sie lieber mit der xe-CLI installieren möchten, lesen Sie dieHASH (0x2c1a078) Supplemental Packs und das DDK-Handbuch.

Verwalten von Docker-Containern mithilfe von HASH (0x2e6c8e8)

Dieser Abschnitt enthält Informationen zur Verwaltung Ihrer CoreOS-VMs mit HASH (0x2e6c8e8). Führen Sie die folgenden Schritte aus, um CoreOS-VMs zu verwalten:

  1. Installieren oder aktualisieren Sie Ihren Host auf HASH (0x2c1a078).

  2. Installieren Sie den mit HASH (0x2e6c8e8) ausgelieferten HASH (0x2c1a078).

  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 HASH (0x2e6c8e8) erstellen, werden Sie vom Assistenten für neue VM aufgefordert, Cloud-Konfigurationsparameter für Ihre VM anzugeben. Das Konfigurationslaufwerk stellt Benutzerdaten für die VM-Instanz bereit. Wenn Sie planen, HASH (0x2c1a078) zum Verwalten von Containern zu verwenden, die innerhalb der VM ausgeführt werden, erstellen Sie ein Konfigurationslaufwerk.

    Standardmäßig enthält HASH (0x2e6c8e8) einen vordefinierten Satz von Parametern auf der Seite Cloud-Konfigurationsparameter. Sie können diese Parameter je nach Ihren Anforderungen ändern. Ausführliche Informationen zu unterstützten Konfigurationsparametern finden Sie in der CoreOS-Dokumentation.

    Achtung:

    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 HASH (0x2e6c8e8) aktualisieren.

Hinweis:

Wenn Sie eine Container Managed VM zwischen Pools migrieren, funktioniert die Containerverwaltung nicht mehr für die VM. Dieses Verhalten liegt daran, dass die Containerverwaltung mithilfe eines poolspezifischen Schlüssels implementiert wird. Um die Containerverwaltungsfunktionalität für die VM erneut zu aktivieren, aktualisieren Sie die Konfiguration des Cloud Config Drive in den VM-Voreinstellungen.

Verwalten von Containern auf anderen Linux-Gästen

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

So bereiten Sie einen Linux-Gast manuell vor:

  1. Stellen Sie sicher, dass auf der VM HASH (0x2e68170) installiert ist und dass das VM-Netzwerk wie unter beschrieben konfiguriert istNetzwerkanforderungen 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 der Gruppe ‘docker’ hinzu, um den Zugriff auf Docker bereitzustellen.

  5. Bereiten Sie die VM für die Containerverwaltung vor. Führen Sie den folgenden Befehl in der 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 aktiviert automatisch die Containerverwaltung für diese VM.

Hinweis:

Wenn Sie eine Container Managed VM zwischen Pools migrieren, funktioniert die Containerverwaltung nicht mehr für die VM. Dieses Verhalten liegt daran, dass die Containerverwaltung mithilfe eines poolspezifischen Schlüssels implementiert wird. Um die Containerverwaltungsfunktionalität für die VM erneut 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 HASH-Pool (0x2e68218) den Zugriff auf die VM behalten.

Zugriff auf die Docker-Container-Konsole und Protokolle

Für Linux-VMs ermöglicht HASH (0x2e6c8e8) 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 HASH auf die Containerkonsole und Protokolle zu (0x2e6c8e8) zu:

  1. Wählen Sie den Container im Bereich Ressourcen aus.

  2. Klicken Sie im Abschnitt Allgemeine Eigenschaften von Containern auf Konsole anzeigen , um die Containerkonsole anzuzeigen. Klicken Sie auf Protokoll anzeigen, um die Konsolen protokolle anzuzeigen. Diese Aktion öffnet einen SSH-Client auf dem Computer, auf dem HASH ausgeführt wird (0x2e6c8e8).

  3. Wenn Sie dazu aufgefordert werden, melden Sie sich mit dem VM-Benutzernamen und dem Kennwort am SSH-Client 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 dem Benutzerverzeichnis auf der VM, auf der der Container ausgeführt wird, den öffentlichen SSH-Schlüssel hinzu.

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

Verwalten von Windows Server-Containern

Windows Server-Container sind Teil des Gastbetriebssystems Windows Server 2016. Sie ermöglichen die Kapselung von Windows-Anwendungen, indem Prozesse in ihren eigenen Namespace isoliert werden. HASH (0x2c1a078) Containerverwaltung unterstützt die Überwachung und Verwaltung von Windows Server-Containern auf 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 HASH (0x2e68170) installiert ist und dass das VM-Netzwerk wie unter beschrieben konfiguriert istNetzwerkanforderungen 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 VMs mit Einzelbenutzern): HASH (0x2c1a078) TLS-Zertifikate für diese VM generieren lassen.

    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. Folgen Sie den Anweisungen auf dem Bildschirm, um die Vorbereitung von Windows Server-Containern abzuschließen. Es beinhaltet die Interaktion mit dom0 und der VM.

    Option 2: So konfigurieren Sie HASH (0x2c1a078) 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
    

    Wo vm_uuid die zu vorbereitende VM ist, client_cert das TLS-Clientzertifikat, client_key ist der TLS-Clientschlüssel und ca_cert 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 bezüglich der Netzwerkisolierung zu lockern.

Für maximale Sicherheit in Virtualisierungsumgebungen empfehlen Administratoren, das Netzwerk zu partitionieren, indem sie das Verwaltungsnetzwerk von HASH (0x2c1a078) (mit HASH (0x2c1a078) von den VMs isolieren.

Die Aktivierung 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 Datenverkehr zwischen VM und Verwaltungsnetzwerk zulässig ist, empfehlen wir die Konfiguration von Firewall-Regeln, 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 nötige Netzwerk- oder Firewall-Know-how fehlt, um diese Route ausreichend für Ihren spezifischen Anwendungsfall zu sichern

Netzwerkpartitionierung und Firewalls

Verbinden Sie wie bei anderen VMs nicht Container-verwaltete VMs direkt mit dem Verwaltungsnetzwerk von HASH (0x2c1a078), um die erforderliche Isolation zu gewährleisten.

Damit Container Management funktioniert, müssen verwaltete VMs über die Control Domain (dom0) des HASH (0x2c1a078) erreichbar sein. Um Container auf Linux-basierten Betriebssystemen zu überwachen, müssen die Netzwerk-Topologie und Firewalls ausgehende SSH-Verbindungen von dom0 zu Container Managed VMs zulassen. Um Windows Server-Container zu überwachen, müssen die Netzwerktopologie und die Firewalls ausgehende Docker-TLS-Verbindungen (Ziel-TCP-Port 2376) von dom0 zu Container Managed VMs zulassen.

Um das Risiko zu verringern, dass Datenverkehr zwischen VM und Verwaltungsnetzwerk zulässig ist, übergeben Sie den gesamten Datenverkehr über eine externe statusbehaftete Firewall. Diese Firewall muss manuell von einem Experten entsprechend Ihrer Geschäfts- 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 HASH-Verwaltungsnetzwerk (0x2c1a078) (einschließlich dom0) und dem VM-Netzwerk (einschließlich Container-verwalteten VMs) in beide Richtungen.

Fügen Sie Ausnahmen für die Aktivierung der Containerverwaltung hinzu:

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

  • Um Windows Server-Container zu überwachen, erlauben Sie dom0, ausgehende Docker-TLS-Verbindungen (TCP-Port 2376) zu Container-verwalteten VMs zu haben.

  • Container Managed VMs erlauben, auf (Established) SSH- und Docker-TLS-Verbindungen zu antworten, die von dom0 initiiert wurden.

Authentifizierung auf Linux-basierten Betriebssystemen

Die Containerverwaltung von HASH (0x2c1a078) verwendet ein poolspezifisches 4096-Bit/öffentliches RSA-Key-Paar zur Authentifizierung auf Container Managed VMs. Der private Schlüssel wird in der HASH (0x2c1a078) Control Domain (dom0) gespeichert. Der jeweilige Public-Key wird während der Vorbereitung in Container Managed VMs registriert, entweder über das Cloud Config Drive oder die~user/.ssh/authorized_keys Datei. Wie bei allen privaten oder ö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 aktuell verwaltete VMs als auch in der Vergangenheit verwaltete VMs.

Die Containerverwaltung von HASH (0x2c1a078) versucht, Container Managed VMs über eine der IP-Adressen zu erreichen, die vom HASH (0x2e68170) innerhalb der VM angekündigt wurden. Nach einer ersten Verbindung speichert HASH (0x2c1a078) 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-Adresse kontaktiert werden kann (mit IP Source Guard oder ähnlichen Mitteln). Wenn die Netzwerk-Topologie dieses Verhalten nicht gewährleisten kann, empfehlen 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

HASH (0x2c1a078) verwendet SSL oder TLS, um Windows Server-Container zu überwachen und zu steuern. In diesem Fall fungiert HASH (0x2c1a078) 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 HASH (0x2c1a078) Containerverwaltung TLS-Zertifikate und -Schlüssel mithilfe der–generate-certs Option generiert, werden temporäre Zertifizierungsstellen, Server- und Clientzertifikate für einen bestimmten Pool und VM generiert. Zertifikate verwenden sha256-Hash und sind für bis zu 2 * 365 Tage gültig. Nach dieser Zeit wiederholen Sie die Vorbereitung. Die TLS-Verbindung wird immer mit einer AES128-SHA Chiffre hergestellt.

Notizen

Beachten Sie bei der Verwendung von HASH (0x2c1a078) Container Management und Docker die folgenden Verhaltensweisen:

  • Durch das Umbenennen eines Containers wird die Ansicht „Containerverwaltung“ nicht aktualisiert. Zusätzlich löst unter Ubuntu 14.04 die Pause oder Unpause eines Containers von außerhalb von HASH (0x2e6c8e8) die Ansicht zum Aktualisieren nicht aus. Dieses Verhalten kann bedeuten, dass HASH (0x2e68218) 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) auf einem nicht verwandten Container auf derselben VM ausgeführt wird.