Zum Inhalt springen
en
Von Muhamed Ahmovic am 22.02.2024 IT Security

Deploying Supervisor Services in Air Gapped Umgebungen

vSphere with Tanzu Supervisor Services

Supervisor Services ist eine Plattform für die Verwaltung zentraler Infrastrukturkomponenten, wie z. B. virtueller Maschinen, MinIO, Velero, Harbor und anderen. Nach der Implementierung können Anwendungsteams die Instanzen von Supervisor Services innerhalb der eigenen Namespaces mit branchenüblichen Tools und Verfahren zu deployen.

Da die Supervisor Services auch eng mit unabhängiger Softwareanbieter (ISV) integriert sind, können diese den Workloads wichtige Shared-Services zur Verfügung stellen, wie z.B. (Stand Januar 2024) ein Container Image Registry (Harbor), ein Backup & Recovery Service (Velero), ein S3 Object Store (MinIO), Data Persistence Platform (vDPP), Certificate Mamagement Service, Kubernetes Ingress Controller Service (Contour) und External DNS Service.

Deployment von Supervisor Services

In einer Umgebung mit Internetzugang funktioniert das Deployment von Services „out-of-the Box“, aber in air gapped Umgebungen ist es ohne größeren Aufwand generell gar nicht möglich.
Für jeden Supervisor Service wird eine entsprechende Manifest-Datei benötigt, die von VMware oder von einem unabhängigen Softwareanbieter zur Verfügung gestellt wird. Deployment Manifest-Dateien können etwa von dieser Website heruntergeladen werden: vSphere Supervisor Services.

Der Link kann auch durch vCenter GUI geöffnet werden:

In jeder Service Manifest Datei sind die Links von Images oder Image-Bundles definiert. Wie der Service in einer Air Gapped Umbgebung ausgerollt werden kann, hängt davon ab ob es um ein einzelnes Images pro Service geht, um mehrere oder um ein Image-Bundle.

Hier ein paar Manifest-Datei-Beispiele:

harbor.yml – hat Image-Bundle definiert
contour.yml – hat ebenfalls ein Image-Bundle definiert
minio-supervisorservice-2.0.0.yml – hat mehrere Images (keine Image-Bundles) definiert

Images und Bundles bereitstellen

Nachdem die Links von Images, oder Image-Bundles gefunden worden sind, müssen sie heruntergeladen werden und in eine interne, aus der Air-Gapped Umgebung erreichbare, Registry angelegt werden.

Die Images können mit docker bereitgestellt werden, Image-Bundels können mit dem “imgpkg” Tool bereitgestellt werden.

Option 1: Deployment aus einer VM mit docker und imgpkg Tool, die Zugang zum Internet und der Registry in der Air-Gapped Umgebung hat:

  • Für Images:
    docker pull < image_name:version>
    docker tag < image_name:version> <interne_harbor/image_name:verstion>
    docker push < interne_harbor:verstion>

  • Für Image-Bundles:
    imgpkg copy -b projects.registry.vmware.com/…/< image-bundle_name:version> —to-repo <interne_harbor/image-name> —debug

Option 2: Aus einer VM mit docker und imgpkg Tools die keinen Zugang zur Registry in der Air-Gapped Umgebung hat:

  • Für Images:
    ‘# Eine VM mit Internetzugang
    docker pull < imagename:version>
    docker save > < image
    name >.tar
    ‘# image auf die VM mit dem Zugang zur Registry kopieren
    docker load < < image_name:version>.tar
    docker tag < image_name:version> <interne_harbor/image_name:verstion>
    docker push <interne_harbor/image_name:verstion>

  • Für Image-Bundles
    mgpkg copy -b projects.registry.vmware.com/…/< image-bundle_name:version> —to-tar=<$HOME/< image_folder_name>.tar
    ‘# image-bundle auf die VM mit dem Zugang zur Registry kopieren
    imgpkg copy –tar < path_to_image_file>.tar –to-repo <interne_harbor/image-name> —debug

Supervisor Service Manifest Datei

Nachdem die Image-Bundels bereitgestellt sind, müssen die Manifest Dateien mit dem Link von der internen Registry zum Image-Bundle ergänzt werden.

Ein Beispiel aus harbor.yml Manifest Datei
Ein Beispiel aus contour.yml Manifest Datei

Jetzt können die Supervisor Services, die als Image bereitgestellt sind, aktiviert und installiert werden.

Ergänzung des kapp-controller-config secret

Um einen Supervisor Service, die als Image-Bundle bereitgestellt ist, installieren zu können, muss das secret “kapp-controlle-config” mit dem Link der internen Registry ergänzt werden. Dies sollte aus einer Supervisor Control Plane VM gemacht werden.

kubectl -n vmware-system-appplatform-operator-system edit secrets kapp-controller-config

Die kapp-controller-config soll so aussehen, wie auf dem Bild.

Harbor FQDN (im Screenshot gelb markiert) hinzufügen, danach alle Links, die definiert sind, base64 encoden und den Wert (im Screenshot grün markiert) hinzufügen z.B.: echo ‘docker-registry.kube-system.svc.cluster.local,harbor.intern.net’ | base64

Jetzt können die Supervisor Services, die als Image-Bundles bereitgestellt sind, aktiviert und installiert werden. Dann den weiteren Installationsschritten auf der VMware Website folgen und die Supervisor Services auch in air gapped Umgebungen genießen. Nach der Supervisor Cluster Aktualisierung müssen die Änderungen auf der kapp-controller-config wiederholt werden.

Wenn auch Sie mit Herausforderungen in Ihrer Infrastruktur kämpfen wenden Sie sich gerne an unser Team und lassen Sie uns gemeinsam eine Lösung finden.

Muhamed Ahmovic

Technischer Presales

Muhamed ist verantwortlich für die Konzeption, Planung und Umsetzung von IT-Lösungen mit dem Schwerpunkt auf VMware, Storages und Microsoft. Falls Sie Fragen zu Verschlüsselungstechnologien haben, sind Sie bei ihm an der richtigen Stelle.

Muhamed Ahmovic