Panoramica di Istio su GKE

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

What is Istio?

Istio è un mesh di servizi aperto che consente di connettere, gestire e proteggere in modo uniforme i microservizi. Supporta la gestione dei flussi di traffico tra i servizi, l'applicazione dei criteri di accesso e l'aggregazione dei dati di telemetria, il tutto senza richiedere modifiche al codice dei microservizi.

Istio offre i seguenti vantaggi:

  • Bilanciamento del carico automatico per il traffico HTTP, gRPC, WebSocket, MongoDB e TCP.
  • Controllo granulare del comportamento del traffico con regole di routing avanzate, nuovi tentativi di accesso, failover e inserimento di errori.
  • Un livello di criterio e un'API configurabili che supportano controlli dell'accesso, limiti di frequenza e quote.
  • Metriche, log e tracce automatiche per tutto il traffico all'interno di un cluster, inclusi traffico in entrata e in uscita del cluster.
  • Comunicazione sicura tra servizi in un cluster con autenticazione e autorizzazione basate sull'identità.

Configuri il controllo dell'accesso di Istio, le regole di routing e così via utilizzando un'API Kubernetes personalizzata, kubectl o lo strumento a riga di comando Istio istioctl, che offre una convalida aggiuntiva.

Per saperne di più su Istio, consulta la documentazione open source disponibile all'indirizzo istio.io.

Che cos'è Anthos Service Mesh?

Consigliamo ai clienti Google Cloud di utilizzare Anthos Service Mesh, la distribuzione di Istio completamente supportata di Google. Poiché Anthos Service Mesh è compatibile con le API Istio, fornisce tutti i vantaggi del mesh di servizi Istio e altro ancora:

Anthos Service Mesh

Puoi installare Anthos Service Mesh su Google Kubernetes Engine (GKE) come servizio autonomo, che non richiede un abbonamento ad Anthos. Per iniziare a esplorare le funzionalità di Anthos Service Mesh, consulta la guida rapida di Anthos Service Mesh per GKE.

Cos'è Istio su GKE?

Istio su Google Kubernetes Engine è uno strumento che consente di eseguire l'installazione e l'upgrade automatici di Istio nel tuo cluster GKE. Quando esegui l'upgrade di GKE, Istio su GKE viene eseguito automaticamente all'ultima versione di Istio supportata da GKE. Ciò consente di gestire facilmente l'installazione e l'upgrade di Istio nell'ambito del ciclo di vita dei cluster GKE.

È importante tenere presente che, quando utilizzi Istio su GKE, Istio viene eseguito all'interno del tuo cluster. Non è presente un accordo sul livello del servizio (SLA) sui componenti Istio in esecuzione nel cluster.

Devo utilizzare Istio su GKE?

Anche se Istio su GKE gestisce l'installazione e gli upgrade, utilizza le opzioni di installazione predefinite per il piano di controllo che limitano le opzioni di configurazione. A causa di queste limitazioni e dello stato beta del prodotto, i clienti non devono utilizzare Istio su GKE in produzione. Anthos Service Mesh è un'opzione migliore per i carichi di lavoro di produzione.

Le limitazioni di Istio su GKE includono:

  • La versione di Istio installata è collegata alla versione di GKE e non puoi aggiornarla in modo indipendente.

  • Esistono limitazioni forti nella configurazione del piano di controllo. A causa di queste limitazioni, ti consigliamo di non utilizzare Istio su GKE in produzione.

  • Anche se questo programma di installazione dei componenti aggiuntivi fa parte di GKE, l'installazione di Istio non è un prodotto supportato da Google. Per chi vuole un prodotto supportato, Anthos Service Mesh è un'opzione migliore.

Se hai bisogno di utilizzare una versione più recente di Istio o vuoi esercitare un maggiore controllo sulla configurazione del piano di controllo di Istio (che potrebbe verificarsi in alcuni casi d'uso in produzione), ti consigliamo di utilizzare Anthos Service Mesh.

Se non vuoi più utilizzare la nostra funzionalità di installazione automatica per qualsiasi motivo, puoi disinstallare Istio su GKE. Puoi scoprire come farlo nell'articolo Disinstallare Istio su GKE.

Che cosa è installato?

Quando crei o aggiorni un cluster con Istio su GKE, vengono installati i seguenti componenti di base di Istio:

L'installazione consente inoltre di aggiungere il proxy sidecar Istio ai tuoi carichi di lavoro di servizio, in modo che possano comunicare con il piano di controllo e partecipare alla rete mesh Istio.

Per saperne di più sull'installazione e la disinstallazione di Istio su GKE e sulle opzioni di installazione, consulta Installare Istio su GKE.

Supporto di Cloud Monitoring

Per i cluster in cui è abilitato Google Kubernetes Engine Monitoring, viene installato l'adattatore Istio Stackdriver insieme ai componenti principali descritti in precedenza. L'adattatore può inviare metriche, logging e tracciamento dei dati dal tuo mesh a Cloud Monitoring, Cloud Logging o Cloud Trace, fornendo osservabilità nel comportamento dei tuoi servizi nella console Google Cloud. Dopo aver abilitato una determinata funzionalità di Monitoring, Logging o Trace per il tuo progetto e cluster, tali dati vengono inviati dal tuo mesh per impostazione predefinita. Istio su GKE imposta automaticamente gli ambiti di accesso nel pool di nodi del cluster per Monitoring, Logging e Trace.

Monitoraggio

Se l'API Cloud Monitoring è abilitata nel progetto Google Cloud, il mesh Istio invia automaticamente le metriche relative ai tuoi servizi (come il numero di byte ricevuti da un determinato servizio) in Monitoring, dove vengono visualizzate in Metrics Explorer. Puoi utilizzare queste metriche per creare dashboard e avvisi personalizzati, che ti consentono di monitorare i tuoi servizi nel tempo e di ricevere avvisi quando, ad esempio, un servizio sta per raggiungere un numero specifico di richieste. Puoi anche combinare queste metriche usando filtri e aggregazioni con le metriche integrate di Monitoring per ottenere nuove informazioni sul comportamento del servizio.

Per visualizzare le metriche di una risorsa monitorata utilizzando Metrics Explorer:

  1. Nella console Google Cloud, vai a Monitoring o utilizza il pulsante seguente:
    Vai a Monitoring
  2. Nel riquadro di navigazione di Monitoring, fai clic su Metrics Explorer.
  3. Seleziona la scheda Configurazione.
  4. Espandi il menu Seleziona una metrica, quindi utilizza i sottomenu per selezionare una metrica e un tipo di risorsa. Ad esempio, per registrare l'utilizzo della CPU di una macchina virtuale, procedi nel seguente modo:
    1. (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella barra dei filtri. Per questo esempio, inserisci utilization.
    2. Nel menu Risorse attive, seleziona Istanza VM.
    3. Nel menu Categorie di metriche attive, seleziona Istanza.
    4. Nel menu Metriche attive, seleziona Utilizzo CPU.

Per un elenco completo delle metriche Istio, consulta la documentazione di Cloud Monitoring.

Logging

Se l'API Cloud Logging è abilitata nel tuo progetto Google Cloud, il tuo mesh Istio invia automaticamente i log a Logging, dove vengono visualizzati in Esplora log. Consulta la documentazione di Cloud Logging per scoprire di più su come utilizzare i dati di log, ad esempio per esportare i log in BigQuery.

Tracciamento

Puoi abilitare Cloud Trace in modo che il mesh Istio invii automaticamente i dati di traccia a Trace, dove appare nel visualizzatore della traccia. Per ottenere il massimo dal tracciamento distribuito per aiutare a individuare i colli di bottiglia delle prestazioni, devi modificare i carichi di lavoro in intestazioni di tracciamento degli strumenti. Per scoprire come farlo, consulta la guida Tracciamento distribuito Istio.

Come funziona il processo di upgrade?

Il ciclo di vita di Istio è gestito nell'ambito del processo di upgrade di GKE. In GKE esistono due processi di upgrade:

  • Upgrade del master: il processo di upgrade del master è automatico e aggiorna i componenti del piano di controllo Kubernetes (server API, scheduler, gestore del controller e così via) sul nodo master e sui componenti aggiuntivi. L'upgrade dei componenti del piano di controllo Istio viene gestito come parte di questo processo.
  • Upgrade dei nodi: il processo di upgrade del nodo può essere automatico (attivazione; consigliato) o manuale, che aggiorna i componenti Kubernetes sui nodi worker in modo che vengano sincronizzati con la stessa versione del nodo master. L'upgrade del sidecar Istio viene gestito nell'ambito di questo processo.

Istio su GKE esegue automaticamente l'upgrade del piano di controllo a una versione recente (non necessariamente ultima). La versione viene selezionata in base alla stabilità e alle prestazioni osservate nei deployment open source in un determinato periodo di tempo. Gli upgrade della versione vengono annunciati in anticipo nel gruppo istio-gke-announce. In generale, gli upgrade delle versioni vengono implementati gradualmente in tutte le versioni di GKE in un periodo di due o più settimane, a partire dalla versione più recente.

Le versioni del piano di controllo vengono testate per verificare la compatibilità con le versioni precedenti degli ultimi due piani dati (proxy proxy). Dopo aver eseguito l'upgrade del cluster GKE, ti consigliamo di aggiornare appena possibile i sidecar alla versione attuale del piano di controllo, riavviando i pod (con l'inserimento automatico abilitato) o inserendo manualmente la versione appropriata.

Istio su GKE non consente il controllo degli utenti della versione del piano di controllo.

Modifica delle impostazioni del piano di controllo

Poiché Istio su GKE controlla l'installazione e l'upgrade del piano di controllo, non consente di modificare la maggior parte delle impostazioni di configurazione del piano di controllo fornite nell'installazione. Eventuali modifiche alla configurazione, diverse da quelle specificate di seguito, vengono annullate dal gestore aggiuntivo di Kubernetes. Le opzioni non modificabili vengono annullate ogni minuto.

Le impostazioni che puoi configurare durante l'utilizzo di Istio su GKE sono le seguenti:

  • Scalabilità orizzontale per i componenti del piano di controllo, utilizzando la scalabilità automatica o impostando manualmente il numero di repliche.
  • Richieste di risorse per container del piano di controllo.
  • Budget di interruzione dei pod per i deployment che devono rimanere disponibili durante gli upgrade, ad esempio il gateway in entrata Istio fornito.

Per scoprire come configurare queste impostazioni, consulta la pagina relativa alla configurazione del piano di controllo.

In ogni caso, le impostazioni specificate vengono conservate quando l'installazione viene aggiornata da Istio su GKE.

Quali sono i passaggi successivi?