Collega più interfacce di rete ai pod - Amazon EKS

Aiutaci a migliorare questa pagina

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à.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

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à.

Collega più interfacce di rete ai pod

Per impostazione predefinita, il plug-in Amazon VPC CNI assegna un indirizzo IP a ciascun pod. Questo indirizzo IP è collegato a un'interfaccia di rete elastica che gestisce tutto il traffico in entrata e in uscita per il pod. Per aumentare la larghezza di banda e le prestazioni in termini di velocità di pacchetti al secondo, puoi utilizzare la funzionalità Multi-NIC di VPC CNI per configurare un pod multi-homed. Un pod multihomed è un singolo pod Kubernetes che utilizza più interfacce di rete (e più indirizzi IP). Eseguendo un pod multihomed, puoi distribuire il traffico delle applicazioni su più interfacce di rete utilizzando connessioni simultanee. Ciò è particolarmente utile per i casi d'uso di Intelligenza Artificiale (AI), Machine Learning (ML) e High Performance Computing (HPC).

Il diagramma seguente mostra un pod multi-homed in esecuzione su un nodo di lavoro con più schede di interfaccia di rete () NICs in uso.

Un pod multi-homed con due interfacce di rete collegate, un'interfaccia di rete con ENA e un'interfaccia di rete con ENA ed EFA

Contesto

Su Amazon EC2, un'interfaccia di rete elastica è un componente di rete logico in un VPC che rappresenta una scheda di rete virtuale. Per molti tipi di EC2 istanze, le interfacce di rete condividono una singola scheda di interfaccia di rete (NIC) nell'hardware. Questa singola scheda NIC ha una larghezza di banda e una velocità massime di pacchetti al secondo.

Se la funzionalità Multi-NIC è abilitata, il VPC CNI non assegna gli indirizzi IP in blocco, come avviene per impostazione predefinita. Invece, il VPC CNI assegna un indirizzo IP a un'interfaccia di rete su ciascuna scheda di rete su richiesta all'avvio di un nuovo pod. Questo comportamento riduce la velocità di esaurimento degli indirizzi IP, che viene aumentata utilizzando pod multihomed. Poiché il VPC CNI assegna l'indirizzo IP su richiesta, l'avvio dei pod potrebbe richiedere più tempo sulle istanze con la funzionalità multi-NIC abilitata.

Considerazioni

  • Assicurati che sul tuo cluster Kubernetes sia in esecuzione la versione VPC CNI e successive. 1.20.0 La funzionalità Multi-NIC è disponibile solo nella versione 1.20.0 VPC CNI o successiva.

  • Abilita la variabile di ENABLE_MULTI_NIC ambiente nel plugin VPC CNI. È possibile eseguire il comando seguente per impostare la variabile e avviare una distribuzione di. DaemonSet

    • kubectl set env daemonset aws-node -n kube-system ENABLE_MULTI_NIC=true

  • Assicuratevi di creare nodi di lavoro con più schede di interfaccia di rete (NICs). Per un elenco di EC2 istanze con più schede di interfaccia di rete, consulta Schede di rete nella Amazon EC2 User Guide.

  • Se la funzionalità Multi-NIC è abilitata, il VPC CNI non assegna gli indirizzi IP in blocco, come avviene per impostazione predefinita. Poiché il VPC CNI assegna l'indirizzo IP su richiesta, l'avvio dei pod potrebbe richiedere più tempo sulle istanze con la funzionalità multi-NIC abilitata. Per ulteriori informazioni, consulta la sezione Contesto precedente.

  • Con la funzionalità Multi-NIC abilitata, per impostazione predefinita i pod non dispongono di più interfacce di rete. È necessario configurare ogni carico di lavoro per utilizzare Multi-NIC. Aggiungi l'k8s.amazonaws.com/nicConfig: multi-nic-attachmentannotazione ai carichi di lavoro che dovrebbero avere più interfacce di rete.

Considerazioni su IPv6

  • Policy IAM personalizzata: per IPv6 i cluster, crea e utilizza la seguente politica IAM personalizzata per il VPC CNI. Questa policy è specifica per Multi-NIC. Per informazioni più generali sull'utilizzo del CNI VPC con i IPv6 cluster, vedere. Scopri IPv6 gli indirizzi di cluster, pod e servizi

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonEKSCNIPolicyIPv6MultiNIC", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeInstances", "ec2:AssignIpv6Addresses", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeInstanceTypes", "ec2:UnassignIpv6Addresses", "ec2:AttachNetworkInterface", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Sid": "AmazonEKSCNIPolicyENITagIPv6MultiNIC", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*" } ] }
  • IPv6meccanismo di transizione non disponibile - Se si utilizza la funzionalità Multi-NIC, il VPC CNI non assegna IPv4 un indirizzo ai pod di un cluster. IPv6 Altrimenti, il VPC CNI assegna un IPv4 indirizzo host locale a ciascun pod in modo che un pod possa comunicare con risorse esterne in un IPv4 altro Amazon VPC o su Internet.

