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. La flessibilità di Azure Kubernetes Service (AKS) consente di eseguire cluster multi-tenant in modi diversi e di 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 una strategia per i cluster multitenant e la separazione delle risorse.
  • Utilizzare l'isolamento logico o fisico nei cluster AKS.

Progettare cluster per la multitenenza

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 utilizza funzionalità di base come quote di risorse e budget di interruzione dei pod. Per ulteriori informazioni su queste funzionalità, consultare Procedure consigliate per le funzionalità di base dello schedulatore in AKS.

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

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

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

Rete

La gestione della rete utilizza politiche di rete per gestire il flusso del traffico in entrata e in uscita dai pod.

Per ulteriori informazioni, consultare Proteggere il traffico tra i pod usando politiche di rete in AKS.

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 AKS 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 logicamente isolati

Indicazioni sulle procedure consigliate

Separare team e progetti usando isolamento logico. Ridurre al minimo il numero di cluster fisici di AKS distribuiti 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 AKS

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, come l'RBAC 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 AKS è un approccio comune all'isolamento del cluster. In questo modello di isolamento, ai team o ai carichi di lavoro viene assegnato il proprio cluster AKS. 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 dei singoli cluster Kubernetes in AKS

I cluster fisicamente isolati hanno in genere una bassa densità di pod. Poiché ogni team o carico di lavoro ha il proprio cluster AKS (Azure Kubernetes Service), il cluster è spesso sovra-provisionato con risorse di calcolo. Spesso, alcuni pod vengono pianificati su 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 si è concentrato sull'isolamento del cluster. Per ulteriori informazioni sulle operazioni del cluster in Azure Kubernetes Service (AKS), consultare i seguenti articoli sulle best practice: