Condividi tramite


Gestione delle risorse di Azure Kubernetes Fleet Manager in più cluster usando il cluster hub come piano di controllo

Questo articolo descrive il concetto di gestione delle risorse Kubernetes usando cluster hub come piano di controllo con Azure Kubernetes Fleet Manager.

Informazioni generali

La gestione delle risorse Kubernetes in più cluster presenta sfide significative sia per gli amministratori della piattaforma che per gli sviluppatori di applicazioni. Man mano che le organizzazioni ridimensionano l'infrastruttura Kubernetes oltre un singolo cluster, spesso riscontrano complessità correlate alla distribuzione delle risorse, alla manutenzione della coerenza e al sovraccarico di gestione manuale. L'approccio tradizionale di gestione di ogni cluster crea in modo indipendente i silo operativi che diventano sempre più difficili da mantenere man mano che le dimensioni della flotta aumentano.

Problemi di gestione di più cluster

La transizione da alcuni cluster all'infrastruttura Kubernetes multi-cluster introduce una nuova categoria di sfide operative che vanno oltre l'orchestrazione dei contenitori tradizionale. Queste sfide si manifestano in modo diverso per vari gruppi di stakeholder all'interno di un'organizzazione, ognuno con requisiti e vincoli distinti.

Gli amministratori della piattaforma spesso devono distribuire risorse Kubernetes in più cluster per diversi motivi, ad esempio:

  • Esecuzione di applicazioni di infrastruttura: componenti di sistema critici, ad esempio soluzioni di monitoraggio (Prometheus, Grafana), strumenti di distribuzione continua (Flux, ArgoCD), criteri di rete, scanner di sicurezza e aggregatori di registrazione devono essere distribuiti in modo coerente in tutti i cluster per mantenere visibilità operativa e conformità.
  • Ottimizzazione delle risorse: le organizzazioni vogliono avere un utilizzo migliore dei cluster con caratteristiche diverse, tra cui profili di costo variabili (istanze spot e su richiesta), funzionalità hardware specializzate (nodi abilitati per GPU, istanze a memoria elevata) e livelli di prestazioni per ottimizzare il posizionamento del carico di lavoro in base ai requisiti e ai vincoli di budget.
  • Conformità e governance: i framework normativi impongono requisiti di residenza dei dati specifici, controlli di sicurezza e funzionalità di controllo che richiedono un'attenta selezione dei cluster e strategie di posizionamento delle risorse.

Analogamente, gli sviluppatori di applicazioni spesso devono distribuire risorse Kubernetes in più cluster per diversi motivi, ad esempio:

  • Distribuzione geografica: le applicazioni moderne preferiscono spesso la prossimità agli utenti finali per ridurre al minimo la latenza, rispettare i requisiti di sovranità dei dati e offrire esperienze utente ottimali. La preferenza di prossimità richiede la distribuzione di componenti dell'applicazione in più aree geografiche mantenendo al tempo stesso coerenza e coordinamento.
  • Disponibilità elevata: le applicazioni business critical devono mantenere la disponibilità del servizio anche durante interruzioni a livello di area, errori dell'infrastruttura o finestre di manutenzione pianificata. Le distribuzioni tra aree con funzionalità di failover automatizzato garantiscono la continuità aziendale e soddisfano requisiti rigorosi del contratto di servizio.

La complessità della gestione manuale di più cluster diventa evidente quando le organizzazioni tentano di eseguire la scalabilità oltre alcuni cluster. I processi manuali che funzionano per le piccole flotte di cluster diventano rapidamente colli di bottiglia man mano che l'infrastruttura cresce.

