Plataforma de automatización de Dell: Problemas de actualización El vault del portal no se inicia
Resumen: En este artículo, se describe la solución para los problemas de actualización de la plataforma de automatización de Dell cuando los pods de Portal Vault no están disponibles.
Síntomas
Es posible que los usuarios experimenten problemas debido a un webhook mutante conflictivo durante la actualización de Dell Automation Platform.
El primer síntoma es que la actualización se bloquea durante mucho tiempo (más de 25 minutos) en el paso del PORTAL ChartKey despliegue. El registro de instalación principal muestra lo siguiente:
... Orchestrator chart exists. Skip unarchive... Portal chart exists. Skip unarchive... Portal Installation has started OperationType: INSTALL OperationStatus: IN_PROGRESS ChartKey: PORTAL
Por lo general, este problema bloquea la actualización en un momento en que la implementación del vault del portal aparece en la lista de pods. El vault muestra 2/3 estados READY para dos de sus implementaciones. Gustar:
#kubectl get po -A ... dapp edgevault-0 3/3 Running 0 30m dapp edgevault-1 2/3 Running 0 30m dapp edgevault-2 2/3 Running 0 30m ...
Los registros muestran que el vault no se puede comunicar entre los nodos:
2025-10-30T15:27:26.896Z [INFO] core: attempting to join possible raft leader node: leader_addr=http://edgevault-2.edgevault-internal:8200 2025-10-30T15:27:26.900Z [ERROR] core: failed to retry join raft cluster: retry=2s err="failed to send answer to raft leader node: error bootstrapping cluster: cluster already has state" 2025-10-30T15:27:28.664Z [ERROR] core: failed to get raft challenge: leader_addr=http://edgevault-1.edgevault-internal:8200 error="error during raft bootstrap init call: context deadline exceeded" 2025-10-30T15:27:28.664Z [ERROR] core: failed to get raft challenge: leader_addr=http://edgevault-0.edgevault-internal:8200 error="error during raft bootstrap init call: context deadline exceeded"
Causa
La causa raíz de este problema es el webhook mutante en conflicto en Orchestrator, que interfiere con el portal.
Este conflicto surge cuando el webhook mutante de Orchestrator no está configurado correctamente, lo que hace que el sidecar no pueda cifrar el tráfico saliente. Como resultado, la lógica de terminación SSL no puede manejar correctamente el tráfico, lo que provoca un caos en el espacio de nombres. Por lo general, este problema se produce en instalaciones que se instalaron inicialmente con NativeEdge Orchestrator (NEO) 2.2 o versiones anteriores y, luego, se actualizaron posteriormente.
Explicación
Un webhook mutante es una característica de Kubernetes que permite la modificación de recursos, como pods, antes de que se creen o se actualicen. En el contexto de Dell Automation Platform, el webhook mutante de Orchestrator desempeña un papel crucial en la inyección de sidecars en los pods. Históricamente, las instalaciones se realizaban en un solo espacio de nombres, lo que eliminaba la necesidad de un selector de espacio de nombres. Sin embargo, con las versiones más recientes, se requiere un selector de espacio de nombres para evitar que el webhook mutante de Orchestrator interfiera con otros componentes. Esto garantiza que la inyección de sidecar se produzca dentro del espacio de nombres correcto.
Resolución
Para resolver este problema, es esencial modificar la configuración de webhook mutante de Orchestrator antes de iniciar el proceso de actualización.
- Revertir a la instantánea previa a la actualización
- Elimine los datos del punto de control de
ConfigMaps. Esto ayuda a garantizar un proceso de actualización limpio y exitoso. Para quitar elConfigMaps, utilice los siguientes comandos:
#kubectl get cm -A | grep check hzp checkpoint-data 7 31m #kubectl delete cm checkpoint-data -n hzp
Corrección del webhook:
Antes de iniciar (o reiniciar) la actualización, agregue la siguiente entrada a la carpeta webhooks.namespaceSelector.matchExpressions en la configuración de webhook mutante de Orchestrator:
kubectl edit mutatingwebhookconfigurations hzp-iam-sidecar-injector
Busque la siguiente sección:
....
namespaceSelector:
matchExpressions:
...
En caso de que esta sección no contenga este fragmento, agréguelo. ¡La sangría es importante!
- key: kubernetes.io/metadata.name
operator: In
values:
- hzp
Esto evita que el webhook mutante del orquestador interfiera en el portal. Cuando se aplica, la inyección de sidecar no se aplica para el espacio de nombres "portal". Esto resuelve el problema presente en todos los pods.