Utilizzo di Istio sui cluster creati con Kubernetes Engine (OKE)

Scopri come utilizzare Istio sui cluster creati con Kubernetes Engine (OKE).

Istio è un mesh di servizio open source e indipendente dalla piattaforma che fornisce gestione del traffico, applicazione delle politiche e raccolta di telemetria. Istio è progettato per gestire le comunicazioni tra microservizi e applicazioni. Istio utilizza proxy Envoy, distribuiti come sidecar ai servizi di base, per mediare tutto il traffico in entrata e in uscita per tutti i servizi nel mesh di servizio. Senza richiedere modifiche ai servizi di base, Istio fornisce resilienza automatica del traffico baseline, raccolta delle metriche dei servizi, trace distribuito, cifratura del traffico, aggiornamenti del protocollo e funzionalità di instradamento avanzato per tutte le comunicazioni service-to-service.

Istio utilizza gateway in entrata e in uscita per configurare i load balancer in esecuzione sul bordo di una mesh di servizio. I gateway in entrata Istio vengono implementati utilizzando il gateway Kubernetes e le risorse VirtualService e forniscono un livello di gestione del traffico coerente e ad alte prestazioni in tutti i servizi nella rete di servizi. Un gateway in entrata è un singolo punto di ingresso nel service mesh attraverso il quale tutti i flussi di traffico delle richieste HTTP e HTTPS in entrata. Il gateway in entrata instrada il traffico al servizio appropriato in base alla richiesta. Analogamente, un gateway di uscita definisce i punti di uscita dal mesh del servizio.

Per ulteriori informazioni su Istio, consultare la documentazione di Istio.

È possibile distribuire Istio su un cluster Kubernetes in due modi:

Tenere presente che i prodotti mesh di servizio (come Istio e Linkerd) sono supportati quando si utilizza il plugin CNI per il pod networking VCN nativo OCI. Si noti che, ad eccezione del componente aggiuntivo Istio, il supporto è attualmente limitato a Oracle Linux 7 (è previsto il supporto per Oracle Linux 8). L'add-on Istio è supportato sia da Oracle Linux 7 che da Oracle Linux 8. I nodi di lavoro devono eseguire Kubernetes 1.26 (o versioni successive).

Nota

È possibile utilizzare Istio con i pool di nodi gestiti, ma non con i pool di nodi virtuali.

Utilizzo dell'API del gateway Kubernetes

L'API gateway è un progetto Kubernetes ufficiale incentrato sulla fornitura di risorse API per l'instradamento di livello 4 (L4) e livello 7 (L7) in Kubernetes. L'API gateway rappresenta la prossima generazione di API Kubernetes in entrata, bilanciamento del carico e mesh di servizio.

Kubernetes Engine supporta l'installazione delle definizioni delle risorse personalizzate (CRD) API gateway, fornendo le istruzioni riportate nella documentazione Introduzione all'API gateway. Ad esempio, per installare il canale standard, utilizzare il comando seguente:

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml

Dopo aver installato i CRD API Gateway, puoi utilizzare Istio come programma standalone o come componente aggiuntivo del cluster per sfruttare il supporto delle API Gateway. Insieme al supporto per le risorse di entrata Kubernetes, Istio consente di configurare il traffico in entrata utilizzando le risorse di gateway dell'API del gateway. I gateway offrono una personalizzazione e una flessibilità più estese rispetto alle risorse in entrata, consentendo l'applicazione di funzioni Istio come le regole di monitoraggio e instradamento al traffico che entra nel cluster.

La documentazione di Istio descrive come utilizzare l'API gateway con Istio. Quando si definisce un gateway con Istio come implementazione, è importante impostare la proprietà gatewayClassName su istio. Ad esempio:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: example-gateway
spec:
  gatewayClassName: istio

Per ulteriori informazioni sulla configurazione dei gateway e sull'utilizzo delle funzioni Istio avanzate con l'API del gateway, vedere Kubernetes Gateway API nella documentazione di Istio e la documentazione dell'API del gateway.