Configurare l'isolamento rete per il 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 offre flessibilità a livello di esecuzione di cluster multi-tenant e isolamento delle risorse. Per ottimizzare l'investimento in Kubernetes, è importante comprendere le funzionalità multi-tenancy e di isolamento 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:
- Procedure consigliate per l'isolamento del cluster nel servizio Azure Kubernetes
- Progettare cluster per multi-tenancy
- Pianificazione
- Rete
- Autenticazione e autorizzazione
- Contenitori
- Progettare cluster per multi-tenancy
- Cluster isolati logicamente
- Cluster isolati fisicamente
Pianificazione
La Pianificazione usa funzionalità di base come le quote delle risorse e i budget di interruzione dei pod.
Le funzionalità più avanzate dell'utilità di pianificazione includono:
- Taint e tolleranze.
- Selettori nodo.
- Affinità tra nodi e pod o anti-affinità.
Rete
La rete usa i criteri di rete per controllare il flusso del traffico all'interno e all'esterno dei pod.
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.
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 l'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.
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 operano 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 sicurezza effettiva durante l'esecuzione di 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.
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.