Limiti delle risorse, dimensioni delle macchine virtuali e aree per il servizio Azure Kubernetes abilitato da Azure Arc
Si applica a: AKS su Azure Local 22H2, AKS su Windows Server
Questo articolo fornisce informazioni sulle configurazioni testate, i limiti delle risorse, le dimensioni delle macchine virtuali e le aree per servizio Azure Kubernetes (servizio Azure Kubernetes) abilitati da Azure Arc. I test hanno usato la versione più recente del servizio Azure Kubernetes in Locale di Azure.
Specifiche massime
Il servizio Azure Kubernetes abilitato dalle distribuzioni Arc è stato convalidato con le configurazioni seguenti, inclusi i valori massimi specificati. Tenere presente che il superamento di questi valori massimi è a proprio rischio e potrebbe causare comportamenti e errori imprevisti. Questo articolo fornisce alcune indicazioni su come evitare errori di configurazione comuni e può essere utile per creare una configurazione più grande. In caso di dubbi, contattare l'ufficio Microsoft locale per ricevere assistenza o inviare una domanda nella community locale di Azure.
Conto risorse | Massimo |
---|---|
Server fisici per cluster | 8 |
Numero totale di macchine virtuali | 200 |
I limiti consigliati sono stati testati con le dimensioni predefinite della macchina virtuale (VM), in base alla tabella seguente:
Ruolo del sistema | Dimensioni della VM |
---|---|
Host del servizio Azure Kubernetes | Standard_A4_v2 |
Nodo Del piano di controllo del cluster di destinazione | Predefinita |
Servizio di bilanciamento del carico HAProxy del cluster di destinazione (facoltativo) | Standard_A4_v2 |
Nodo del ruolo di lavoro Linux del cluster di destinazione | Standard_K8S3_v1 |
Nodo del ruolo di lavoro windows del cluster di destinazione | Standard_K8S3_v1 |
La configurazione hardware di ogni nodo fisico nel cluster locale di Azure è la seguente:
- Chassis: Dell PowerEdge R650 Server o simile.
- RAM: RDIMM, 3200 MT/s, Dual Rank, totale di 256 GB.
- CPU: due (2) Intel Xeon Silver 4316 2.3G, 20C/40T, 10.4 GT/s, 30M Cache, Turbo, HT (150 W) DDR4-2666.
- Disco: 8 dischi RIGIDI (2 TB o superiori) e 2x 1,6 TB NVMe per supportare le configurazioni di archiviazione S2D.
- Rete: quattro (4) schede di interfaccia di rete a 100 Gbit (Mellanox o Intel).
Progettazione Microsoft ha testato il servizio Azure Kubernetes abilitato da Arc usando la configurazione precedente. Per nodo singolo. 2 nodi, 4 nodi e 8 cluster di failover Windows. Se è necessario superare la configurazione testata, vedere Ridimensionamento del servizio Azure Kubernetes in locale di Azure.
Importante
Quando si aggiorna una distribuzione del servizio Azure Kubernetes, vengono usate temporaneamente risorse aggiuntive. Ogni macchina virtuale viene aggiornata in un flusso di aggiornamento in sequenza, a partire dai nodi del piano di controllo. Per ogni nodo nel cluster Kubernetes, viene creata una nuova macchina virtuale del nodo. La macchina virtuale del nodo precedente è limitata per impedire la distribuzione dei carichi di lavoro. La macchina virtuale con restrizioni viene quindi svuotata di tutti i contenitori per distribuire i contenitori ad altre macchine virtuali nel sistema. La macchina virtuale svuotata viene quindi rimossa dal cluster, arrestata e sostituita dalla nuova macchina virtuale aggiornata. Questo processo viene ripetuto fino a quando non vengono aggiornate tutte le macchine virtuali.
Dimensioni disponibili per le macchine virtuali
Le dimensioni della macchina virtuale seguenti per i nodi del piano di controllo, i nodi di lavoro Linux e i nodi di lavoro Windows sono disponibili per il servizio Azure Kubernetes in Locale di Azure. Anche se le dimensioni delle macchine virtuali, ad esempio Standard_K8S2_v1 e Standard_K8S_v1 , sono supportate per i test e le distribuzioni con requisiti di risorse basse, usare queste dimensioni con attenzione e applicare test rigorosi in quanto possono causare errori imprevisti a causa di condizioni di memoria insufficiente.
Dimensioni macchina virtuale | CPU | Memoria (GB) | Tipo di GPU | Conteggio GPU |
---|---|---|---|---|
Predefiniti | 4 | 4 | ||
Standard_A2_v2 | 2 | 4 | ||
Standard_A4_v2 | 4 | 8 | ||
Standard_D2s_v3 | 2 | 8 | ||
Standard_D4s_v3 | 4 | 16 | ||
Standard_D8s_v3 | 8 | 32 | ||
Standard_D16s_v3 | 16 | 64 | ||
Standard_D32s_v3 | 32 | 128 | ||
Standard_DS2_v2 | 2 | 7 | ||
Standard_DS3_v2 | 2 | 14 | ||
Standard_DS4_v2 | 8 | 28 | ||
Standard_DS5_v2 | 16 | 56 | ||
Standard_DS13_v2 | 8 | 56 | ||
Standard_K8S_v1 | 4 | 2 | ||
Standard_K8S2_v1 | 2 | 2 | ||
Standard_K8S3_v1 | 4 | 6 | ||
Standard_NK6 | 6 | 12 | Tesla T4 | 1 |
Standard_NK12 | 12 | 24 | Tesla T4 | 2 |
Aree di Azure supportate per la registrazione di Azure
Il servizio Azure Kubernetes abilitato da Arc è supportato nelle aree di Azure seguenti:
- Australia orientale
- Stati Uniti orientali
- Asia sud-orientale
- Europa occidentale
Ridimensionamento del servizio Azure Kubernetes in locale di Azure
Il ridimensionamento di una distribuzione del servizio Azure Kubernetes in locale di Azure implica la pianificazione in anticipo conoscendo i carichi di lavoro e l'utilizzo del cluster di destinazione. Prendere in considerazione anche le risorse hardware nell'infrastruttura sottostante, ad esempio core CPU totali, memoria totale, archiviazione, indirizzi IP e così via.
Gli esempi seguenti presuppongono che solo i carichi di lavoro basati sul servizio Azure Kubernetes vengano distribuiti nell'infrastruttura sottostante. La distribuzione di carichi di lavoro non del servizio Azure Kubernetes, ad esempio macchine virtuali autonome o in cluster o server di database, riduce le risorse disponibili per il servizio Azure Kubernetes, che è necessario prendere in considerazione.
Prima di iniziare, prendere in considerazione i punti seguenti per determinare la scalabilità massima e il numero di cluster di destinazione che è necessario supportare:
- Numero di indirizzi IP disponibili per i pod in un cluster di destinazione.
- Numero di indirizzi IP disponibili per i servizi Kubernetes in un cluster di destinazione.
- Numero di pod necessari per eseguire i carichi di lavoro.
Per determinare le dimensioni della macchina virtuale host servizio Azure Kubernetes, è necessario conoscere il numero di nodi di lavoro e i cluster di destinazione, in quanto determina le dimensioni della macchina virtuale host del servizio Azure Kubernetes. Ad esempio:
- Numero di cluster di destinazione nel sistema distribuito finale.
- Numero di nodi, inclusi piano di controllo, bilanciamento del carico e nodi di lavoro in tutti i cluster di destinazione.
Nota
Un singolo host del servizio Azure Kubernetes può gestire solo i cluster di destinazione nella stessa piattaforma.
Inoltre, per determinare le dimensioni del nodo del piano di controllo del cluster di destinazione, è necessario conoscere il numero di pod, contenitori e nodi di lavoro che si prevede di distribuire in ogni cluster di destinazione.
Impostazioni predefinite che attualmente non possono essere modificate nel servizio Azure Kubernetes
Attualmente non sono disponibili configurazioni e impostazioni predefinite per il controllo del cliente durante o dopo la distribuzione. Queste impostazioni possono limitare la scalabilità per un determinato cluster di destinazione.
- Il numero di indirizzi IP per i pod Kubernetes in un cluster di destinazione è limitato alla subnet
10.244.0.0/16
. Ovvero, è possibile usare 255 indirizzi IP per nodo di lavoro in tutti gli spazi dei nomi Kubernetes per i pod. Per visualizzare il CIDR del pod assegnato a ogni nodo di lavoro nel cluster, usare il comando seguente in PowerShell:
kubectl get nodes -o json | findstr 'hostname podCIDR'
"kubernetes.io/hostname": "moc-lip6cotjt0f",
"f:podCIDR": {},
"f:podCIDRs": {
"f:kubernetes.io/hostname": {},
"podCIDR": "10.244.2.0/24",
"podCIDRs": [
"kubernetes.io/hostname": "moc-lmb6zqozk4m",
"f:podCIDR": {},
"f:podCIDRs": {
"f:kubernetes.io/hostname": {},
"podCIDR": "10.244.4.0/24",
"podCIDRs": [
"kubernetes.io/hostname": "moc-wgwhhijxtfv",
"f:podCIDR": {},
"f:podCIDRs": {
"f:kubernetes.io/hostname": {},
"podCIDR": "10.244.5.0/24",
"podCIDRs": [
Nell'esempio è possibile visualizzare tre nodi con tre CIDR, ognuno in grado di ospitare 254 pod. La documentazione sulla scalabilità di Kubernetes consiglia di non superare 110 pod per nodo per motivi di prestazioni. Vedere Considerazioni per cluster di grandi dimensioni.
Altre considerazioni:
- Il numero di indirizzi IP per i servizi Kubernetes, all'esterno del pool di indirizzi VIP allocato, proviene dal
10.96.0.0/16
pool di indirizzi. Il sistema usa uno dei 255 indirizzi disponibili per il server API Kubernetes. - Le dimensioni della macchina virtuale host del servizio Azure Kubernetes possono essere impostate solo durante l'installazione, quando si esegue Set-AksHciConfig per la prima volta. Non è possibile modificarlo in un secondo momento.
- È possibile impostare solo le dimensioni del piano di controllo del cluster di destinazione e delle macchine virtuali di bilanciamento del carico al momento della creazione del cluster di destinazione.
Esempio di scalabilità
L'esempio di scalabilità seguente si basa su questi presupposti/casi d'uso generali:
- Si vuole essere in grado di tollerare completamente la perdita di un nodo fisico nel cluster locale di Azure.
- Si vuole supportare l'aggiornamento dei cluster di destinazione alle versioni più recenti.
- Si vuole consentire la disponibilità elevata dei nodi del piano di controllo del cluster di destinazione e dei nodi del servizio di bilanciamento del carico.
- Si vuole riservare una parte della capacità locale di Azure complessiva per questi casi.
Suggerimenti
Per ottenere prestazioni ottimali, assicurarsi di impostare almeno il 15% (100/8=12,5) della capacità del cluster, per consentire la ridistribuzione di tutte le risorse da un nodo fisico agli altri sette (7). Questa configurazione garantisce che sia disponibile una riserva per eseguire un aggiornamento o altre due operazioni del servizio Azure Kubernetes.
Se si vuole superare il limite di 200 macchine virtuali per un cluster locale di Azure con dimensioni massime di otto (8) nodi, aumentare le dimensioni della macchina virtuale host del servizio Azure Kubernetes. Il raddoppio delle dimensioni comporta circa il doppio del numero di macchine virtuali che può gestire. In un cluster locale di Azure a 8 nodi è possibile ottenere 8.192 (8x1024) vm basate sui limiti delle risorse consigliate locali di Azure documentati nelle specifiche hardware supportate massime. È consigliabile riservare circa il 30% della capacità, che lascia un limite teorico di 5.734 macchine virtuali in tutti i nodi.
- Standard_D32s_v3, per l'host del servizio Azure Kubernetes con 32 core e 128 GB, può supportare un massimo di 1.600 nodi.
Nota
Poiché questa configurazione non è stata testata in modo approfondito, richiede un approccio e una convalida accurati.
A un livello simile a questo, è possibile suddividere l'ambiente in almeno 8 cluster di destinazione con 200 nodi di lavoro ciascuno.
Per eseguire 200 nodi di lavoro in un cluster di destinazione, è possibile usare il piano di controllo predefinito e le dimensioni del servizio di bilanciamento del carico. A seconda del numero di pod per nodo, è possibile aumentare almeno una dimensione sul piano di controllo e usare Standard_D8s_v3.
A seconda del numero di servizi Kubernetes ospitati in ogni cluster di destinazione, potrebbe essere necessario aumentare le dimensioni della macchina virtuale del servizio di bilanciamento del carico e nella creazione del cluster di destinazione per garantire che i servizi possano essere raggiunti con prestazioni elevate e il traffico venga instradato di conseguenza.
La distribuzione del servizio Azure Kubernetes abilitata da Arc distribuisce i nodi di lavoro per ogni pool di nodi in un cluster di destinazione nei nodi locali di Azure disponibili usando la logica di posizionamento locale di Azure.
Importante
Il posizionamento dei nodi non viene mantenuto durante gli aggiornamenti della piattaforma e del servizio Azure Kubernetes e cambierà nel tempo. Un nodo fisico non riuscito influirà anche sulla distribuzione delle macchine virtuali tra i nodi del cluster rimanenti.
Nota
Non eseguire più di quattro creazioni di cluster di destinazione contemporaneamente se il cluster fisico è già pieno del 50%, in quanto ciò può portare a conflitti di risorse temporanee. Quando si aumentano i pool di nodi del cluster di destinazione per numeri elevati, tenere conto delle risorse fisiche disponibili, perché il servizio Azure Kubernetes non verifica la disponibilità delle risorse per processi di creazione/ridimensionamento paralleli in esecuzione. Assicurarsi sempre una riserva sufficiente per consentire gli aggiornamenti e il failover. In particolare in ambienti molto grandi, queste operazioni, quando vengono eseguite in parallelo, possono causare un rapido esaurimento delle risorse.
In caso di dubbi, contattare l'ufficio Microsoft locale per assistenza o post nel forum della community locale di Azure.