Contribuisci 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à.
Configura la selezione della sottorete per gli indirizzi IP del Pod
Si applica a: nodi Linux con istanze Amazon EC2
Il plug-in Amazon VPC CNI per Kubernetes crea interfacce di rete elastiche secondarie (ENI) sui tuoi nodi e assegna gli indirizzi IP da tali ENI ai Pods. Per impostazione predefinita, il VPC CNI crea ENI secondari nella stessa sottorete dell'interfaccia di rete principale del nodo. È possibile controllare quali sottoreti il VPC CNI utilizza per gli indirizzi IP dei Pod tramite i seguenti metodi:
-
Rilevamento avanzato delle sottoreti: il VPC CNI rileva e utilizza automaticamente le sottoreti etichettate nello stesso VPC e
kubernetes.io/role/cninella stessa zona di disponibilità. Richiede VPC CNI versione 1.18.0 o successiva. Consigliamo questo metodo per la maggior parte dei casi d'uso. -
Rete personalizzata: specifica manualmente le sottoreti e i gruppi di sicurezza per zona di disponibilità utilizzando risorse
ENIConfigpersonalizzate. Per ulteriori informazioni, consulta Implementazione dei pod in sottoreti alternative con reti personalizzate.
Nota
Le reti personalizzate hanno la precedenza quando entrambe le funzionalità sono abilitate.
Rilevamento avanzato delle sottoreti
VPC CNI versione 1.18.0 e successive abilita l'individuazione avanzata delle sottoreti per impostazione predefinita (). ENABLE_SUBNET_DISCOVERY=true Il VPC CNI rileva automaticamente le sottoreti nello stesso VPC e nella stessa zona di disponibilità del nodo, quindi le utilizza per creare ENI secondari e allocare indirizzi IP Pod. Ciò espande lo spazio di indirizzi IP disponibile senza configurazione manuale. ENIConfig
Per verificare che la funzionalità sia abilitata:
kubectl describe ds aws-node -n kube-system | grep ENABLE_SUBNET_DISCOVERY
Per disabilitare questa funzionalità, imposta ENABLE_SUBNET_DISCOVERY=false su aws-node DaemonSet.
Comportamento dei tag di sottorete (kubernetes). io/role/cni)
Il kubernetes.io/role/cni tag controlla il modo in cui il VPC CNI tratta le sottoreti per le operazioni ENI e l'allocazione IP del Pod. Il tag ha effetti diversi a seconda che il VPC CNI stia creando un nuovo ENI o riconciliando uno esistente.
Importante
I meccanismi di etichettatura Cluster-scoped ed esclusione sono disponibili solo a partire dalla versione v1.22.2 VPC CNI. Prima di questa versione, tramite il tag era disponibile solo il comportamento di opt-in standard. kubernetes.io/role/cni=1
Valori Tag
La tabella seguente riassume il modo in cui ogni valore di tag influisce sul comportamento della sottorete:
| Valore di tag | Nuova creazione di ENI | Riconciliazione ENI esistente |
|---|---|---|
|
|
Opt-in: Il VPC CNI crea nuovi ENI in questa sottorete. |
L'ENI rimane disponibile per l'assegnazione di Pod IP. |
|
|
Escluso: il CNI VPC non crea nuovi ENI in questa sottorete. |
Escluso: il CNI VPC esclude gli ENI esistenti in questa sottorete dall'allocazione IP del Pod. Nessun nuovo IP Pod viene assegnato da questo ENI. |
|
Assente (nessun tag) |
Non utilizzato per i nuovi ENI: il VPC CNI non seleziona sottoreti secondarie senza il tag per la creazione di nuovi ENI. La sottorete principale (la sottorete in cui è stato lanciato il nodo) viene ancora utilizzata per la creazione di nuove ENI anche senza il tag, per la compatibilità con le versioni precedenti. |
Nessuna interruzione: gli ENI esistenti nelle sottoreti senza tag rimangono disponibili per l'allocazione IP dei Pod. Il VPC CNI non rimuove o esclude questi ENI. |
Comportamento tra creazione e riconciliazione
Il VPC CNI applica intenzionalmente politiche diverse durante la creazione di nuovi ENI e la riconciliazione degli ENI esistenti:
-
Creazione (errore chiuso per le sottoreti secondarie): quando il CNI VPC deve creare un nuovo ENI secondario, utilizza solo sottoreti secondarie etichettate in modo esplicito.
kubernetes.io/role/cni=1Le sottoreti secondarie senza tag non vengono mai selezionate per la creazione di nuove ENI. Ciò garantisce che le nuove interfacce di rete vengano inserite solo nelle sottoreti approvate esplicitamente dagli amministratori. -
Riconciliazione (fail-open per sottoreti senza tag): quando il VPC CNI si avvia o riconcilia gli ENI esistenti già collegati al nodo, non esclude gli ENI perché la loro sottorete non ha il tag.
kubernetes.io/role/cniIn questo modo si evita l'interruzione dell'esecuzione dei Pod che già utilizzano gli indirizzi IP di tali ENI.
Il VPC CNI utilizza questo design intenzionalmente. L'esclusione forzata di un ENI già collegato da una sottorete priva di tag danneggerebbe i Pod che attualmente utilizzano gli indirizzi IP di quell'ENI.
Importante
Per evitare che una sottorete serva nuovi IP Pod, inclusi quelli degli ENI esistenti, taggate la sottorete con. kubernetes.io/role/cni=0 Un tag assente impedisce solo la creazione di nuovi ENI in quella sottorete. Non esclude gli ENI esistenti dall'allocazione.
Gestione della sottorete principale
Il VPC CNI include sempre la sottorete principale del nodo (la sottorete in cui è stato avviato il nodo) per la creazione dell'ENI, anche senza il tag. kubernetes.io/role/cni Ciò mantiene la retrocompatibilità con i cluster esistenti. Il comportamento principale della sottorete:
-
Incluso per la creazione di ENI indipendentemente dalla presenza del tag (a meno che non sia taggato
0). -
Se contrassegnato con
kubernetes.io/role/cni=0, il VPC CNI esclude la sottorete principale sia dalla creazione di una nuova ENI che dall'allocazione ENI esistente.
Cluster-scoped filtraggio di sottoreti
Quando una sottorete è etichettata conkubernetes.io/role/cni=1, il VPC CNI verifica inoltre la presenza di tag specifici del cluster utilizzando il formato chiave. cni.networking.k8s.aws/cluster/<cluster-name> Se una sottorete ha tag di cluster in questo formato, solo il cluster il cui nome corrisponde utilizza quella sottorete. Le sottoreti con kubernetes.io/role/cni=1 e senza tag specifici del cluster sono disponibili per tutti i cluster nel VPC.
Ad esempio, per limitare una sottorete a un cluster specifico:
aws ec2 create-tags --resources subnet-example \ --tags Key=kubernetes.io/role/cni,Value=1 Key=cni.networking.k8s.aws/cluster/my-cluster,Value=shared
Ciò è utile quando più cluster EKS condividono un VPC e si desidera che ogni cluster utilizzi sottoreti diverse per gli indirizzi IP dei Pod.
Flusso di lavoro raccomandato
Per aggiungere nuove sottoreti per gli indirizzi IP Pod:
-
Crea nuove sottoreti nello stesso VPC e nella stessa zona di disponibilità dei tuoi nodi.
-
Etichetta le sottoreti con.
kubernetes.io/role/cni=1 -
Assicurati che le sottoreti abbiano tabelle di routing e ACL di rete appropriati.
-
Verifica che il CNI VPC rilevi e inizi a utilizzare le nuove sottoreti.
Per rimuovere una sottorete dall'allocazione IP del Pod:
-
Etichetta la sottorete con.
kubernetes.io/role/cni=0 -
Attendi che i Pod che utilizzano gli IP di quella sottorete terminino o vengano riprogrammati in modo naturale.
-
Verifica che il CNI VPC interrompa l'allocazione di nuovi IP Pod dagli ENI in quella sottorete.
Importante
Non rimuovete il kubernetes.io/role/cni tag per smettere di usare una sottorete. La rimozione del tag impedisce la creazione di nuove ENI ma non esclude gli ENI esistenti dall'allocazione. Per escludere attivamente una sottorete, contrassegnatela con. kubernetes.io/role/cni=0
Considerazioni
-
Il rilevamento avanzato delle sottoreti richiede Amazon VPC CNI versione 1.18.0 o successiva.
-
La funzionalità richiede l'
ec2:DescribeSubnetsautorizzazione nel ruolo VPC CNI IAM. La policyAmazonEKS_CNI_Policygestita include questa autorizzazione. La policy IAM autogestita IPv6 non la include. Se utilizzi una policy IAM autogestita (ad esempio, per i cluster IPv6), aggiungila manualmente per abilitare il rilevamento delle sottoreti.ec2:DescribeSubnets -
La funzionalità funziona sia con la modalità di indirizzo IP secondario che con la modalità di delega del prefisso.
-
Tutte le sottoreti rilevate devono trovarsi nello stesso VPC del nodo.
-
Il VPC CNI crea ENI solo nelle sottoreti che si trovano nella stessa zona di disponibilità del nodo.
-
Il VPC CNI non dealloca gli ENI che hanno ancora indirizzi IP assegnati ai Pod, indipendentemente dalle modifiche ai tag.
-
Quando si utilizzano VPC condivisi (sottoreti multiaccount), tagga le sottoreti nell'account del partecipante in cui viene avviato il cluster.
-
È possibile utilizzare il rilevamento avanzato delle sottoreti insieme ai gruppi di sicurezza per i pod, le politiche di rete, la delega dei prefissi e SNAT.