Los charts
vantage-operator y vantage-selfhosted deben usar la misma versión. Los ejemplos de esta página usan la versión 0.70.13 para ambos charts.Arquitectura de referencia
Para conocer las versiones de componentes compatibles y probadas, consulte Compatibilidad. Para ver el inventario completo de la infraestructura y la referencia base de dimensionamiento, consulte Requisitos previos.
Antes de comenzar
También necesita:
- Un registro DNS para
$your_vantage_hostnameque se resuelva al punto de entrada de su ingress. - Un certificado TLS válido para ese nombre de host.
- Secrets de extracción del registro de Kubernetes cuando su registro requiera autenticación.
- Cada Secret de la aplicación que aparece en Alias de Secret.
- Un nombre de base de datos lógico distinto para cada alias de base de datos. El migrador de cada servicio crea su base de datos en la primera ejecución.
- Nodos etiquetados para los workers de TechCore.
Preparar el clúster
Configurar ArgoCD
Application de ArgoCD.
Configure la malla de servicios
$install_namespace antes de instalar Vantage.
Por ejemplo, con Linkerd:
Configurar los nodos worker de TechCore
Pending. Para el aislamiento de training-worker y la base de referencia de dimensionamiento, consulte requisitos de los nodos de Kubernetes.
Configurar el almacenamiento persistente
StorageClass antes de instalar Vantage. La implementación de almacenamiento debe cumplir sus requisitos de producción en cuanto a disponibilidad, durabilidad, capacidad, expansión, copia de seguridad y recuperación.
Inclúyala en los valores de Vantage:
StorageClass es independiente de la distribución de Kubernetes. No copie la clase de almacenamiento local de un clúster de desarrollo a producción sin evaluar las características de pérdida de datos y conmutación por error.
Preparar las bases de datos
SqlServer y PostgreSQL. Un valor como Postgresql o PostgreSql puede fallar en tiempo de ejecución porque no coincide con el nombre del proveedor de datos de la aplicación.
Cada servicio de Vantage debe usar una base de datos lógica distinta. Los servicios ejecutan sus propias migraciones, y hacer que varios servicios apunten a una misma base de datos provoca conflictos en su estado de migración. Use el inventario de bases de datos en Alias de bases de datos para planificar los nombres de las bases de datos y las cadenas de conexión. No necesita crear las bases de datos manualmente: el migrador de cada servicio crea su base de datos en la primera ejecución.
Las cadenas de conexión de PostgreSQL deben estar en una sola línea, sin caracteres de nueva línea al principio, al final ni en medio.
Preparar secretos de Kubernetes
Secret nativos de Kubernetes en $install_namespace. Vantage no se conecta directamente a Vault ni a ningún otro almacén externo de secretos. Si usa External Secret Operator, un controlador CSI u otra herramienta de sincronización, configúrelo para que cree los secretos de Kubernetes necesarios antes de instalar Vantage.
Seleccione el proveedor de Kubernetes:
objects para asociar un alias con un Secret diferente:
ingress. Consulte Alias de certificados para conocer las claves y los formatos requeridos.
Cuando varios servicios consuman la clave genérica Database__ConnectionString, cree un Secret independiente para cada servicio y asigne cada alias de base de datos mediante vantage.secrets.kubernetes.objects. Su sistema de gestión de secretos puede generar estos Secret a partir de una plantilla común de cadena de conexión, pero cada cadena de conexión resultante debe especificar una base de datos distinta.
El operador valida la configuración de los secretos durante la comprobación previa. Los charts
vantage-operator y vantage-selfhosted correspondientes conceden al operador acceso de lectura a los Secret mediante un ClusterRole asociado solo en el namespace de la release de Vantage. Si personaliza el namespace del operador o la ServiceAccount del controlador, asegúrese de que los valores operator correspondientes en el chart de Vantage coincidan con esa instalación. Una restricción resourceNames personalizada debe incluir cada Secret al que haga referencia el proveedor de Kubernetes.Configurar el acceso al registro
Cree secrets del registro en el namespace donde se ejecuta cada consumidor. No incluya contraseñas del registro en texto sin formato en su archivo de valores.
Para la migración de OCI, haga referencia a los secrets de credenciales de origen y de destino:
imagePullSecrets de la ServiceAccount indicada por vantage.serviceAccountName, la ServiceAccount predeterminada de las cargas de trabajo de Vantage.
Si un pod de un componente se ejecuta con otra ServiceAccount, esa ServiceAccount también necesita acceso de extracción al registro. Comprueba
spec.serviceAccountName del pod antes de cambiar la ServiceAccount default del namespace.Configurar el autoescalado y las métricas
ScaledObject de Vantage consultan Prometheus en esta dirección fija:
- Instale KEDA 2.17.3.
- Instale Prometheus Operator y una instancia de Prometheus en el
namespaceobservability. - Confirme que el
Serviceasociado se llameprometheus-operatedy exponga el puerto9090. - Configure Prometheus para que descubra el
ServiceMonitorde Vantage.
Vantage y habilite el ServiceMonitor del chart mediante la sección independiente observability de nivel superior:
observability es una clave de nivel superior; no la anide dentro de vantage. Para las estrategias de activación, la verificación y la planificación de capacidad, consulte Escalado automático con KEDA. Para la configuración de scraping específica de la mesh, consulte Monitorización con Prometheus.
Configurar ingress y TLS
- Terminar HTTPS para
vantage.dnsRecordcon un certificado de confianza. - Enrutar las rutas de Vantage UI, API, autenticación, help, SCIM, acortador de URL, workspace, verificación y Try Any Skill a sus Services correspondientes.
- Aplicar las reescrituras de
/api/vN/a/publicapi/vN/,/api/, SCIM y heartbeat que usa Vantage. - Hacer coincidir las rutas más específicas antes de la ruta comodín de la UI.
- Reenviar el host y el esquema originales, incluido
X-Forwarded-Proto: httpscuando TLS termina en el controlador de ingress.
IngressRoute y resources de Middleware ordenados. Trate el manifiesto de rutas como una configuración versionada de Vantage: parametrice el nombre de host, el namespace, el Secret del certificado y los nombres de Service generados para su release, en lugar de copiar valores de otro entorno.
Contrato de enrutamiento
$install_namespace y luego implemente estas rutas en el orden indicado. Las rutas con regex y las exactas deben tener prioridad sobre las rutas por prefijo y las rutas comodín.
El
chart de ingress integrado de Istio también bloquea /api/status y /api/status/config, que exponen información interna de estado que los clientes no necesitan. Se recomienda bloquear estas rutas, pero no es obligatorio para ejecutar Vantage. Si su controlador de ingress no puede devolver una respuesta de denegación directa, puede enrutar estas rutas a un backend de denegación dedicado antes de la regla general de /api.
Protocolo HTTPS reenviado
X-Forwarded-Proto. Asegúrese de que la siguiente variable de entorno esté presente en los contenedores de la aplicación para auth-identity, auth-adminapi2, api-gateway y api-registry:
http:// y fallará el inicio de sesión en el navegador.
Instalar el operador
--wait:
Instalar Vantage
vantage-selfhosted correspondiente:
Supervisar la instalación
Ready:
Ready:
Ready:
- Cada aplicación de ArgoCD generada esté
SyncedyHealthy. - Los pods de Vantage estén en ejecución y con la inyección de mesh aplicada.
- Prometheus informe los objetivos de Vantage
/metrics-textcomoUP. - Los recursos
ScaledObjectde KEDA esténReadyy que los valores de las métricas de HPA no sean<unknown>. - El documento de descubrimiento de OIDC y las redirecciones del navegador usen URL con
https://. - Vantage esté disponible en
https://$your_vantage_hostname.
Qué sigue
Secrets
Alias de Secrets de Kubernetes, pares de claves de autenticación y cadenas de conexión de bases de datos.
Monitorización
Configure Prometheus para extraer métricas de Vantage a través de la malla de servicios.
Solución de problemas
Diagnostique fallos del operador, la base de datos, el registro, el ingress y el escalado automático.
Actualización
Actualice conjuntamente el operador y los charts de Vantage.
