Rete di collegamento tra cluster per Azure Kubernetes Fleet Manager (versione di anteprima)

Azure Kubernetes Fleet Manager offre una soluzione di rete tra cluster dedicata che estende il percorso dati Kubernetes tra più cluster. L'uso della rete tra cluster consente a qualsiasi cluster connesso di comunicare direttamente con gli endpoint in qualsiasi altro cluster connesso con applicazione completa dei criteri di rete. L'uso della rete tra cluster consente ai cluster di pubblicare servizi in modo che qualsiasi cluster connesso possa chiamarli come se fossero locali.

È possibile creare più profili di rete tra cluster in Fleet Manager, con l'unica restrizione che i cluster membri possono partecipare solo a una singola rete tra cluster.

In questo articolo vengono presentati i concetti chiave per la rete tra cluster per Azure Kubernetes Fleet Manager.

Importante

Le funzionalità di anteprima di Azure Kubernetes Fleet Manager sono disponibili autonomamente su base di adesione volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di Azure Kubernetes Fleet Manager sono parzialmente coperte dal supporto clienti su base di massimo sforzo possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione.

Prerequisiti e limitazioni

  • Una rete tra cluster può avere fino a 255 cluster membri.
  • I cluster membri di Fleet Manager possono partecipare a una singola rete tra cluster in qualsiasi momento.
  • I cluster devono eseguire Kubernetes v1.32 o versione successiva e disporre di Advanced Container Networking Services (ACNS) con Cilium abilitato.
  • I cluster devono essere connessi a una singola rete flat (rete virtuale o più reti con peering).
  • La rete di sovrapposizione con i tunnel non è supportata.
  • Il multi-cluster Cilium gestito autonomamente non può essere distribuito allo stesso tempo.
  • ACNS imposta la versione Cilium e le funzionalità abilitate. Non è attualmente possibile modificarli direttamente.

Concetti fondamentali

La rete cross-cluster per Gestione flotta Kubernetes di Azure offre un'implementazione multi-cluster di Cilium gestita dalla Flotta che elimina l'onere della configurazione e gestione dei componenti del piano di controllo dati di Cilium multi-cluster su ciascun cluster membro.

Quando un cluster viene aggiunto a una rete tra cluster, l'agente Cilium (cilium-agent) e clustermesh-apiserver vengono distribuiti nel piano di controllo del cluster da Fleet Manager. I cluster esistenti nella stessa rete tra cluster vengono aggiornati con i dettagli del cluster appena aggiunti e l'agente Cilium configura il routing basato su eBPF per consentire ai pod in ogni cluster di comunicare direttamente senza proxy o gateway.

Ogni cluster mantiene la configurazione degli indirizzi IP CIDR locali per pod e servizi. I componenti locali di Cilium sono responsabili del routing che consente ai pod in un cluster di raggiungere i servizi in cluster remoti come se fossero locali.

Per il controllo del flusso di traffico, i criteri di rete Cilium (CiliumNetworkPolicy) possono essere usati per controllare il flusso di dati tra cluster, consentendo agli amministratori di applicare limiti all'interno della rete tra cluster.

Definizione di servizi globali

I servizi Kubernetes in qualsiasi membro di rete tra cluster possono essere resi disponibili a livello globale nella rete tra cluster aggiungendo un'annotazione di service.cilium.io/global con il valore impostato su true. La distribuzione del Servizio con questa annotazione su più cluster membri di rete cross-cluster bilancia il carico delle richieste in modo trasparente tra questi cluster.

È possibile rimuovere temporaneamente un cluster da un servizio globale con carico bilanciato aggiungendo un'annotazione di service.cilium.io/shared con il valore false. L'uso dell'approccio è utile se non si vuole rimuovere completamente il servizio o il cluster.

Debug e risoluzione dei problemi

Gli strumenti standard dell'interfaccia della riga di comando di Cilium funzionano con la rete tra cluster per Fleet Manager. Alcuni comandi come upgrade e clustermesh connect non funzionano perché eseguono azioni Fleet Manager è ora responsabile.

Ecco i passaggi generali per iniziare a eseguire il debug e la risoluzione dei problemi:

  • Installare il Cilium CLI stabile più recente per il sistema operativo dal repository ufficiale Cilium CLI GitHub.
  • Selezionare un cluster membro della rete tra i cluster e recuperarne il kubeconfig utilizzando il az aks get-credentials comando.
  • Usare il Cilium CLI, passando il contesto del cluster usando il parametro --context.

L'interfaccia della riga di comando di Cilium può gestire più versioni di Cilium.

Aggiornamento della rete tra cluster

Un motivo per adottare la rete cross-cluster invece di installare ed eseguire manualmente Cilium multi-cluster è che Fleet Manager mantiene aggiornati i componenti di Cilium.

Gli aggiornamenti dei componenti Cilium della rete tra cluster vengono aggregati come parte delle versioni AKS Kubernetes. Gli aggiornamenti vengono semplificati grazie alla pre-convalida che garantisce il corretto funzionamento dei componenti Cilium con la versione di Kubernetes eseguita dal cluster, assicurando che la rete tra i cluster rimanga stabile.

Questo approccio consente di usare le strategie e le esecuzioni di aggiornamento di Fleet Manager per aggiornare il piano di controllo dei cluster, definendo l'ordine in cui vengono aggiornati i cluster.

Passaggi successivi