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 fornisce un metodo uniforme per connettere, gestire e proteggere i microservizi. Supporta la gestione dei flussi di traffico tra i servizi, l'applicazione forzata dei criteri di accesso e l'aggregazione dei dati di telemetria, il tutto senza richiedere modifiche al codice dei microservizi.

Istio fornisce 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, failover e inserimento degli errori.
  • Un livello di criteri e un'API configurabili che supportano i controlli di accesso, i limiti di frequenza e le 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à.

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

Puoi trovare ulteriori informazioni su Istio nella documentazione open source impostata su 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 fornisce installazione e upgrade automatici di Istio nel tuo cluster GKE. Quando esegui l'upgrade di GKE, l'upgrade di Istio su GKE viene eseguito automaticamente alla versione di Istio più recente supportata da GKE. Questo consente di gestire facilmente l'installazione e l'upgrade di Istio come parte del ciclo di vita del cluster GKE.

È importante notare che, quando si utilizza Istio su GKE, Istio viene eseguito all'interno del tuo cluster. Non è previsto 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 predefinite di installazione 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 elevate per la 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 aggiuntivo fa parte di GKE, l'installazione risultante di Istio non è un prodotto supportato da Google. Per chi desidera un prodotto supportato, Anthos Service Mesh è un'opzione migliore.

Se hai bisogno di utilizzare una versione più recente di Istio o vuoi avere un controllo maggiore 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 per qualsiasi motivo non vuoi più utilizzare la nostra funzionalità di installazione automatica, puoi disinstallare Istio su GKE. Puoi scoprire come farlo nella sezione Disinstallare Istio su GKE.

Che cosa è installato?

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

L'installazione consente anche di aggiungere il proxy sidecar Istio ai carichi di lavoro dei tuoi servizi, in modo che possano comunicare con il piano di controllo e unirsi al mesh Istio.

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

Assistenza 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 tracciare dati dal tuo mesh a Cloud Monitoring, Cloud Logging o Cloud Trace, fornendo l'osservabilità del comportamento dei tuoi servizi in Google Cloud Console. Dopo aver abilitato una determinata funzionalità di Monitoring, Logging o Trace per il progetto e il cluster, i dati vengono inviati dal mesh per impostazione predefinita. Istio su GKE imposta automaticamente gli ambiti di accesso nel pool di nodi del cluster per Monitoring, Logging e Trace.

Monitoring

Se l'API Cloud Monitoring è abilitata nel tuo progetto Google Cloud, il tuo mesh Istio invia automaticamente le metriche relative ai tuoi servizi (ad esempio il numero di byte ricevuti da un determinato servizio) a Monitoring, in cui 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 ricevere avvisi quando, ad esempio, un servizio sta per raggiungere un numero specifico di richieste. Per ottenere nuove informazioni sul comportamento dei servizi, puoi anche combinare queste metriche utilizzando filtri e aggregazioni con le metriche integrate di Monitoring.

Per visualizzare le metriche relative a una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:

  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. Nella barra degli strumenti, seleziona la scheda Explorer.
  4. Seleziona la scheda Configurazione.
  5. Espandi il menu Seleziona una metrica e utilizza i sottomenu per selezionare un tipo di risorsa e una metrica. Ad esempio, per registrare l'utilizzo della CPU di una macchina virtuale, procedi come segue:
    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 di 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 saperne di più su cosa puoi fare con i dati di log, come l'esportazione di log in BigQuery.

Tracciamento

Puoi abilitare Cloud Trace in modo che il mesh Istio invii automaticamente i dati di traccia a Trace, dove vengono visualizzati nel visualizzatore di tracce. Per ottenere il massimo dal tracciamento distribuito per trovare più colli di bottiglia delle prestazioni, devi modificare i carichi di lavoro con le intestazioni di tracciamento dello strumento. Per scoprire come eseguire questa operazione, consulta la guida Tracciamento distribuito di Istio.

Come funziona il processo di upgrade?

Il ciclo di vita di Istio è gestito come parte del processo di upgrade di GKE. In GKE esistono due processi di upgrade:

  • Upgrade del master: il processo di upgrade del master viene eseguito automaticamente 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 dei nodi può essere automatico (attivazione; consigliato) o manuale, in modo da aggiornare i componenti di Kubernetes sui nodi worker per eseguire la sincronizzazione con la stessa versione del nodo master. L'upgrade collaterale di Istio è gestito nell'ambito di questo processo.

Istio su GKE esegue automaticamente l'upgrade del piano di controllo a una versione stabile recente (non necessariamente più recente). La versione viene selezionata in base alla stabilità e alle prestazioni osservate nei deployment open source in un periodo di tempo. Gli upgrade delle versioni vengono annunciati in anticipo nel gruppo istio-gke-announce. In generale, gli upgrade delle versioni vengono implementati gradualmente in tutte le versioni di GKE per 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 delle ultime due versioni del piano dati (proxy collaterale precedente). Dopo aver eseguito l'upgrade del cluster GKE, ti consigliamo di aggiornare i sidecar alla versione attuale del piano di controllo, non appena possibile riavviando i pod (con l'inserimento automatico abilitato) o reinserisci 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 il modo in cui il piano di controllo viene installato e aggiornato, non consente di modificare la maggior parte delle impostazioni di configurazione del piano di controllo fornite nella nostra installazione. Eventuali modifiche alla configurazione, oltre alle impostazioni specificate di seguito, vengono annullate dal gestore componenti aggiuntivi 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, tramite scalabilità automatica o impostando manualmente il numero di repliche.
  • Richieste di risorse per i 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.

Puoi scoprire come configurare queste impostazioni in Configurare il 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?