---
# source: blog-content: posts/de/how-to-vsphere-supervisor-services.md
# route:  /de/insights/how-to-vsphere-supervisor-services/
title: vSphere Supervisor Services
date: 2024-12-22
author: yannick-gerber
locale: de
summary: In vSphere IaaS Control Plane (ehem. vSphere with Tanzu) gibt es Supervisor Services.
capabilities: [containers]
vendors: [vmware]
series: how-to
hero: /blog-assets/how-to-vsphere-supervisor-services/hero.webp
legacySlug: how-to-vsphere-supervisor-services
migrated: 2026-08-24
draft: false
---

In vSphere IaaS Control Plane (ehem. vSphere with Tanzu) gibt es Supervisor Services. Mithilfe von Supervisor Services lassen sich Kubernetes Deployments direkt auf dem vSphere Namespace ausführen, somit ist kein Kubernetes Guest Cluster mehr nötig und die Pods laufen mithilfe der vSphere CRX Runtime direkt auf dem ESXi Host.

Standardmässig aktiv ist der TKG Services, welcher verwendet wird, um Kubernetes Guest Cluster auf einem vSphere Namespace bereitzustellen.

Weitere Supervisor Services sind:

-   [Consumption Interface](https://github.com/vsphere-tmm/Supervisor-Services#consumption-interface)
-   [vSAN Data Persistence Platform (vDPP) Services:](https://github.com/vsphere-tmm/Supervisor-Services#vsan-data-persistence-platform-vdpp-services)
-   [Backup & Recovery Service](https://github.com/vsphere-tmm/Supervisor-Services#backup--recovery-service)
-   [Certificate Management Service](https://github.com/vsphere-tmm/Supervisor-Services#certificate-management-service)
-   [Cloud Native Registry Service](https://github.com/vsphere-tmm/Supervisor-Services#cloud-native-registry-service)
-   [Kubernetes Ingress Controller Service](https://github.com/vsphere-tmm/Supervisor-Services#kubernetes-ingress-controller-service)
-   [External DNS Service](https://github.com/vsphere-tmm/Supervisor-Services#external-dns-service)
-   [NSX Management Proxy](https://github.com/vsphere-tmm/Supervisor-Services#nsx-management-proxy)
-   [Data Services Manager Consumption Operator](https://github.com/vsphere-tmm/Supervisor-Services#data-services-manager-consumption-operator)

# Installation eines Supervisor Service

Ein Supervisor Service besteht grundsätzlich aus zwei YAML Manifests:

-   Ein Installation-Manifest zur Registrierung des Supervisor Service
-   Ein Konfigurations-Manifest zur Installation der Services auf dem Supervisor (Values File)

> In dieser Anleitung wird NSX und Antrea als CNI verwendet.
> 
> Einige Supervisor Services setzen NSX voraus (z.B Velero).

## Contour Ingress Controller

-   Download Contour Service: [Contour v1.28.2](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=contour/v1.28.2/contour.yml)
-   Download Contour Values: [values for all versions](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=contour/v1.24.4/contour-data-values.yml) (bei Contour muss das Value File nicht angepasst werden)

Unter *Workload Management* wird der Service hinzugefügt:

![](/blog-assets/how-to-vsphere-supervisor-services/01.webp)

Bei der Service Registrierung wird nun das YAML File von Contour angegeben (dieser wird nicht weiter angepasst)

Hier wird das [Contour v1.28.2](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=contour/v1.28.2/contour.yml) File angegeben:

![](/blog-assets/how-to-vsphere-supervisor-services/02.webp)

Der Service wird nun registriert:

## ![](/blog-assets/how-to-vsphere-supervisor-services/03.webp)

Nach der Registrierung muss der Service noch auf dem Supervisor Installiert werden – das Contour noch auf keinem Supervisor Service installiert ist, sieht man anhand der «0» bei Supervisors:

*Actions > Install on Supervisors*

![](/blog-assets/how-to-vsphere-supervisor-services/04.webp)

Nun muss das *contour-data-values.yml* angegeben werden:

![](/blog-assets/how-to-vsphere-supervisor-services/05.webp)

Sobald Contour eine externe IP erhält (auf dem envoy Service), ist der IngressController richtig  installiert:

![](/blog-assets/how-to-vsphere-supervisor-services/06.webp)

## Harbor Container Registry als Supervisor Service

Als Voraussetzung für Harbor muss Contour bereits installiert sein.

-   Download Harbor Service: [Harbor v2.9.1](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=harbor/v2.9.1/harbor.yml)
-   Download Harbor Values File: [v2.9.1](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=harbor/v2.9.1/harbor-data-values.yml).

Registrierung von Harbor als Supervisor Service:

![](/blog-assets/how-to-vsphere-supervisor-services/07.webp)

Hier wird folgendes YAM eingegeben: [Harbor v2.9.1](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=harbor/v2.9.1/harbor.yml)

![](/blog-assets/how-to-vsphere-supervisor-services/08.webp)

Installation auf dem Supervisor:

![](/blog-assets/how-to-vsphere-supervisor-services/09.webp)

Bei Harbor muss das Value Yaml ([v2.9.1](https://vmwaresaas.jfrog.io/ui/api/v1/download?repoKey=supervisor-services&path=harbor/v2.9.1/harbor-data-values.yml)) zwingend angepasst werden:

-   Hostname
-   StorageClass
-   Passwörter und Secrets

![](/blog-assets/how-to-vsphere-supervisor-services/10.webp)

Nach der Installation auf dem Supervisor wird ein eigener vSphere Namespace für Harbor erstellt:

![](/blog-assets/how-to-vsphere-supervisor-services/11.webp)

Da Harbor Contour als IngressController benötigt, muss ein DNS Eintrag auf die IP (vom envoy Service) mit der im Harbor Values File definierten Hostnamen erstellt werden:

In unserem Fall: *10.177.4.12 -> registry.soultec.lab*

![](/blog-assets/how-to-vsphere-supervisor-services/12.webp)

![](/blog-assets/how-to-vsphere-supervisor-services/06.webp)

Das Harbor UI ist nun erreichbar (Login mittels im harbor-values.yaml spezifizierten Passwort – in diesem File lässt sich auch das TLS Zertifikat ändern)

![](/blog-assets/how-to-vsphere-supervisor-services/13.webp)

### Installation ArgoCD Operator als Supervisor Service

Mittel dem ArgoCD Operator lassen sich ArgoCD Instanzen als vSphere Pods in einem vSphere Namespace installieren:

Zuerst muss der ArgoCD Operator als Supervisor Service installiert werden.

-   Download Supervisor Service: [ArgoCD Operator v0.12.0](https://github.com/vsphere-tmm/Supervisor-Services/blob/main/supervisor-services-labs/argocd-operator/v0.12.0/argocd-operator.yaml)
-   Download Values File: [values.yaml](https://github.com/vsphere-tmm/Supervisor-Services/blob/main/supervisor-services-labs/argocd-operator/v0.12.0/values.yaml) (erfordert keine Anpassung, sofern quay.io vom vSphere Namespace erreicht werden kann)

Nach erfolgter Registrierung und Installation auf dem Supervisor, wird ein vSphere Namespace mit einem Pod erstellt – dies ist lediglich der ArgoCD Operator (noch keine ArgoCD Instanz):

![](/blog-assets/how-to-vsphere-supervisor-services/14.webp)

### Installation einer ArgoCD Instanz innerhalb eines vSphere Namespace

ArgoCD Deployment:  [argocd-instance.yaml](https://github.com/vsphere-tmm/Supervisor-Services/blob/main/supervisor-services-labs/argocd-operator/argocd-instance.yaml)

Die ArgoCD Instanz wird direkt in einem vSphere Namespace installiert. Dazu per kubectl auf den vSphere Namespace einloggen und der kubectl Kontext setzen:

```bash

kubectl vsphere login --server <Supervisor-VIP> -u user@vsphere.local

kubectl config use-context <vSphere-Namespace>
```

Danach kann das Deployment (anhand [argocd-instance.yaml](https://github.com/vsphere-tmm/Supervisor-Services/blob/main/supervisor-services-labs/argocd-operator/argocd-instance.yaml)) erstellt werden – das File muss nicht angepasst werden:

```bash

kubectl apply -f argocd-instance.yaml
```

Überprüfen der vSphere Pods:

```bash

kubectl get pods --watch
```

Sobald alle Pods laufen, sollte auch eine externe IP für den LoadBalancer zur Verfügung stehen:

```bash
 kubectl get svc --watch 
```

![](/blog-assets/how-to-vsphere-supervisor-services/15.webp)

Nun sollte ein DNS Eintrag auf diese IP erstellen.

In unserem Fall: *10.177.4.18 -> argocd.soultec.lab*

#### Initial ArgoCD Admin Login

Das initiale ArgoCD Passwort für den user «admin» befindet sich in eine Kubernetes Secret:

```bash

kubectl get secret stlab-argocd-cluster -o jsonpath='{.data.admin\.password}' | base64 -d
```

Nun kann ArgoCD via UI verwaltet werden.

![](/blog-assets/how-to-vsphere-supervisor-services/16.webp)

Die ArgoCD Konfiguration (SSO, RBAC etc) erfolg über [ConfigMaps](https://ygerber.online/post/argocd-configuration/). Diese ConfigMaps lassen sich auch via ArgoCD ausrollen, so verwaltet sich ArgoCD gleich selbst. Auch lassen sich Default Kubernetes Services (z.B. cert-manager, InGuestCluster IngressController) ausrollen. Hier ist der Ansatz «ArgoCD App of Apps» sehr interessant. Dazu in einem anderen Blog Post mehr.

# Fazit

Supervisor Services sind intuitiv und einfach, um Kubernetes Deployment direkt auf einem vSphere Namespace zu installieren. Mit Harbor als Container Registry und ArgoCD sind die Grundsteine für Continuous Deployment gelegt.
