Antes de comenzar
Antes de migrar de modo sidecar a modo ambient, verifica que tu entorno cumple con los requisitos y crea una copia de seguridad de tu configuración actual.
Contexto: cómo cambia la aplicación de políticas
Comprender las diferencias clave entre la aplicación de políticas en modo sidecar y en modo ambient te permitirá anticipar los cambios necesarios en cada paso de la migración.
En modo sidecar:
- Las políticas usan un
selectorpara apuntar a pods por etiqueta. - El proxy sidecar de destino aplica tanto las políticas L4 como las L7.
- Una sola
AuthorizationPolicypuede coincidir con el principal de origen, método HTTP, path o header y aplicarse en el pod de destino.
En modo ambient:
- La aplicación L4 la maneja ztunnel, que se ejecuta en cada nodo.
- La aplicación L7 requiere un waypoint proxy desplegado por namespace o servicio.
- Las políticas aplicadas por un waypoint deben usar
targetRefsapuntando a unServiceoGateway, no a unselectorde pod. No puedes reutilizar políticas L7 basadas en selector tal como están. VirtualServicees Alpha en modo ambient. La migración aHTTPRoutees necesaria para la gestión de tráfico L7 estable.
Requisitos
- Una versión de Istio soportada
- Versión soportada de Kubernetes ()
- CRDs de Gateway API instalados (necesarios para los waypoint proxies)
Si aún no tienes instalados los CRDs de Gateway API, instálalos ahora:
Ten en cuenta que las CRD de la API de Gateway de Kubernetes no vienen instaladas por defecto en la mayoría de los clusteres de Kubernetes, así que asegúrate de que estén instaladas antes de usar la API de Gateway:
$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.6.1/standard-install.yamlVerificar tu instalación actual
Ejecuta los siguientes comandos para confirmar el estado de tu instalación de sidecar existente:
$ istioctl version
$ kubectl get pods -n istio-system
$ kubectl get namespaces -l istio-injection=enabledVerifica si hay instalaciones basadas en revisiones (si usas etiquetas istio.io/rev en lugar de
istio-injection):
$ kubectl get namespaces -l 'istio.io/rev'Auditar los recursos existentes
Lista los recursos de Istio en uso en tu clúster:
$ kubectl get virtualservice,destinationrule,authorizationpolicy,requestauthentication,peerauthentication,envoyfilter,wasmplugin -AVerifica qué recursos AuthorizationPolicy contienen reglas L7. Estos requerirán waypoint
proxies para funcionar en modo ambient:
$ kubectl get authorizationpolicy -A --no-headers | while read ns name rest; do
if kubectl get authorizationpolicy "$name" -n "$ns" -o yaml | grep -qE "(methods:|paths:|headers:|action: CUSTOM|action: AUDIT)"; then
echo "$ns/$name"
fi
doneVerifica los recursos PeerAuthentication con mode: DISABLE, que no son compatibles
con el modo ambient:
$ kubectl get peerauthentication -A -o yaml | grep -A2 "mtls:"Cualquier PeerAuthentication con mode: DISABLE debe eliminarse o cambiarse antes de la migración,
ya que el modo ambient siempre aplica mTLS entre los workloads de la mesh.
Los recursos PeerAuthentication con mode: STRICT o mode: PERMISSIVE no son bloqueadores,
pero se vuelven redundantes después de la migración: el modo ambient aplica mTLS mediante ztunnel independientemente de
estas políticas. Puedes eliminarlos de forma segura una vez completada la migración.
Hacer una copia de seguridad de tu configuración
Antes de hacer cualquier cambio, exporta tu configuración de Istio actual:
$ kubectl get virtualservice,destinationrule,authorizationpolicy,requestauthentication,peerauthentication,gateway,httproute,telemetry -A -o yaml > istio-config-backup.yaml
$ kubectl get namespaces -o yaml > namespace-backup.yamlGuarda estas copias de seguridad en un lugar seguro fuera del clúster.
Configurar el monitoreo de tráfico (opcional)
Usa Kiali u otra herramienta de observabilidad para capturar una línea base de tus patrones de tráfico actuales antes de hacer cambios. Consulta Kiali para las instrucciones de configuración.
Próximos pasos
Continúa con Instalar componentes ambient.