View a markdown version of this page

Ottimizzazione dell'utilizzo degli indirizzi IP - Amazon EKS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottimizzazione dell'utilizzo degli indirizzi IP

Suggerimento

Esplora le best practice tramite i workshop Amazon EKS.

Gli ambienti containerizzati stanno crescendo in scala a un ritmo rapido, grazie alla modernizzazione delle applicazioni. Ciò significa che vengono implementati sempre più nodi e pod di lavoro.

Il plug-in Amazon VPC CNI assegna a ciascun pod un indirizzo IP dai CIDR del VPC. Questo approccio offre la piena visibilità degli indirizzi Pod con strumenti come VPC Flow Logs e altre soluzioni di monitoraggio. A seconda del tipo di carico di lavoro, ciò può causare il consumo di un numero considerevole di indirizzi IP da parte dei pod.

Quando si progetta l'architettura di rete AWS, è importante ottimizzare il consumo IP di Amazon EKS a livello di VPC e di nodo. Questo ti aiuterà a mitigare i problemi di esaurimento dell'IP e ad aumentare la densità dei pod per nodo.

In questa sezione, discuteremo delle tecniche che possono aiutarvi a raggiungere questi obiettivi.

Ottimizza il consumo IP a livello di nodo

La delega dei prefissi è una funzionalità di Amazon Virtual Private Cloud (Amazon VPC) che consente di assegnare prefissi IPv4 o IPv6 alle istanze Amazon Elastic Compute Cloud (Amazon EC2). Aumenta gli indirizzi IP per interfaccia di rete (ENI), aumentando la densità dei pod per nodo e migliorando l'efficienza di elaborazione. La delega dei prefissi è supportata anche con Custom Networking.

Per informazioni dettagliate, consulta le sezioni Delega dei prefissi con nodi Linux e Delegazione dei prefissi con nodi Windows.

Riduci l'esaurimento dell'IP

Per evitare che i cluster consumino tutti gli indirizzi IP disponibili, consigliamo vivamente di dimensionare i VPC e le sottoreti tenendo conto della crescita.

L'adozione di IPv6 è un ottimo modo per evitare questi problemi fin dall'inizio. Tuttavia, per le organizzazioni le cui esigenze di scalabilità superano la pianificazione iniziale e non possono adottare IPv6, il miglioramento della progettazione del VPC è la risposta consigliata all'esaurimento degli indirizzi IP. La tecnica più comunemente utilizzata dai clienti Amazon EKS consiste nell'aggiungere CIDR secondari non routabili al VPC e configurare il VPC CNI per utilizzare questo spazio IP aggiuntivo durante l'allocazione degli indirizzi IP ai Pod. Questa operazione viene comunemente denominata rete personalizzata.

Tratteremo quali variabili del CNI di Amazon VPC puoi utilizzare per ottimizzare il pool di IP caldi assegnati ai tuoi nodi. Chiuderemo questa sezione con altri modelli architettonici che non sono intrinseci ad Amazon EKS ma che possono aiutare a mitigare l'esaurimento dell'IP.

L'adozione di IPv6 è il modo più semplice per aggirare le limitazioni della RFC1918; consigliamo vivamente di prendere in considerazione l'adozione di IPv6 come prima opzione nella scelta di un'architettura di rete. IPv6 offre uno spazio totale di indirizzi IP notevolmente più ampio e gli amministratori dei cluster possono concentrarsi sulla migrazione e sulla scalabilità delle applicazioni senza impegnarsi per aggirare i limiti IPv4.

I cluster Amazon EKS supportano sia IPv4 che IPv6. Per impostazione predefinita, i cluster EKS utilizzano lo spazio degli indirizzi IPv4. La specifica di uno spazio di indirizzi basato su IPv6 al momento della creazione del cluster consentirà l'uso di IPv6. In un cluster EKS IPv6, i pod e i servizi ricevono indirizzi IPv6, pur mantenendo la capacità degli endpoint IPv4 legacy di connettersi ai servizi in esecuzione su cluster IPv6 e viceversa. Tutte le comunicazioni pod-to-pod all'interno di un cluster avvengono sempre tramite IPv6. All'interno di un VPC (/56), la dimensione del blocco CIDR IPv6 per le sottoreti IPv6 è fissata a /64. Ciò fornisce 2^64 (circa 18 quintilioni) di indirizzi IPv6 che consentono di scalare le implementazioni su EKS.

Per informazioni dettagliate, consulta la sezione Running IPv6 EKS Clusters e per un'esperienza pratica, consulta la sezione Understanding IPv6 on Amazon EKS del workshop Get hands-on with IPv6.

