Supervisor Services in Air Gapped Umgebungen deployen

Um Supervisor Dienste in vSphere with Tanzu ohne Internetzugang einzurichten muss man kreativ vorgehen.

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.

In diesem Dokumet sind die Konfigurationsschritte für vSphere with Tanzu v8 beschrieben.

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:

minio-supervisorservice-2.0.0.yml – hat mehrere Images (keine Image-Bundles) definiert:

Images und Image-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 <image_name: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
imgpkg 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.

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:

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

+49 172 629 6400
amuhamed@spirit21.com

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.