Problemi manuali di gestione di più cluster

  • Complessità operativa: il carico amministrativo di creazione, aggiornamento e rilevamento delle risorse singolarmente in più cluster aumenta in modo esponenziale con le dimensioni della flotta. Ogni cluster richiede l'autenticazione separata, il cambio di contesto e la verifica manuale, con conseguente aumento degli investimenti in tempo e maggiore probabilità di errore umano.
  • Deviazione della configurazione: senza meccanismi di controllo centralizzati, i processi manuali portano inevitabilmente a incoerenze tra cluster nel tempo. Queste incoerenze possono manifestarsi come versioni diverse delle risorse, configurazioni variabili o componenti mancanti, creando problemi di comportamento imprevedibili e debug.
  • Limitazioni di scalabilità: i processi manuali che funzionano in modo adeguato per le piccole flotta diventano sempre più poco pratici man mano che le organizzazioni si adattano a decine o centinaia di cluster. L'aumento lineare del sovraccarico di gestione alla fine supera la capacità amministrativa disponibile.
  • Mancanza di visibilità: il rilevamento completo delle versioni delle risorse, l'integrità delle risorse e le metriche operative in più cluster richiede un coordinamento significativo e strumenti personalizzati. Senza osservabilità centralizzata, i team lottano per mantenere la consapevolezza della situazione e rispondere efficacemente ai problemi.

Architettura complessiva per la gestione delle risorse multi-cluster

Azure Kubernetes Fleet Manager affronta le sfide fondamentali della gestione delle risorse multi-cluster tramite una piattaforma completa basata su un progetto nativo del cloud open source e sulle API native di Kubernetes. La soluzione usa la potenza e la flessibilità delle definizioni di risorse personalizzate (CRD) per estendere il modello dichiarativo di Kubernetes agli scenari multi-cluster. Questo approccio mantiene il modello operativo Kubernetes familiare, estendendo al tempo stesso le sue funzionalità per gestire le operazioni su larga scala della flotta. Ecco alcuni dei principi chiave e dei vantaggi della soluzione:

Piano di controllo hub-spoke

L'architettura hub-spoke definisce un cluster hub centralizzato come piano di controllo, eliminando la necessità di gestire ogni cluster in modo indipendente. Questo modello di architettura fornisce:

  • Gestione centralizzata: un singolo punto di controllo per le operazioni a livello di flotta, riducendo il sovraccarico amministrativo.
  • Esperienza API coerente: interazione uniforme nell'intera infrastruttura, garantendo una facilità d'uso.
  • Osservabilità avanzata: funzionalità centralizzate di monitoraggio e gestione per una migliore consapevolezza della situazione e una risoluzione più rapida dei problemi.

Modello di estensione nativo Kubernetes

Basata sul progetto CNF, la soluzione estende il modello dichiarativo di Kubernetes tramite definizioni di risorse personalizzate (CRD) anziché sostituirlo. In questo modo si garantisce quanto segue:

  • Familiarità: i professionisti di Kubernetes possono sfruttare le conoscenze e gli strumenti esistenti.
  • Compatibilità: integrazione senza problemi con i flussi di lavoro e gli strumenti kubernetes esistenti.
  • Cloud-Native Allineamento: conformità ai principi nativi del cloud e compatibilità con l'ecosistema CNF.

Strategie avanzate di pianificazione e implementazione

La soluzione incorpora meccanismi di pianificazione avanzati e strategie di implementazione progressiva, abilitando:

  • Criteri di posizionamento dichiarativo: posizionamento dei carichi di lavoro in base alle caratteristiche del cluster, ad esempio costi, disponibilità delle risorse e posizione geografica.
  • Implementazioni progressive: distribuzione controllata degli aggiornamenti con meccanismi di sicurezza per ridurre al minimo i rischi.
  • Gestione della deriva: garantisce configurazioni e versioni coerenti delle risorse tra cluster, riducendo le incoerenze operative.

Vantaggi principali

Adottando Azure Kubernetes Fleet Manager, le organizzazioni possono ottenere:

  • Scalabilità: consente di gestire in modo efficiente le flotta di qualsiasi dimensione, da alcuni cluster a centinaia.
  • Efficienza operativa: ridurre il lavoro manuale e l'errore umano tramite l'automazione e il controllo centralizzato.
  • Resilienza: garantire disponibilità elevata e ripristino di emergenza tramite strategie intelligenti di posizionamento e failover delle risorse.

Un file YAML di esempio di come usare l'API Fleet Manager di Azure Kubernetes per gestire i carichi di lavoro multi-cluster è illustrato nel diagramma seguente.

Diagramma che illustra in che modo le risorse di Kubernetes vengono propagate ai cluster membri.

Passaggi successivi