Utilizzo

Dopo aver abilitato la funzionalità Multi-NIC nel CNI VPC e riavviato aws-node i pod, puoi configurare ogni carico di lavoro in modo che sia multihomed. Il seguente esempio di configurazione YAML con l'annotazione richiesta:

apiVersion: apps/v1 kind: Deployment metadata: name: orders-deployment namespace: ecommerce labels: app: orders spec: replicas: 3 selector: matchLabels: app: orders template: metadata: annotations: k8s.amazonaws.com/nicConfig: multi-nic-attachment labels: app: orders spec: ...

Domande frequenti

1. Cos'è una scheda di interfaccia di rete (NIC)?

Una scheda di interfaccia di rete (NIC), chiamata anche semplicemente scheda di rete, è un dispositivo fisico che consente la connettività di rete per l'hardware di cloud computing sottostante. Nei EC2 server moderni, si riferisce alla scheda di rete Nitro. Un'interfaccia di rete elastica (ENI) è una rappresentazione virtuale di questa scheda di rete sottostante.

Alcuni tipi di EC2 istanza ne hanno più di uno NICs per aumentare le prestazioni in termini di larghezza di banda e velocità dei pacchetti. In questi casi, è possibile assegnare schede di rete secondarie ENIs alle schede di rete aggiuntive. Ad esempio, ENI #1 può funzionare come interfaccia per la NIC collegata all'indice 0 della scheda di rete, mentre ENI #2 può funzionare come interfaccia per la NIC collegata a un indice di schede di rete separato.

2. Cos'è un pod multihomed?

Un pod multihomed è un singolo pod Kubernetes con più interfacce di rete (e implicitamente più indirizzi IP). Ogni interfaccia di rete pod è associata a un'interfaccia di rete elastica (ENI) e si tratta di rappresentazioni logiche di un nodo di lavoro separato sul ENIs nodo di lavoro sottostante. NICs Con più interfacce di rete, un pod multi-homed ha una capacità di trasferimento dati aggiuntiva, che aumenta anche la velocità di trasferimento dei dati.

Importante

Il VPC CNI può configurare pod multihomed solo su tipi di istanze che ne hanno più. NICs

3. Perché dovrei usare questa funzionalità?

Se hai bisogno di scalare le prestazioni di rete nei tuoi carichi di lavoro basati su Kubernetes, puoi utilizzare la funzionalità Multi-NIC per eseguire pod multihomed che si interfacciano con tutti i dispositivi sottostanti NICs a cui è collegato un dispositivo ENA. L'utilizzo di schede di rete aggiuntive aumenta la capacità di larghezza di banda e le prestazioni della velocità dei pacchetti nelle applicazioni distribuendo il traffico delle applicazioni su più connessioni simultanee. Ciò è particolarmente utile per i casi d'uso di Intelligenza Artificiale (AI), Machine Learning (ML) e High Performance Computing (HPC).

4. Come posso usare questa funzionalità?

  1. Innanzitutto, devi assicurarti che il tuo cluster Kubernetes utilizzi VPC CNI versione 1.20 o successiva. Per i passaggi per aggiornare il VPC CNI come componente aggiuntivo EKS, consulta. Aggiornamento del CNI di Amazon VPC (componente aggiuntivo Amazon EKS)

  2. Quindi, è necessario abilitare il supporto multi-NIC nel CNI VPC utilizzando ENABLE_MULTI_NIC la variabile di ambiente.

  3. Quindi, è necessario assicurarsi di creare e unire nodi con più schede di rete. Per un elenco di tipi di EC2 istanze con più schede di rete, consulta Schede di rete nella Amazon EC2 User Guide.

  4. Infine, configuri ogni carico di lavoro per utilizzare più interfacce di rete (pod multihomed) o utilizzare un'unica interfaccia di rete.

5. Come posso configurare i miei carichi di lavoro per utilizzarne più di uno NICs su un nodo di lavoro supportato?

Per utilizzare i pod multihomed, devi aggiungere la seguente annotazione:. k8s.amazonaws.com/nicConfig: multi-nic-attachment Questo collegherà un ENI da ogni NIC dell'istanza sottostante al pod (mappatura uno a più tra un pod e il). NICs

