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

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 IPv4 assegnare IPv6 o prefissi alle istanze Amazon Elastic Compute Cloud (Amazon). EC2 Aumenta gli indirizzi IP per interfaccia di rete (ENI), il che aumenta la densità dei pod per nodo e migliora 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 le sottoreti VPCs e le sottoreti tenendo conto della crescita.

L'adozione 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, migliorare la progettazione del VPC è la risposta consigliata all'esaurimento degli indirizzi IP. La tecnica più comunemente utilizzata dai clienti di Amazon EKS consiste nell'aggiungere un dispositivo secondario non routabile CIDRs 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 caldo IPs assegnato 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 IPv6 è il modo più semplice per aggirare le RFC1918 limitazioni; consigliamo vivamente di prendere in considerazione l'adozione 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 dedicare sforzi per aggirare i limiti. IPv4

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

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

Cluster EKS in modalità IPv6

Ottimizza il consumo di IP nei IPv4 cluster

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

Piano per la crescita

Come prima linea di difesa contro l'esaurimento degli indirizzi IP, consigliamo vivamente di dimensionare le sottoreti IPv4 VPCs e le sottoreti 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 utilizzano le dimensioni VPCs e le sottoreti, potrebbero esserci diversi elementi (diversi dai pod e dai nodi) che possono consumare gli 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 crea 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 IPv4 sottorete 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 state per esaurire lo spazio RFC1918 IP, potete utilizzare il pattern Custom Networking per preservare la routability IPs 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 CIDRs (/16) dallo spazio CG-NAT, 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 sui cluster VPC e Amazon EKS, nuove interfacce di rete elastiche ENIs () verranno collegate ai 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 la piscina calda IPs

Con la configurazione predefinita, il VPC CNI mantiene un intero ENI (e associato IPs) nella piscina calda. Ciò può richiedere un gran numero di istanze IPs, 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 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' EC2 API e ciò potrebbe comportare una limitazione delle richieste. Per cluster di grandi dimensioni, usa along with MINIMUM_IP_TARGET per 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 Secondary. CIDRs La regolazione di questi valori per ridurre al minimo il numero di Warm IPs 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 disporre anche della 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 che ENIs il cluster può supportare

  • numero di quelli ENIs 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 VPCs o condividere un VPC su più account per limitare l'allocazione degli IPv4 indirizzi.

Scopri di più su questi modelli qui: