Uso de Istio en clusters creados con Kubernetes Engine (OKE)
Descubra cómo utilizar Istio en los clusters que ha creado con Kubernetes Engine (OKE).
Istio es una malla de servicios independiente de la plataforma y de código abierto que proporciona gestión del tráfico, aplicación de políticas y recopilación de telemetría. Istio está diseñado para gestionar las comunicaciones entre microservicios y aplicaciones. Istio utiliza proxies de Envoy, desplegados como sidecars para los servicios subyacentes, para mediar todo el tráfico entrante y saliente para todos los servicios de la malla de servicios. Sin necesidad de realizar cambios en los servicios subyacentes, Istio proporciona resiliencia de tráfico base automatizada, recopilación de métricas de servicio, rastreo distribuido, cifrado de tráfico, actualizaciones de protocolo y funcionalidad de enrutamiento avanzado para toda la comunicación de servicio a servicio.
Istio utiliza gateways de entrada y salida para configurar equilibradores de carga que se ejecutan en el borde de una malla de servicios. Los gateways de entrada de Istio se implantan mediante el gateway de Kubernetes y los recursos VirtualService, y proporcionan una capa de gestión de tráfico consistente y de alto rendimiento en todos los servicios de la malla de servicios. Un gateway de entrada es un único punto de entrada en la malla de servicios a través del cual fluye todo el tráfico de solicitud HTTP y HTTPS entrante. El gateway de entrada enruta el tráfico al servicio adecuado según la solicitud. Del mismo modo, una puerta de enlace de salida define los puntos de salida de la malla de servicios.
Para obtener más información sobre Istio, consulte la documentación de Istio.
Puede desplegar Istio en un cluster de Kubernetes de dos formas:
- como un programa independiente (consulte Working with Istio as a Standalone Program)
- como complemento de cluster (consulte Trabajar con Istio como complemento de cluster)
Tenga en cuenta que los productos de malla de servicios (como Istio y Linkerd) están soportados al utilizar el plugin CNI de red de pod nativo de VCN de OCI para redes de pod. Tenga en cuenta que, a excepción del complemento Istio, el soporte actualmente está limitado a Oracle Linux 7 (está planificado el soporte de Oracle Linux 8). El complemento Istio es compatible con Oracle Linux 7 y Oracle Linux 8. Los nodos de trabajador deben ejecutar Kubernetes 1.26 (o posterior).
Puede utilizar Istio con pools de nodos gestionados, pero no con pools de nodos virtuales.
Uso de la API de gateway de Kubernetes
La API de gateway es un proyecto oficial de Kubernetes centrado en proporcionar recursos de API para el enrutamiento de capa 4 (L4) y capa 7 (L7) en Kubernetes. La API de gateway representa la próxima generación de API de entrada, equilibrio de carga y malla de servicios de Kubernetes.
Kubernetes Engine soporta la instalación de las definiciones de recursos personalizados (CRD) de la API de gateway, siempre que siga las instrucciones de la documentación de Introducción a la API de gateway. Por ejemplo, para instalar el canal estándar, utilice el siguiente comando:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yamlDespués de instalar las CRD de API de Gateway, puede utilizar Istio como un programa independiente o como un complemento de cluster para aprovechar el soporte de API de Gateway. Junto con el soporte para recursos de entrada de Kubernetes, Istio le permite configurar el tráfico de entrada mediante recursos de gateway de API de gateway. Los gateways proporcionan una personalización y una flexibilidad más amplias que los recursos de entrada, lo que permite que las funciones de Istio, como la supervisión y las reglas de ruta, se apliquen al tráfico que entra en el cluster.
La documentación de Istio describe cómo utilizar la API de Gateway con Istio. Al definir un gateway con Istio como implantación, es importante definir la propiedad gatewayClassName en istio. Por ejemplo:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: istioPara obtener más información sobre la configuración de gateways y el uso de funciones avanzadas de Istio con la API de gateway, consulte API de gateway de Kubernetes en la documentación de Istio y la documentación de API de gateway.