Mirantis Kubernetes Engine
Bereitstellen im Swarm-Cluster
Um SUSE® Security mit einem Swarm-Cluster bereitzustellen, ziehen Sie zuerst die SUSE® Security-Images über Docker UCP im Menü "Images". Möglicherweise müssen Sie eine Versionsnummer hinzufügen, um die neueste Version auf Docker Hub zu erhalten.
Derzeit unterstützt Swarm/UCP nicht die seccomp-Funktionen (cap_add-Optionen) oder die Bereitstellung in ‘privileged mode’, sodass die SUSE® Security-Container über die Befehlszeile mit docker-compose oder run bereitgestellt werden müssen. Siehe die Beispiel-Compose-Dateien für All-in-One und Enforcer unten.
Der Docker UCP HRM-Dienst verwendet den Standardport 8443, der mit dem SUSE® Security-Konsolenport in Konflikt steht. Wenn der Standard-HRM-Port verwendet wird, ändern Sie die SUSE® Security-Portzuordnung, zum Beispiel 9443:8443 für den All-in-One-Container in den folgenden Beispielen. Nachdem die SUSE® Security-Anwendung erfolgreich bereitgestellt wurde, melden Sie sich an der Konsole am Port 9443 des All-in-One-Hosts an.
Bereitstellen auf Docker Swarm im privilegierten Modus
Das folgende ist ein Beispiel für die docker-compose-Datei zur Bereitstellung des All-in-One-Containers auf dem ersten Knoten. Da der All-in-One-Container ein Enforcer-Modul enthält, können Anwendungscontainer auf demselben Knoten gesichert werden. Sowohl Greenfield- als auch Brownfield-Bereitstellungen werden unterstützt.
Bereitstellen von All-in-One mit docker-compose (privilegierter Modus):
allinone:
pid: host
image: neuvector/allinone:<version>
container_name: allinone
privileged: true
environment:
- CLUSTER_JOIN_ADDR=node_ip
ports:
- 18300:18300
- 18301:18301
- 18400:18400
- 18401:18401
- 18301:18301/udp
- 9443:8443
volumes:
- /lib/modules:/lib/modules
- /var/neuvector:/var/neuvector
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/host/proc:ro
- /sys/fs/cgroup:/host/cgroup:ro
Die wichtigste Umgebungsvariable ist die CLUSTER_JOIN_ADDR. Es ist die IP-Adresse, zu der sich andere Enforcer verbinden. Normalerweise sollte sie auf die IP-Adresse des Knotens gesetzt werden, auf dem der All-in-One-Container läuft.
Port 18300 und 18301 sind Standardports für die Clusterkommunikation. Sie müssen für alle Controller und Enforcer im Cluster identisch sein. Bitte beziehen Sie sich auf den Abschnitt "Docker-compose Details", um zu erfahren, wie Sie die Standardports ändern können.
Fügen Sie einen Enforcer-Container mit docker-compose (privilegierter Modus) hinzu.
Dies ist ein Beispiel für eine docker-compose-Datei, um einen Enforcer in den Cluster einzufügen. Sowohl Greenfield- als auch Brownfield-Bereitstellungen werden unterstützt.
enforcer:
pid: host
image: neuvector/enforcer:<version>
container_name: enforcer
privileged: true
environment:
- CLUSTER_JOIN_ADDR=controller_node_ip
ports:
- 18301:18301
- 18401:18401
- 18301:18301/udp
volumes:
- /lib/modules:/lib/modules
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/host/proc:ro
- /sys/fs/cgroup/:/host/cgroup/:ro
Die wichtigste Umgebungsvariable ist CLUSTER_JOIN_ADDR. Für Enforcer ersetzen Sie <controller_node_ip> durch die IP-Adresse des Controllers. Typischerweise haben CLUSTER_JOIN_ADDR in der docker-compose-Datei des Controllers/All-in-One und in der docker-compose-Datei des Enforcers denselben Wert.
Ab SUSE® Security 4.0+ muss ein separater Scanner-Container bereitgestellt werden, um einen Schwachstellen-Scan durchzuführen.
Beispiel docker-compose für den Scanner:
Scanner:
image: neuvector/scanner
container_name: scanner
environment:
- SCANNER_DOCKER_URL=tcp://192.168.1.10:2376
- CLUSTER_JOIN_ADDR=controller_node_ip
ports:
- 18402:18402
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Bereitstellen ohne Verwendung des privilegierten Modus
Für einige Plattformkonfigurationen ist es möglich, die SUSE® Security Container bereitzustellen, ohne dass sie im privilegierten Modus ausgeführt werden müssen. Die Konfiguration muss die Möglichkeit unterstützen, Berechtigungen hinzuzufügen und das AppArmor-Profil festzulegen. Bitte beachten Sie, dass Docker DataCenter/UCP und Swarm dies derzeit nicht unterstützen, es jedoch dennoch möglich ist, SUSE® Security manuell mit Compose oder Run bereitzustellen.
Stellen Sie All-in-One (KEIN privilegierter Modus) mit docker-compose bereit.
allinone:
pid: host
image: neuvector/allinone
container_name: neuvector.allinone
cap_add:
- SYS_ADMIN
- NET_ADMIN
- SYS_PTRACE
- IPC_LOCK
security_opt:
- apparmor=unconfined
- seccomp=unconfined
- label=disable
environment:
- CLUSTER_JOIN_ADDR=[AllInOne Node IP Address]
ports:
- 18300:18300
- 18301:18301
- 18400:18400
- 18401:18401
- 18301:18301/udp
- 9443:8443
volumes:
- /lib/modules:/lib/modules
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/host/proc:ro
- /sys/fs/cgroup:/host/cgroup:ro
- /var/neuvector:/var/neuvector
Stellen Sie Enforcer (KEIN privilegierter Modus) mit docker-compose bereit.
enforcer:
pid: host
image: neuvector/enforcer
container_name: neuvector.enforcer
cap_add:
- SYS_ADMIN
- NET_ADMIN
- SYS_PTRACE
- IPC_LOCK
security_opt:
- apparmor=unconfined
- seccomp=unconfined
- label=disable
environment:
- CLUSTER_JOIN_ADDR=[AllInOne Node IP Address]
ports:
- 18301:18301
- 18401:18401
- 18301:18301/udp
volumes:
- /lib/modules:/lib/modules
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/host/proc:ro
- /sys/fs/cgroup/:/host/cgroup/:ro