3.3 Bereitstellen des iManager-Containers

Das Betriebssystem-Basisimage des eDirectory-Docker-Image ist openSUSE Leap 15.1. Die TAR-Datei des iManager-Image sollte auf den Docker-Hostcomputer heruntergeladen und das Image mit den folgenden Befehlen in die lokale Docker-Registrierung geladen werden:

# tar xf iManager_320.tar.gz 
# docker load --input iman320.tar

Mit dem oben genannten Befehl wird ein Docker-Image mit dem Namen imanager:3.2.0 geladen.

Beachten Sie die folgenden Punkte, bevor Sie iManager bereitstellen:

  • Docker-Container haben standardmäßig keine Ressourcenbeschränkungen. Jeder Container verfügt daher über Zugriff auf alle CPU- und Arbeitsspeicherressourcen, die vom Kernel des Hosts bereitgestellt werden. Beschränken Sie die Menge der Ressourcen, die von einem Container verwendet werden kann, um zu verhindern, dass ein ausgeführter Container zu viele Ressourcen verbraucht und für andere ausgeführte Container dann nicht mehr genügend Ressourcen verfügbar sind.

    • Stellen Sie sicher, dass Sie ein Hardlimit für die vom Docker-Container verwendeten Arbeitsspeicherressourcen festlegen. Verwenden Sie hierzu die Flagge --memory im Befehl „docker run“.

    • Stellen Sie sicher, dass Sie die von einem ausgeführten Docker-Container verwendeten CPU-Ressourcen beschränken. Verwenden Sie hierzu die Flagge --cpuset-cpus im Befehl „docker run“.

    • --pids-limit sollte auf 300 festgelegt werden, um die Anzahl der zu einem bestimmten Zeitpunkt im Container entstehenden Kernel-Threads zu begrenzen. Dies dient dem Verhindern von DoS-Angriffen.

  • Legen Sie die Richtlinie zum Neustart von Containern nach einem Fehler im Befehl „docker run“ mit der Flagge --restart auf 5 fest.

  • In Docker-Containern sind standardmäßig bestimmte Linux-Funktionen aktiviert. Stellen Sie sicher, dass für den iManager-Container nur die folgenden Funktionen aktiviert bleiben, und deaktivieren Sie alle anderen:

    • AUDIT_WRITE

    • CHOWN

    • DAC_OVERRIDE

    • SETGID

    • SETUID

    • FOWNER

    • SYS_PTRACE (Nur bei Verwendung von Dienstprogrammen, die die Linux-Funktion ptrace verwenden, wie gdb.)

    Weitere Informationen zum Hinzufügen bzw. Entfernen von Funktionen finden Sie unter Runtime privilege and Linux capabilities (Laufzeitberechtigung und Linux-Funktionen).

iManager mit der Umgebungsdatei konfigurieren

Die Datei iManager.env befindet sich im iManager-Container unter /etc/opt/novell/iManager/conf. Nachstehend sehen Sie ein Beispiel einer Konfigurationsdatei mit Standardwerten für die Parameter:

# Certificate Public Key Algorithm
# Allowed Values: RSA, ECDSA256, ECDSA384
CERTIFICATE_ALGORITHM=RSA
# Cipher Suite
# Allowed Values:
# For RSA - NONE, LOW, MEDIUM HIGH
# For ECDSA256 - SUITEB128ONLY
# For ECDSA384 - SUITEB128, SUITEB192
CIPHER_SUITE=NONE
# Tomcat Server HTTP Port
TOMCAT_HTTP_PORT=8080
# Tomcat Server SSL Port
TOMCAT_SSL_PORT=8443
# iManager Authorized User (admin_name.container_name.tree_name)
AUTHORIZED_USER=

Um einen iManager-Container für beliebige der oben gezeigten Parameter mit anderen Werten als den Standardwerten zu starten, erstellen Sie die Datei iManager.env im Dateisystem auf dem Docker-Host und hängen Sie sie im iManager-Container im Pfad /etc/opt/novell/iManager/conf mit der Option --volume ein. Beispiel:

docker run --name=iMan320 --volume /path/to/iManager.env:/etc/opt/novell/iManager/conf/iManager.env imanager:3.2.0

Die Parameter können nach dem Starten des Containers durch Bearbeiten der Datei iManager.env und erneutes Starten des Containers geändert werden. Führen Sie die folgenden Schritte aus, um die Konfiguration eines ausgeführten Containers zu ändern:

  • Ändern Sie die iManager.env-Datei.

  • Starten Sie den Container mit dem Befehl docker restart iMan320 neu.

Der iManager-Docker-Container unterstützt Host- und Overlay-Netzwerktreiber zur Bereitstellung in einer Docker-Umgebung mit mehreren Hosts:

3.3.1 Bereitstellen des iManager-Containers im Hostnetzwerk

iManager-Container können mit dem Hostnetzwerktreiber zum Zugreifen auf eDirectory-Server konfiguriert werden, die im Netzwerk bereitgestellt sind. Informationen zu Docker-Netzwerken finden Sie unter Configure Networking (Networking konfigurieren).

Das folgende Beispiel zeigt die Konfiguration des iManager-Containers mit dem Hostnetzwerktreiber:

docker run -it --name=iMan320 --net=host --restart on-failure:5 --memory="1000M" --cpuset-cpus="2" --volume iManager-volume:/config --volume /path/to/iManager.env:/etc/opt/novell/iManager/conf/iManager.env imanager:3.2.0

HINWEIS:

  • Mit der Flagge --net=host wird der Container mit dem Hostnetzwerktreiber bereitgestellt.

  • iManager-volume sollte erstellt werden, bevor iManager im Hostnetzwerk bereitgestellt wird. Weitere Informationen finden Sie in Verwalten der iManager-Datenspeicherung.

Abbildung 3-1 Bereitstellen des iManager-Containers im Hostnetzwerk

3.3.2 Bereitstellen des iManager-Containers in einem benutzerdefinierten Overlay-Netzwerk

Mithilfe eines benutzerdefinierten Overlay-Netzwerks können Sie ein verteiltes Netzwerk an eDirectory-Containern erstellen, die auf mehreren Docker-Daemon-Hosts ausgeführt werden. Ein iManager-Container, der in diesem Overlay-Netzwerk bereitgestellt wird, kann zum Verwalten aller dieser eDirectory-Server verwendet werden. Das benutzerdefinierte Overlay-Netzwerk kann sowohl auf Linux als auch auf Windows bereitgestellt werden. Stellen Sie sicher, dass der iManager-Docker-Host Teil des gleichen Docker-Swarms wie die eDirectory-Docker-Hosts ist. Weitere Informationen zum Bereitstellen von Containern in einem Overlay-Netzwerk finden Sie unter Use Overlay Networks (Overlay-Netzwerke verwenden).

Beachten Sie die folgenden Empfehlungen, bevor Sie iManager-Container in einem benutzerdefinierten Overlay-Netzwerk bereitstellen:

  • Die eDirectory-Container und der iManager-Container müssen im gleichen Overlay-Netzwerk bereitgestellt werden.

  • Wenn von außerhalb des Docker-Overlay-Netzwerks auf die Ports zugegriffen wird, müssen Sie die Containerports veröffentlichen. Docker veröffentlicht die Containerports standardmäßig auf 0.0.0.0, d. h. auf der Platzhalter-IP-Adresse. Dies führt für jeden möglichen Eingangsport auf dem Hostcomputer zur Übereinstimmung. Die Docker-Container sollten mit dem folgenden „docker run“-Befehl zum Veröffentlichen der Ports auf einer bestimmten Schnittstelle des Hostcomputers angewiesen werden:

    --publish <Host_IP Address>:host_port:container_port

Das folgende Beispiel zeigt die Konfiguration des iManager-Containers in einem benutzerdefinierten Overlay-Netzwerk:

docker run -it --name=iManager320 --net=eDir-overlay-nw --restart on-failure:5 --memory="1000M" --cpuset-cpus="2" --volume iManager-volume:/config --volume /path/to/iManager.env:/etc/opt/novell/iManager/conf/iManager.env --publish 443:8443 imanager:3.2.0

HINWEIS:eDir-overlay-nw ist der Name des Overlay-Netzwerks in einem Docker-Swarm, in dem die eDirectory-Containers bereitgestellt werden. Weitere Informationen zum Konfigurieren eines Overlay-Netzwerks in einem Docker-Swarm finden Sie in „Use Overlay Networks“ (Overlay-Netzwerke verwenden).

Abbildung 3-2 Bereitstellen des iManager-Containers in einem benutzerdefinierten Overlay-Netzwerk