Notas de Cambios de Istio 1.27.0
Notas de versión de Istio 1.27.0.
Gestión de tráfico
Actualizada la distribución del tráfico para ignorar la subzona cuando el campo
trafficDistributiondel Kubernetes Service está configurado comoPreferClose. (Issue #55848)Añadido soporte para múltiples certificados de servidor en gateway (istio y Gateway API). (Issue #36181)
Añadido soporte alfa para especificar
ServiceScopeen MeshConfig en configuraciones de ambient multiclúster.ServiceScopepermite seleccionar servicios individuales o servicios en un namespace para que sean globales o locales. Un servicio con ámbito local solo es descubrible por el data plane en el mismo clúster que el servicio. Un servicio local no es descubrible por los data planes de otros clústeres. Un servicio con ámbito global es descubrible por los data planes de todos los clústeres. Definir selectores paraserviceScopeConfigsdetermina qué servicios y workloads se comparten con el data plane y qué clústeres y listeners se configuran para los waypoints (incluidos los gateways e/w) en la mesh.Añadido el feature flag
EnableGatewayAPICopyLabelsAnnotationspara permitir a los usuarios elegir si los recursos de despliegue heredarán atributos del recurso padre de Gateway API. Esta función está habilitada por defecto.Añadido soporte para
PreferSameNodeyPreferSameZoneen el campotrafficDistributiondel Kubernetes Service. (Issue #55848)Añadidas las variables de entorno de Pilot
PILOT_IP_AUTOALLOCATE_IPV4_PREFIXyPILOT_IP_AUTOALLOCATE_IPV6_PREFIXpara configurar el prefijo CIDR de IP para las IPs autoasignadas. Esto permite a los usuarios establecer un rango específico de IPs para la autoasignación, proporcionando más control sobre el espacio de IPs usado para VIPs por el controlador ipallocate.Añadido el registro del namespace y nombre de un secreto cuando un certificado no es válido. (Issue #56651)
Añadido soporte para Gateway API Inference Extension. Esta función está desactivada por defecto y puede habilitarse con la variable de entorno
SUPPORT_GATEWAY_API_INFERENCE_EXTENSION. (Issue #55768)Añadido soporte para operaciones de fusión al aplicar a
LISTENER_FILTERen EnvoyFilter.Añadido el feature
ENABLE_LAZY_SIDECAR_EVALUATIONque permite la inicialización diferida de recursos de sidecar, calculando los índices internos solo cuando losSidecarScopesson efectivamente usados por un proxy. Este feature reemplaza al anteriorPILOT_CONVERT_SIDECAR_SCOPE_CONCURRENCY, que permitía la conversión concurrente con una concurrencia específica; en cambio,ENABLE_LAZY_SIDECAR_EVALUATIONusará la misma concurrencia quePILOT_PUSH_THROTTLE.Añadido soporte para
nftablesnativo cuando se usa el modo sidecar de Istio. Esta actualización permite usarnftablesen lugar de iptables para gestionar reglas de red, ofreciendo un enfoque más eficiente para la redirección del tráfico de pods y servicios. Para habilitar el modonftables, usa--set values.global.nativeNftables=truedurante la instalación. (Issue #56487)Añadido soporte para especificar el modo de distribución del tráfico para los servicios. (Issue #53354)
Añadido el feature
ENABLE_PROXY_FIND_POD_BY_IPque permite la asociación de Pods a Proxies por dirección IP si la asociación por nombre y namespace falla.Añadido soporte para el presupuesto de reintentos en los recursos
DestinationRule.Corregido un problema donde el leader election del controlador de estado de gateway no se ejecutaba por revisión, lo que podía causar problemas en configuraciones con múltiples revisiones. El leader election ahora está correctamente limitado a cada revisión, garantizando que el controlador de estado del gateway opere de forma independiente para cada revisión. (Issue #55717)
Corregido un problema donde las rutas de virtual service eran ignoradas cuando el virtual service estaba configurado con hosts que contenían letras en mayúsculas y minúsculas mezcladas. (Issue #55767)
Corregida una regresión en Istio 1.26.0 que causaba un panic en istiod al procesar nombres de host de Gateway API. (Issue #56300)
Corregido un problema donde mTLS se deshabilitaba inesperadamente cuando
PILOT_ENABLE_TELEMETRY_LABELoPILOT_ENDPOINT_TELEMETRY_LABELse establecían enfalse. (Issue #56352)Corregido un problema donde las reglas de iptables de la red de host de ambient eran omitidas debido a reglas CNI de mayor prioridad en algunos despliegues. (Issue #56414)
Corregido un problema donde
EnvoyFiltercontargetRefscoincidía con recursos incorrectos. (Issue #56417)Corregido el índice de ambient para filtrar configuraciones por su revisión. (Issue #56477)
Corregido un problema donde la etiqueta
topology.istio.io/networkno se omitía correctamente en el namespace del sistema cuando se usabandiscoverySelectors. (Issue #56687)Corregido un problema donde el plugin CNI manejaba incorrectamente la eliminación de pods cuando el pod aún no estaba marcado como inscrito en la mesh. En algunos casos, esto podía causar que un pod eliminado se incluyera en el snapshot ZDS y nunca se limpiara. Si esto ocurría, ztunnel no podía estar listo. (Issue #56738)
Corregido un problema donde la configuración de rutas de salida de Istio no incluía el nombre de dominio absoluto (nombre de dominio completamente calificado con punto final) en la lista de dominios para las entradas
VirtualHost. Este cambio garantiza que las solicitudes que usan nombres de dominio absolutos (que terminan con un punto, p. ej.,my-service.my-ns.svc.cluster.local.) se enruten correctamente al servicio previsto en lugar de recaer enPassthroughCluster. (Issue #56007)
Seguridad
Añadido soporte para omitir la claim del emisor en los tokens JWT. Se requiere la claim del emisor o un
JWKSUri, pero no ambos. Esto permite configuraciones más flexibles al usar tokens JWT para autenticación, especialmente en escenarios donde la claim del emisor puede ser dinámica. (Issue #14400)Añadida una función opt-in al usar istio-cni en modo ambient, para crear un archivo de configuración CNI propiedad de Istio que contiene el contenido del archivo de configuración CNI principal y el plugin de Istio CNI. Esta función opt-in es una solución al problema del tráfico que evita la mesh al reiniciar el nodo cuando el
DaemonSetde Istio CNI no está listo, el plugin de Istio CNI no está instalado o el plugin no se invoca para configurar la redirección del tráfico desde los pods hacia sus ztunnels de nodo. Esta función se habilita estableciendocni.istioOwnedCNIConfigen true en los valores del chart Helm de istio-cni. Si no se establece ningún valor paracni.istioOwnedCNIConfigFilename, el archivo de configuración CNI propiedad de Istio se llamará02-istio-cni.conflist. El valor deistioOwnedCNIConfigFilenamedebe tener una prioridad lexicográfica mayor que el CNI principal. Los plugins CNI encadenados y ambient deben estar habilitados para que esta función funcione.Añadida validación para el argumento de comando
--clusterAliasesde istioctl. No debe tener más de un alias por clúster. (Issue #56022)Añadido soporte para
ClusterTrustBundlemediante la migración decertificates.k8s.io/v1alpha1a la API establev1beta1en Kubernetes 1.33+. Esto mejora la compatibilidad y garantiza la vigencia del mecanismo de distribución de certificados de Istio en el futuro. (Issue #56306)Añadido soporte para proveedores externos de Secret Discovery Service (SDS) en la configuración TLS del Gateway. Istio ahora ofrece una integración mejorada con proveedores SDS externos para la gestión de certificados TLS en el Gateway. (Issue #56522)
Añadido soporte para listas de revocación de certificados (CRL) para CAs conectadas, habilitando a Istio para monitorear archivos
ca-crl.pemy distribuir automáticamente las CRL en todos los namespaces del clúster. Esta mejora permite a los proxies validar y rechazar certificados revocados, mejorando la postura de seguridad de los despliegues de service mesh que usan CAs conectadas. (Issue #56529)Añadida la opción de criptografía post-cuántica (PQC) a
COMPLIANCE_POLICY. Esta política aplica TLSv1.3, los cipher suitesTLS_AES_128_GCM_SHA256yTLS_AES_256_GCM_SHA384, y el intercambio de claves post-cuántico seguroX25519MLKEM768. Para habilitar esta política de conformidad en modo ambient, debe establecerse en los contenedores pilot y ztunnel. Esta política aplica a los siguientes flujos de datos:- comunicación mTLS entre proxies Envoy y ztunnels;
- TLS regular en el upstream y downstream de los proxies Envoy (p. ej., gateway);
- servidor xDS de Istio. (Issue #56330)
Corregido un problema donde los sidecars con la configuración antigua de
CLUSTER_IDno podían conectarse a istiod con la nueva configuración deCLUSTER_IDcuando se usaba el argumento de comando--clusterAliases. (Issue #56022)Corregido un problema en el feature
plugincadondeistiodregresaba silenciosamente a la CA auto-firmada si el bundlecacertsproporcionado estaba incompleto. El sistema ahora valida correctamente la presencia de todos los archivos CA requeridos y falla con un error si el bundle está incompleto.
Telemetría
Corregido un problema donde el dashboard de Grafana enlazaba al Istio Mesh Dashboard usando enlaces basados en rutas que ya no funcionan. Los enlaces de workload y servicio ahora usan UIDs de dashboard. (Issue #50124)
Corregido un problema donde los access logs no se actualizaban cuando el servicio referenciado se creaba después del recurso Telemetry. (Issue #56825)
Eliminado el soporte del proveedor de trazado
Lightstep. (Issue #54002)
Extensibilidad
- Añadida una opción para recargar la VM de Wasm en nuevas solicitudes si la VM ha fallado.
Instalación
Promovida la variable de entorno
ENABLE_NATIVE_SIDECARSpara que seatruepor defecto. Esto significa que los native sidecars se inyectarán en todos los pods elegibles a menos que se deshabiliten explícitamente. Se puede deshabilitar explícitamente o para workloads específicos añadiendo la anotaciónsidecar.istio.io/native-side: "false"a pods individuales o a plantillas de pod. (Issue #48794)Añadido el ajuste
values.global.trustBundleNameque permite configurar el nombre del ConfigMap que istiod usa para propagar su certificado CA raíz en el clúster. Esto permite ejecutar múltiples control planes con namespaces superpuestos en el mismo clúster.Añadido soporte para personalizar las etiquetas de habilitación de ambient. (Issue #53578)
Añadido soporte para configurar
additionalContainerseinitContainersen el chart Helm de Gateway.Añadido soporte para configurar toleraciones de ztunnel mediante los valores del chart Helm. (Issue #56086)
Añadido soporte para configurar toleraciones de istio-cni mediante los valores del chart Helm. (Issue #56087)
Añadidos valores predeterminados definidos para los divisores de
GOMEMLIMITyGOMAXPROCSpara corregir un problema de desfase perpetuo de Argo.Añadida la configuración de override de bootstrap para
gateway-injection-template. (Issue #28302)Añadido el valor Helm
ENABLE_NATIVE_SIDECARSen los perfiles de compatibilidad de Istio 1.24, 1.25 y 1.26, permitiendo a los usuarios deshabilitar la habilitación predeterminada de native sidecars.Añadido soporte para el protocolo proxy en el puerto de estado. (referencia) (Issue #39868)
Añadido el valor Helm
.Values.istiodRemote.enabledLocalInjectorIstiodpara dar soporte a la inyección de sidecar en clústeres remotos. Cuandoprofile=remote,.Values.istiodRemote.enabledLocalInjectorIstiod=truey.Values.global.remotePilotAddress="${DISCOVERY_ADDRESS}", el clúster worker remoto instalaistiodpara la inyección local de sidecar, mientras que XDS sigue siendo servido por el clúster primario remoto. (Issue #56328)Añadida la etiqueta
istio.io/reval servicio remoto de istio cuando se habilitaistiodRemote. (Issue #56142)Añadido soporte para
deploymentAnnotationsen el chart Helm de istiod. Los usuarios ahora pueden especificar anotaciones personalizadas para aplicar al objeto Deployment de istiod, además del soporte existente depodAnnotations. Esto es útil para la integración con herramientas de monitorización, flujos de trabajo de GitOps y sistemas de aplicación de políticas que operan a nivel de despliegue.Corregido un problema donde la variable de entorno
ISTIO_KUBE_APP_PROBERSno se establecía para las reescrituras de sondas cuando el webhook de Istio se reinvocaba. (Issue #56102)Corregido un problema donde las referencias a secretos en el env del chart Helm
istio/gatewayse renderizaban incorrectamente como cadena de texto. (Issue #55141)Corregido un fallo de inyección que ocurría cuando la plantilla
gatewayse combinaba con otra plantilla, comospire, que sobreescribeworkload-socket, resultando en que Kubernetes no creara otros volúmenes, como los con configuraciónemptyDirycsi.Corregido un panic en
istioctl manifest translatecuando la configuraciónIstioOperatorcontenía múltiples gateways. (Issue #56223)Corregida la asignación de UIDs y GIDs incorrectos para los contenedores
istio-proxyeistio-validationen clústeres OpenShift cuando el modo TPROXY estaba habilitado.Corregido un problema donde
ClusterTrustBundleno se configuraba correctamente cuandoENABLE_CLUSTER_TRUST_BUNDLE_APIestaba habilitado.Eliminados los valores Helm de multiclúster no utilizados.
istioctl
Añadido el flag
--kubeclient-timeouta los flags raíz deistioctl. Puede no establecerse o establecerse en una cadenatime.Durationválida. Cuando se especifica, sobreescribe el timeout predeterminado de15spara todos los comandos deistioctlque usan el cliente de Kubernetes. Esto es útil en entornos con servidores de API de Kubernetes lentos, como los que tienen alta latencia o bajo ancho de banda. Ten en cuenta que este flag solo se usa para el cliente de Kubernetes y no afecta a otros timeouts enistioctl, como los de instalación. (Issue #54962)Añadidos los flags
--revisionparaistioctl dashboard controlzeistioctl dashboard istiod-debug.Añadido soporte en el comando
istioctl proxy-statuspara mostrar dinámicamente todos los tipos xDS/CRD como columnas en la tabla de salida. (Issue #56005)Añadido soporte para personalizar el timeout de
istioctl waypoint statuseistioctl waypoint apply. (Issue #56453)Añadido soporte para mostrar
stack-trace-levelen el comandoistioctl admin log. (Issue #56465)Añadido soporte para mostrar
traffic typeen el comandoistioctl waypoint list.Añadido soporte para el parámetro
--weighten el comandoistioctl experimental workload group create.Añadido soporte para configurar el nivel de log de
ip-autoallocateenistioctl admin log. (Issue #55741)Corregido un problema donde, durante la instalación,
istio-revision-tag-defaultyMutatingWebhookConfigurationno se creaban cuando la revisión no era la predeterminada. (Issue #55980)Corregido un problema donde se generaban falsos positivos de IST0134 en
istioctl analyzecuandoPILOT_ENABLE_IP_AUTOALLOCATEestaba establecido entrue. (Issue #56083)Corregido un problema donde el análisis incluía los namespaces del sistema de Kubernetes (p. ej.,
kube-system,kube-node-lease). (Issue #55022)Corregido un problema donde
create-remote-secretcreaba recursos RBAC redundantes. (Issue #56558)