Cluster EKS in modalità IPv6

Ottimizza il consumo di IP nei cluster IPv4

Questa sezione è dedicata ai clienti che eseguono applicazioni legacy e non and/or sono pronti a migrare a IPv6. Sebbene incoraggiamo tutte le organizzazioni a migrare all'IPv6 il prima possibile, riconosciamo che alcune potrebbero aver ancora bisogno di cercare approcci alternativi per scalare i carichi di lavoro dei container con IPv4. Per questo motivo, ti illustreremo anche i modelli architettonici per ottimizzare il consumo di spazio degli indirizzi IPv4 (RFC1918) con i cluster Amazon EKS.

Piano per la crescita

Come prima linea di difesa contro l'esaurimento dell'IP, consigliamo vivamente di dimensionare i VPC e le sottoreti IPv4 tenendo conto della crescita, per evitare che i cluster consumino tutti gli indirizzi IP disponibili. Non sarà possibile creare nuovi pod o nodi se le sottoreti non dispongono di un numero sufficiente di indirizzi IP disponibili.

Prima di creare VPC e sottoreti, si consiglia di lavorare a ritroso rispetto alla scala del carico di lavoro richiesta. Ad esempio, quando i cluster vengono creati utilizzando eksctl (un semplice strumento CLI per la creazione e la gestione di cluster su EKS) /19 sottoreti vengono create per impostazione predefinita. Una netmask di /19 è adatta alla maggior parte dei tipi di carichi di lavoro e consente di allocare più di 8000 indirizzi.

Importante

Quando si dimensionano VPC e sottoreti, potrebbero esserci diversi elementi (diversi dai pod e dai nodi) che possono consumare indirizzi IP, ad esempio Load Balancer, database RDS e altri servizi in-vpc.

Inoltre, Amazon EKS può creare fino a 4 interfacce di rete elastiche (X-ENI) necessarie per consentire la comunicazione verso il piano di controllo (maggiori informazioni qui). Durante gli upgrade dei cluster, Amazon EKS ne crea di nuovi X-ENIs ed elimina quelli vecchi quando l'upgrade ha esito positivo. Per questo motivo consigliamo una maschera di rete di almeno /28 (16 indirizzi IP) per le sottoreti associate a un cluster EKS.

È possibile utilizzare il foglio di calcolo di esempio EKS Subnet Calculator per pianificare la rete. Il foglio di calcolo calcola l'utilizzo dell'IP in base ai carichi di lavoro e alla configurazione ENI VPC. L'utilizzo dell'IP viene confrontato con quello di una sottorete IPv4 per determinare se la configurazione e le dimensioni della sottorete sono sufficienti per il carico di lavoro. Tieni presente che, se le sottoreti del tuo VPC esauriscono gli indirizzi IP disponibili, ti suggeriamo di creare una nuova sottorete utilizzando i blocchi CIDR originali del VPC. Tieni presente che ora Amazon EKS consente la modifica delle sottoreti del cluster e dei gruppi di sicurezza.

Rete personalizzata

Se stai per esaurire lo spazio IP RFC1918, puoi utilizzare il pattern Custom Networking per conservare gli IP instradabili programmando i Pod all'interno di sottoreti aggiuntive dedicate. Sebbene la rete personalizzata accetti un intervallo VPC valido per l'intervallo CIDR secondario, si consiglia di utilizzare i CIDR (/16) dallo CG-NAT spazio, 100.64.0.0/10 ovvero 198.19.0.0/16 poiché è meno probabile che vengano utilizzati in un ambiente aziendale rispetto agli intervalli RFC1918.

Per informazioni dettagliate, consulta la sezione dedicata alle reti personalizzate.

Rete personalizzata

Rilevamento avanzato delle sottoreti

Enhanced Subnet Discovery offre un'alternativa di configurazione di rete semplificata per l'esaurimento dell'IP, contrassegnando nuove sottoreti in modo che siano rilevabili dal CNI di Amazon VPC. Con Enhanced Subnet Discovery, i carichi di lavoro attuali possono continuare a funzionare sulle stesse sottoreti e Amazon Elastic Kubernetes Service (Amazon EKS) può ora pianificare pod aggiuntivi sulle nuove «sottoreti utilizzabili».

Se le sottoreti correnti del tuo cluster stanno esaurendo gli indirizzi IP, puoi semplicemente aggiungere altre sottoreti al cluster Amazon EKS come segue:

  1. Associa un nuovo blocco CIDR al tuo VPC.

  2. Crea una nuova sottorete nel nuovo blocco CIDR e taggala con «kubernetes». io/role/cni "= «1".

  3. Abilita la configurazione ENABLE_SUBNET_DISCOVERY del componente aggiuntivo Amazon VPC CNI su «true» (impostazione predefinita dalla versione 1.18.0).

Una volta abilitato Enhanced Subnet Discovery sul tuo VPC e sui cluster Amazon EKS, nuove Interfacce di rete elastiche (ENI) verranno collegate ai tuoi nodi Amazon EKS come descritto nel diagramma seguente:

Enhanced Subnet Discovery

Per ulteriori informazioni, consulta Amazon VPC CNI introduce Enhanced Subnet Discovery sul blog dei contenitori AWS.

Ottimizza il pool caldo degli IP

Con la configurazione predefinita, il VPC CNI mantiene un intero ENI (e gli IP associati) nel pool caldo. Ciò può consumare un gran numero di IP, specialmente su tipi di istanze più grandi.

Se la sottorete del cluster ha un numero limitato di indirizzi IP disponibili, esamina queste variabili di ambiente di configurazione VPC CNI:

  • WARM_IP_TARGET

  • MINIMUM_IP_TARGET

  • WARM_ENI_TARGET

Puoi configurare il valore di in modo che corrisponda MINIMUM_IP_TARGET esattamente al numero di Pod che prevedi di eseguire sui tuoi nodi. In questo modo, al momento della creazione dei Pod, il CNI potrà assegnare gli indirizzi IP dal pool caldo senza chiamare l'API EC2.

Tieni presente che l'impostazione di un valore WARM_IP_TARGET troppo basso comporterà ulteriori chiamate all'API EC2 e ciò potrebbe comportare una limitazione delle richieste. Per cluster di grandi dimensioni, usa «along «MINIMUM_IP_TARGETper evitare la limitazione delle richieste.

Per configurare queste opzioni, puoi scaricare il aws-k8s-cni.yaml manifesto e impostare le variabili di ambiente. Al momento in cui scriviamo, la versione più recente si trova qui. Verifica che la versione del valore di configurazione corrisponda alla versione VPC CNI installata.

avvertimento

Queste impostazioni verranno ripristinate ai valori predefiniti quando aggiorni il CNI. Effettua un backup del CNI prima di aggiornarlo. Rivedi le impostazioni di configurazione per determinare se è necessario riapplicarle dopo che l'aggiornamento è andato a buon fine.

È possibile regolare i parametri CNI all'istante senza tempi di inattività per le applicazioni esistenti, ma è consigliabile scegliere valori che supportino le esigenze di scalabilità. Ad esempio, se lavori con carichi di lavoro in batch, ti consigliamo di aggiornare l'impostazione predefinita in modo che soddisfi le esigenze della WARM_ENI_TARGET scala Pod. L'impostazione WARM_ENI_TARGET su un valore elevato mantiene sempre il pool IP caldo necessario per eseguire carichi di lavoro in batch di grandi dimensioni ed evitare quindi ritardi nell'elaborazione dei dati.

avvertimento

Il miglioramento del design del VPC è la risposta consigliata all'esaurimento degli indirizzi IP. Prendi in considerazione soluzioni come IPv6 e CIDR secondari. La regolazione di questi valori per ridurre al minimo il numero di IP Warm dovrebbe essere una soluzione temporanea dopo l'esclusione di altre opzioni. Una configurazione errata di questi valori può interferire con il funzionamento del cluster. Prima di apportare modifiche a un sistema di produzione, assicuratevi di leggere le considerazioni contenute in questa pagina.

Monitora l'inventario degli indirizzi IP

Oltre alle soluzioni sopra descritte, è importante anche avere visibilità sull'utilizzo dell'IP. È possibile monitorare l'inventario degli indirizzi IP delle sottoreti utilizzando CNI Metrics Helper. Alcune delle metriche disponibili sono:

  • numero massimo di ENI che il cluster può supportare

  • numero di ENI già assegnati

  • numero di indirizzi IP attualmente assegnati ai Pod

  • numero totale e massimo di indirizzi IP disponibili

Puoi anche impostare CloudWatch allarmi per ricevere una notifica se una sottorete sta esaurendo gli indirizzi IP.

avvertimento

Assicurati che la DISABLE_METRICS variabile per VPC CNI sia impostata su false.

Ulteriori considerazioni

Esistono altri modelli architettonici non intrinseci ad Amazon EKS che possono contribuire all'esaurimento dell'IP. Ad esempio, puoi ottimizzare la comunicazione tra VPC o condividere un VPC tra più account per limitare l'allocazione degli indirizzi IPv4.

Scopri di più su questi modelli qui: