Die Charts
vantage-operator und vantage-selfhosted müssen dieselbe Version verwenden. Die Beispiele auf dieser Seite verwenden für beide Charts die Version 0.70.13.Referenzarchitektur
Unterstützte und getestete Komponentenversionen finden Sie unter Kompatibilität. Das vollständige Infrastrukturinventar und die Dimensionierungsgrundlage finden Sie unter Voraussetzungen.
Bevor Sie beginnen
Sie benötigen außerdem:
- Einen DNS-Eintrag für
$your_vantage_hostname, der auf Ihren Ingress-Einstiegspunkt verweist. - Ein gültiges TLS-Zertifikat für diesen Hostnamen.
- Kubernetes-Registry-Pull-Secrets, wenn Ihre Registry eine Authentifizierung erfordert.
- Jedes Anwendungs-Secret, das unter Secret aliases aufgeführt ist.
- Einen eindeutigen logischen Datenbanknamen für jeden Datenbankalias. Der Migrator jedes Service erstellt seine Datenbank beim ersten Ausführen.
- Knoten mit Labels für TechCore-Worker.
Cluster vorbereiten
ArgoCD konfigurieren
Application-Manifest abzulegen.
Service Mesh konfigurieren
$install_namespace, bevor Sie Vantage installieren.
Zum Beispiel mit Linkerd:
TechCore-Worker-Knoten konfigurieren
Pending. Informationen zur Isolierung von Training-Workern und zur Dimensionierungsgrundlage finden Sie unter Kubernetes-Knotenanforderungen.
Persistenten Speicher konfigurieren
StorageClass, bevor Sie Vantage installieren. Die Speicherimplementierung muss Ihre Anforderungen an Produktionsverfügbarkeit, Datenbeständigkeit, Kapazität, Erweiterbarkeit, Backup und Wiederherstellung erfüllen.
Geben Sie sie in den Vantage-Werten an:
StorageClass ist unabhängig von der Kubernetes-Distribution. Übernehmen Sie die lokale StorageClass eines Entwicklungsclusters nicht in die Produktion, ohne zuvor die Ausfall- und Failover-Eigenschaften zu bewerten.
Datenbanken vorbereiten
SqlServer und PostgreSQL. Ein Wert wie Postgresql oder PostgreSql kann zur Laufzeit fehlschlagen, weil er nicht mit dem Data-Provider-Namen der Anwendung übereinstimmt.
Jeder Vantage-Service muss eine eigene logische Datenbank verwenden. Services führen ihre eigenen Migrationen aus, und wenn mehrere Services auf dieselbe Datenbank verweisen, geraten ihre Migrationszustände in Konflikt. Verwenden Sie die Datenbankübersicht unter Datenbankaliasen, um Datenbanknamen und Verbindungszeichenfolgen zu planen. Sie müssen die Datenbanken nicht manuell erstellen: Der Migrator des jeweiligen Service erstellt seine Datenbank beim ersten Start.
PostgreSQL-Verbindungszeichenfolgen müssen einzeilig sein und dürfen weder führende noch nachgestellte oder eingebettete Zeilenumbruchzeichen enthalten.
Kubernetes Secrets vorbereiten
Secret-Ressourcen aus $install_namespace. Vantage stellt keine direkte Verbindung zu Vault oder einem anderen externen Speicher für Secrets her. Wenn Sie External Secrets Operator, einen CSI-Treiber oder ein anderes Synchronisierungstool verwenden, konfigurieren Sie es so, dass die erforderlichen Kubernetes Secrets vor der Installation von Vantage erstellt werden.
Wählen Sie den Kubernetes-Provider aus:
objects, um einem Alias ein anderes Secret zuzuordnen:
Database__ConnectionString verwenden, erstellen Sie für jeden Service ein separates Secret und ordnen Sie jeden Datenbankalias über vantage.secrets.kubernetes.objects zu. Ihr Secret-Management-System kann diese Secrets aus einer gemeinsamen Connection-String-Vorlage ableiten, aber jede daraus erzeugte Connection-String muss eine andere Datenbank angeben.
Der Operator validiert die Secrets-Konfiguration bei der Vorabprüfung. Die aufeinander abgestimmten Charts
vantage-operator und vantage-selfhosted gewähren dem Operator über eine ClusterRole Lesezugriff auf Secrets, die nur im Namespace des Vantage-Release gebunden ist. Wenn Sie den Operator-Namespace oder das Controller-ServiceAccount anpassen, achten Sie darauf, dass die entsprechenden operator-Werte im Vantage-Chart mit dieser Installation übereinstimmen. Eine benutzerdefinierte resourceNames-Einschränkung muss jedes Secret enthalten, auf das der Kubernetes-Provider verweist.Registry-Zugriff konfigurieren
Erstellen Sie Registry-Secrets in dem Namespace, in dem der jeweilige Nutzer ausgeführt wird. Speichern Sie keine Registry-Kennwörter im Klartext in Ihrer Values-Datei.
Geben Sie für die OCI-Migration die Secrets für die Anmeldedaten der Quell- und Ziel-Registry an:
imagePullSecrets des ServiceAccount hinzu, der durch vantage.serviceAccountName angegeben ist und als Standard-ServiceAccount für Vantage-Workloads dient.
Wenn ein Komponenten-Pod unter einem anderen ServiceAccount ausgeführt wird, benötigt auch dieser ServiceAccount Pull-Zugriff auf die Registry. Prüfen Sie den
spec.serviceAccountName des Pods, bevor Sie den default-ServiceAccount des Namespace ändern.Autoskalierung und Metriken konfigurieren
scaler-Feld entfernt, das von den aktuellen Vantage-Workload-Charts verwendet wird; daher können die erforderlichen HPAs nicht erstellt werden.
Einige Vantage-ScaledObject-Ressourcen fragen Prometheus unter dieser festen Adresse ab:
- Installieren Sie KEDA 2.17.3.
- Installieren Sie Prometheus Operator und eine Prometheus-Instanz im Namespace
observability. - Vergewissern Sie sich, dass der zugehörige Service
prometheus-operatedheißt und Port9090verfügbar macht. - Konfigurieren Sie Prometheus so, dass es den
ServiceMonitorvon Vantage erkennt.
Vantage-Ressource und aktivieren Sie den ServiceMonitor des Charts über den separaten observability-Abschnitt auf oberster Ebene:
observability ist ein Top-Level-Schlüssel; verschachteln Sie ihn nicht unter vantage. Informationen zu Trigger-Strategien, Verifizierung und Kapazitätsplanung finden Sie unter Automatische Skalierung mit KEDA. Informationen zur mesh-spezifischen Scraping-Konfiguration finden Sie unter Überwachung mit Prometheus.
Ingress und TLS konfigurieren
- HTTPS für
vantage.dnsRecordmit einem vertrauenswürdigen Zertifikat terminieren. - die Pfade für Vantage-UI, API, Authentifizierung, Hilfe, SCIM, URL-Shortener, Workspace, Verifizierung und Try Any Skill an die entsprechenden Services weiterleiten.
- die von Vantage verwendeten Rewrites für
/api/vN/nach/publicapi/vN/,/api/, SCIM und Heartbeat anwenden. - spezifischere Routen vor der Catch-all-Route der UI abgleichen.
- den ursprünglichen Host und das ursprüngliche Schema weiterleiten, einschließlich
X-Forwarded-Proto: https, wenn TLS am Ingress-Controller terminiert wird.
IngressRoute und geordneten Middleware-Ressourcen um. Behandeln Sie das Routenmanifest als versionierte Vantage-Konfiguration: Parametrisieren Sie den Hostnamen, den Namespace, das Zertifikats-Secret und die generierten Service-Namen für Ihr Release, anstatt Werte aus einer anderen Umgebung zu übernehmen.
Routing-Kontrakt
$install_namespace und implementieren Sie dann diese Routen in der aufgeführten Reihenfolge. Regex- und exakte Routen müssen Vorrang vor Präfix- und Catch-all-Routen haben.
Der integrierte Istio-Ingress des Charts blockiert außerdem
/api/status und /api/status/config, die interne Statusinformationen offenlegen, die Clients nicht benötigen. Das Blockieren dieser Pfade wird empfohlen, ist aber für den Betrieb von Vantage nicht erforderlich. Wenn Ihr Ingress-Controller keine direkte Ablehnungsantwort zurückgeben kann, können Sie diese Pfade vor der allgemeinen /api-Regel an ein dediziertes Deny-Backend weiterleiten.
Weitergeleitetes HTTPS-Schema
X-Forwarded-Proto auswerten. Stellen Sie sicher, dass die folgende Umgebungsvariable in den Anwendungs-Containern für auth-identity, auth-adminapi2, api-gateway und api-registry vorhanden ist:
http://-Endpoints ausweisen, und die Browser-Anmeldung schlägt fehl.
Installieren Sie den Operator
--wait zum Befehl hinzu:
Vantage installieren
vantage-selfhosted-Chart:
Installation überwachen
Ready meldet:
Ready:
Ready meldet:
- Jede generierte ArgoCD-Anwendung ist
SyncedundHealthy. - Die Vantage-Pods laufen und sind mesh-injiziert.
- Prometheus meldet die Vantage-
/metrics-text-Targets alsUP. - KEDA-
ScaledObject-Ressourcen sindReady, und die HPA-Metrikwerte sind nicht<unknown>. - Das OIDC-Discovery-Dokument und die Browser-Weiterleitungen verwenden
https://-URLs. - Vantage ist unter
https://$your_vantage_hostnameverfügbar.
Wie geht es weiter
Secrets
Kubernetes-Secret-Aliase, Schlüsselpaare für die Authentifizierung und Datenbank-Verbindungsstrings.
Überwachung
Konfigurieren Sie Prometheus so, dass Metriken von Vantage über das Service Mesh abgerufen werden.
Fehlerbehebung
Diagnostizieren Sie Ausfälle von Operator, Datenbank, Registry, Ingress und Autoskalierung.
Upgrade
Aktualisieren Sie den Operator und die Vantage Charts gemeinsam.
