Procedure consigliate per l'isolamento del cluster nel servizio Azure Kubernetes

Quando si gestiscono i cluster nel servizio Azure Kubernetes (AKS), spesso è necessario isolare i team e i carichi di lavoro. Il servizio Azure Kubernetes consente di eseguire cluster multi-tenant e isolare le risorse. Per ottimizzare l'investimento in Kubernetes, è importante comprendere le funzionalità multi-tenancy e di isolamento del servizio Azure Kubernetes.

Questo articolo sulle procedure consigliate è incentrato sull'isolamento per gli operatori del cluster. In questo articolo vengono illustrate le operazioni seguenti:

  • Pianificare cluster multi-tenant e la separazione delle risorse.
  • Usare l'isolamento logico o fisico nei cluster del servizio Azure Kubernetes.

Progettare cluster per il multi-tenancy

Kubernetes consente di isolare logicamente i team e i carichi di lavoro nello stesso cluster. L'obiettivo è quello di fornire il minor numero di privilegi, limitato alle risorse necessarie per ogni team. Uno spazio dei nomi di Kubernetes crea un limite di isolamento logico. Altre funzionalità e considerazioni di Kubernetes per l'isolamento e il multi-tenancy includono le aree seguenti:

Pianificazione

La Pianificazione usa funzionalità di base come le quote delle risorse e i budget di interruzione dei pod. Per altre informazioni su queste funzionalità, vedere Procedure consigliate per le funzionalità di base dell'utilità di pianificazione in servizio Azure Kubernetes.

Le funzionalità più avanzate dell'utilità di pianificazione includono:

  • Taint e tolleranze.
  • Selettori nodo.
  • Affinità tra nodi e pod o anti-affinità.

Per altre informazioni su queste funzionalità, vedere Procedure consigliate per le funzionalità avanzate dell'utilità di pianificazione in servizio Azure Kubernetes.

Rete

La rete usa i criteri di rete per controllare il flusso del traffico all'interno e all'esterno dei pod.

Per altre informazioni, vedere Proteggere il traffico tra i pod usando criteri di rete nel servizio Azure Kubernetes.

Autenticazione e autorizzazione

L’autenticazione e l'autorizzazione usano:

  • Controllo degli accessi in base al ruolo.
  • Integrazione di Microsoft Entra.
  • Identità dei pod.
  • Segreti in Azure Key Vault.

Per altre informazioni su queste funzionalità, vedere Procedure consigliate per l'autenticazione e l'autorizzazione in servizio Azure Kubernetes.

Contenitori

I contenitori includono:

  • Componente aggiuntivo Criteri di Azure per il servizio Azure Kubernetes per applicare la sicurezza dei pod.
  • Ammissione di sicurezza dei pod.
  • Analisi di immagini e runtime per individuare le vulnerabilità.
  • Uso di App Armor o Seccomp (Secure Computing) per limitare l'accesso dei contenitori al nodo sottostante.

Cluster isolati logicamente

Indicazioni sulle procedure consigliate

Separare team e progetti usando isolamento logico. Ridurre al minimo il numero di cluster fisici del servizio Azure Kubernetes che si distribuiscono per isolare team o applicazioni.

Tramite l'isolamento logico, è possibile usare un singolo cluster del servizio Azure Kubernetes per più carichi di lavoro, team o ambienti. Gli spazi dei nomi di Kubernetes costituiscono il limite di isolamento logico per i carichi di lavoro e le risorse.

Isolamento logico di un cluster Kubernetes in servizio Azure Kubernetes

La separazione logica dei cluster offre in genere una maggiore densità di pod rispetto ai cluster isolati fisicamente, consentendo di ridurre la capacità di calcolo in eccesso che rimane inattiva nel cluster. Se combinato con il ridimensionamento automatico del cluster Kubernetes, è possibile aumentare o ridurre il numero dei nodi in base alle esigenze. Tale procedura consigliata riduce al minimo i costi, eseguendo solo il numero di nodi necessario.

Gli ambienti Kubernetes non sono completamente sicuri per l'utilizzo multi-tenant ostile. In un ambiente multi-tenant, più tenant lavorano su un'infrastruttura condivisa. Se tutti i tenant non possono essere considerati attendibili, è necessaria una pianificazione supplementare per impedire ai tenant di influire sulla sicurezza e sul servizio di altri utenti.

Altre funzionalità di sicurezza, ad esempio il controllo degli accessi in base al ruolo di Kubernetes per i nodi, bloccano in modo efficiente gli exploit. Per una vera sicurezza quando si eseguono carichi di lavoro multi-tenant ostili, è consigliabile considerare attendibile solo un hypervisor. Il dominio di sicurezza per Kubernetes diventa l'intero cluster, non un singolo nodo.

Per questi tipi di carichi di lavoro multi-tenant ostili è consigliabile usare cluster fisicamente isolati.

Cluster fisicamente isolati

Indicazioni sulle procedure consigliate

Ridurre al minimo l'uso dell'isolamento fisico per ogni distribuzione di team o applicazione separata e usare invece l'isolamento logico.

La separazione fisica dei cluster del servizio Azure Kubernetes è un approccio comune all'isolamento del cluster. In questo modello di isolamento ai team o ai carichi di lavoro viene assegnato il proprio cluster servizio Azure Kubernetes. Anche se l'isolamento fisico potrebbe essere simile al modo più semplice per isolare carichi di lavoro o team, comporta un sovraccarico finanziario e di gestione. Con cluster fisicamente isolati, è necessario gestire più cluster, e fornire l'accesso e assegnare le autorizzazioni singolarmente. Vengono addebitati anche i costi per ogni singolo nodo.

Isolamento fisico di singoli cluster Kubernetes in servizio Azure Kubernetes

I cluster fisicamente isolati hanno in genere una bassa densità di pod. Poiché ogni team o carico di lavoro ha un proprio cluster del servizio Azure Kubernetes, il cluster viene spesso sottoposto a provisioning eccessivo con risorse di calcolo. Spesso, alcuni pod vengono pianificati in tali nodi. La capacità dei nodi non richiesta non può essere usata per applicazioni o servizi in fase di sviluppo da parte di altri team. Queste risorse in eccesso contribuiscono ai costi aggiuntivi in cluster isolati fisicamente.

Passaggi successivi

Questo articolo ha illustrato l'isolamento cluster. Per altre informazioni sulle operazioni del cluster nel servizio Azure Kubernetes, vedere gli articoli sulle seguenti procedure consigliate: