Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ Fleet Manager ✔️ Fleet Manager con cluster hub
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 quando vengono soddisfatte entrambe le condizioni seguenti:
- Lo spazio dei nomi contenente il servizio ha l'annotazione
clustermesh.cilium.io/globalcon il valoretrue. - Il servizio ha l'annotazione
service.cilium.io/globalcon un valore ditrue.
La distribuzione di un servizio con queste annotazioni in più cluster membri di rete tra cluster bilancia in modo trasparente il carico delle richieste in tali cluster.
Note
L'installazione multi-cluster di Cilium gestita da Fleet Manager imposta clustermesh-default-global-namespace: false, che differisce dal valore predefinito di Cilium. Questa impostazione migliora la scalabilità limitando la quantità di stato (CiliumEndpoints, CiliumIdentities e servizi) sincronizzata tra i cluster alle sole risorse presenti nei namespace con l'annotazione clustermesh.cilium.io/global impostata sul valore true. Di conseguenza, è richiesto un consenso esplicito per ogni namespace impostando tale annotazione.
È possibile rimuovere temporaneamente un servizio da un servizio globale con carico bilanciato rimuovendo l'annotazione service.cilium.io/global (o impostandola su false) nel servizio. Per interrompere la condivisione di ogni servizio in uno spazio dei nomi da un determinato cluster, rimuovere l'annotazione clustermesh.cilium.io/global nello spazio dei nomi (o impostarla su false) in tale 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-credentialscomando. - 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.