Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Limita il traffico di Pod con le policy di rete di Kubernetes
Per impostazione predefinita, in Kubernetes non ci sono restrizioni per indirizzi IP, porte o connessioni tra qualsiasi Pod nel cluster o tra i pod e le risorse in qualsiasi altra rete. È possibile utilizzare la policy di rete di Kubernetes per limitare il traffico di rete da e verso i pod. Per ulteriori informazioni, consulta Network Policies
Se si dispone di una versione 1.13 o precedente del plug-in CNI di Amazon VPC per Kubernetes sul cluster, è necessario implementare una soluzione di terze parti per applicare le policy di rete di Kubernetes al cluster. Una versione 1.14 o successiva del plug-in è in grado di implementare le policy di rete, quindi non è necessario utilizzare una soluzione di terze parti. In questo argomento, viene descritto come configurare il cluster per l’utilizzo delle policy di rete di Kubernetes sul cluster senza utilizzare componenti aggiuntivi di terze parti.
Le policy di rete nel plug-in CNI di Amazon VPC per Kubernetes sono supportate nelle seguenti configurazioni.
-
Versione 1.14 o successiva del plug-in CNI di Amazon VPC per Kubernetes sul cluster.
-
Cluster configurato per indirizzi
IPv4oIPv6. -
È possibile utilizzare le policy di rete con i gruppi di sicurezza per pod. Con le policy di rete, è possibile controllare tutte le comunicazioni all’interno del cluster. Con i gruppi di sicurezza per pod, è possibile controllare l’accesso ai servizi AWS dalle applicazioni all’interno di un pod.
-
È possibile utilizzare le policy di rete con le reti personalizzate e la delega del prefisso.
Considerazioni
Architettura
-
Quando si applicano le policy di rete del plug-in CNI di Amazon VPC per Kubernetes al cluster con il plug-in CNI di Amazon VPC per Kubernetes, è possibile applicare le policy solo ai nodi Amazon EC2 Linux. Non è possibile applicare le policy ai nodi Fargate o Windows.
-
Le policy di rete si applicano solo a indirizzi
IPv4oIPv6, ma non a entrambi. In un clusterIPv4, il CNI di VPC assegna l’indirizzoIPv4ai pod e applica le policyIPv4. In un clusterIPv6, il CNI di VPC assegna l’indirizzoIPv6ai pod e applica le policyIPv6. Tutte le regole di policy di reteIPv4applicate a un clusterIPv6vengono ignorate. Tutte le regole di policy di reteIPv6applicate a un clusterIPv4vengono ignorate.
Policy di rete
-
Le policy di rete vengono applicate solo ai pod che fanno parte di un’implementazione. Ai pod autonomi che non dispongono di un set
metadata.ownerReferencesnon possono essere applicate policy di rete. -
È possibile applicare più policy di rete allo stesso pod. Quando sono configurate due o più policy che selezionano lo stesso pod, al pod vengono applicate tutte le policy.
-
Il numero massimo di combinazioni di porte e protocolli per un singolo intervallo di indirizzi IP (CIDR) è 24 per tutte le policy di rete. Selettori come
namespaceSelectorrisolvono verso uno o più CIDR. Se più selettori si risolvono in un unico CIDR o si specifica lo stesso CIDR diretto più volte nella stessa policy di rete o in diverse policy di rete, tutti questi fattori vengono conteggiati ai fini di questo limite. -
Per ognuno dei servizi di Kubernetes, la porta del servizio deve essere uguale a quella del container. Se si utilizzano porte con un nome assegnato, è necessario utilizzare lo stesso nome anche nelle specifiche del servizio.
Migrazione
-
Se il cluster utilizza attualmente una soluzione di terze parti per la gestione delle policy di rete di Kubernetes, è possibile utilizzare le stesse policy con il plug-in CNI di Amazon VPC per Kubernetes. Tuttavia, è necessario rimuovere la soluzione esistente in modo che non gestisca le stesse policy.
avvertimento
Dopo aver rimosso una soluzione di policy di rete, si consiglia di sostituire tutti i nodi a cui era stata applicata la soluzione di policy di rete. Questo perché le regole del traffico potrebbero essere ignorate da un pod della soluzione se questa si interrompe all’improvviso.
Installazione
-
La funzionalità di policy di rete crea e richiede una
PolicyEndpointCustom Resource Definition (CRD) denominatapolicyendpoints.networking.k8s.aws. Gli oggettiPolicyEndpointdella Custom Resource sono gestiti da Amazon EKS. È sconsigliabile modificare o eliminare queste risorse. -
Se si eseguono pod che utilizzano le credenziali IAM del ruolo di istanza o si connettono all’IMDS EC2, occorre accertarsi che non siano presenti policy di rete che bloccherebbero l’accesso all’IMDS EC2. Potrebbe essere necessario aggiungere una policy di rete per consentire l’accesso all’IMDS EC2. Per ulteriori informazioni, consulta Metadati dell’istanza e dati dell’utente nella Guida per l’utente di Amazon EC2 per le istanze Linux.
I pod che utilizzano i ruoli IAM per gli account di servizio o EKS Pod Identity non accedono all’IMDS EC2.
-
Il plug-in CNI di Amazon VPC per Kubernetes non applica le policy di rete alle interfacce di rete aggiuntive per ogni pod, ma solo all’interfaccia principale per ogni pod (
eth0). Ciò influisce sulle seguenti architetture:-
Pod
IPv6con la variabileENABLE_V4_EGRESSimpostata sutrue. Questa variabile abilita la funzionalità di uscitaIPv4per connettere i pod IPv6 a endpointIPv4come quelli esterni al cluster. La funzionalità di uscitaIPv4opera creando un’interfaccia di rete supplementare con un indirizzo IPv4 di loopback locale. -
In caso di utilizzo di plugin di rete concatenati come Multus. Poiché questi plug-in aggiungono interfacce di rete a ciascun pod, le policy di rete non vengono applicate ai plug-in di rete concatenati.
-