Se manca questa annotazione, il VPC CNI presuppone che il pod richieda solo 1 interfaccia di rete e gli assegna un IP da un ENI su qualsiasi NIC disponibile.

6. Quali adattatori di interfaccia di rete sono supportati da questa funzionalità?

È possibile utilizzare qualsiasi adattatore di interfaccia di rete se si dispone di almeno un ENA collegato alla scheda di rete sottostante per il traffico IP. Per ulteriori informazioni su ENA, consulta Elastic Network Adapter (ENA) nella Amazon EC2 User Guide.

Configurazioni dei dispositivi di rete supportate:

  • Le interfacce ENA offrono tutte le tradizionali funzionalità di rete e routing IP necessarie per supportare la rete IP per un VPC. Per ulteriori informazioni, consulta Abilitare il networking avanzato con ENA sulle EC2 istanze.

  • Le interfacce EFA (EFA con ENA) forniscono sia il dispositivo ENA per le reti IP sia il dispositivo EFA per le comunicazioni a bassa latenza e ad alto rendimento.

Importante

Se a una scheda di rete è collegato solo un adattatore EFA, il VPC CNI lo ignorerà durante il provisioning della connettività di rete per un pod multi-homed. Tuttavia, se si combina un adattatore solo EFA con un adattatore ENA su una scheda di rete, il VPC CNI ENIs gestirà anche questo dispositivo. Per utilizzare interfacce solo EFA con i cluster EKS, vedere. Esegui corsi di apprendimento automatico su Amazon EKS con Elastic Fabric Adapter

7. Posso vedere se un nodo del mio cluster supporta ENA?

Sì, puoi utilizzare la AWS CLI o l' EC2 API per recuperare informazioni di rete su un' EC2 istanza nel tuo cluster. Ciò fornisce dettagli sul fatto che l'istanza disponga o meno del supporto ENA. Nell'esempio seguente, sostituisci <your-instance-id> con l'ID di EC2 istanza di un nodo.

AWS Esempio di CLI:

aws ec2 describe-instances --instance-ids <your-instance-id> --query "Reservations[].Instances[].EnaSupport"

Output di esempio:

[ true ]

8. Posso vedere i diversi indirizzi IP associati a un pod?

No, non facilmente. Tuttavia, è possibile utilizzare nsenter dal nodo per eseguire strumenti di rete comuni come ip route show e visualizzare gli indirizzi IP e le interfacce aggiuntivi.

9. Posso controllare il numero di interfacce di rete per i miei pod?

No. Quando il carico di lavoro è configurato per utilizzarne più di uno NICs su un'istanza supportata, un singolo pod ha automaticamente un indirizzo IP da ogni scheda di rete dell'istanza. In alternativa, i pod single-homed avranno un'interfaccia di rete collegata a una NIC sull'istanza.

Importante

Le schede di rete a cui è collegato solo un dispositivo solo EFA vengono ignorate dal VPC CNI.

10. Posso configurare i miei pod per utilizzare una scheda NIC specifica?

No, questa funzionalità non è supportata. Se un pod ha l'annotazione pertinente, il VPC CNI lo configura automaticamente per utilizzare ogni NIC con un adattatore ENA sul nodo di lavoro.

11. Questa funzionalità funziona con le altre funzionalità di rete VPC CNI?

Sì, la funzionalità Multi-NIC di VPC CNI funziona sia con reti personalizzate che con sottoreti avanzato. Tuttavia, i pod multihomed non utilizzano sottoreti o gruppi di sicurezza personalizzati. Invece, il VPC CNI assegna indirizzi IP e interfacce di rete ai pod multihomed con la stessa configurazione di sottorete e gruppo di sicurezza del nodo. Per ulteriori informazioni sulle reti personalizzate, vedere. Distribuisci i pod in sottoreti alternative con reti personalizzate

La funzionalità multi-NIC del VPC CNI non funziona e non può essere combinata con i gruppi di sicurezza per i pod.

12. Posso usare le politiche di rete con questa funzionalità?

Sì, puoi utilizzare le politiche di rete Kubernetes con Multi-NIC. Le policy di rete Kubernetes limitano il traffico di rete da e verso i tuoi pod. Per ulteriori informazioni sull'applicazione delle politiche di rete con VPC CNI, vedere. Limita il traffico dei Pod con le politiche di rete Kubernetes

13. Il supporto multi-NIC è abilitato in modalità automatica EKS?

La multi-NIC non è supportata per i cluster EKS Auto Mode.