Preparare la rete per i nodi ibridi - 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à.

Preparare la rete per i nodi ibridi

Questo argomento fornisce una panoramica della configurazione di rete che devi aver configurato prima di creare il cluster Amazon EKS e collegare nodi ibridi. Questa guida presuppone che tu abbia soddisfatto i requisiti preliminari per la connettività di rete ibrida utilizzando AWS Site-to-Site VPN, AWS Direct Connect o la tua soluzione VPN.

Connettività di rete con nodi ibridi.

Configurazione di rete locale

Requisiti minimi di rete

Per un'esperienza ottimale, AWS consiglia una connettività di rete affidabile di almeno 100 Mbps e una latenza massima di 200 ms di andata e ritorno per la connessione dei nodi ibridi alla Regione. AWS I requisiti di larghezza di banda e latenza possono variare in base al numero di nodi ibridi e alle caratteristiche del carico di lavoro, come la dimensione dell'immagine dell'applicazione, l'elasticità dell'applicazione, le configurazioni di monitoraggio e registrazione e la dipendenza delle applicazioni dall'accesso ai dati archiviati in altri servizi. AWS

Nodo e pod locali CIDRs

Identifica il nodo e il pod CIDRs che utilizzerai per i tuoi nodi ibridi e i carichi di lavoro in esecuzione su di essi. Il nodo CIDR viene allocato dalla rete locale e il pod CIDR viene allocato dalla Container Network Interface (CNI) se si utilizza una rete overlay per il CNI. Trasmetti il nodo locale CIDRs e, facoltativamente, il pod CIDRs come input quando crei il tuo cluster Amazon EKS con i RemoteNodeNetwork campi and. RemotePodNetwork

I blocchi CIDR del nodo e del pod locali devono soddisfare i seguenti requisiti:

  1. Rientrare in uno dei seguenti intervalli IPv4 RFC-1918:,, o. 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

  2. Non si sovrappongono tra loro, il CIDR VPC per il tuo cluster Amazon EKS o il tuo servizio Kubernetes CIDR. IPv4

Se il tuo CNI esegue NAT (Network Address Translation) per il traffico dei pod in uscita dagli host locali, non devi pubblicizzare il tuo pod CIDR sulla tua rete locale o configurare il cluster Amazon EKS con la tua rete di pod remota affinché i nodi ibridi siano pronti per i carichi di lavoro. Se il tuo CNI non utilizza NAT per il traffico dei pod quando esce dai tuoi host locali, devi pubblicizzare il tuo pod CIDR con la tua rete locale e devi configurare il tuo cluster Amazon EKS con la tua rete di pod remota affinché i nodi ibridi siano pronti per i carichi di lavoro. Se esegui webhook sui tuoi nodi ibridi, devi pubblicizzare il tuo pod CIDR sulla tua rete locale e configurare il cluster Amazon EKS con la tua rete di pod remoti in modo che il piano di controllo di Amazon EKS possa connettersi direttamente ai webhook in esecuzione su nodi ibridi.

Accesso richiesto durante l'installazione e l'aggiornamento del nodo ibrido

È necessario avere accesso ai seguenti domini durante il processo di installazione in cui si installano le dipendenze dei nodi ibridi sui propri host. Questo processo può essere eseguito una sola volta durante la creazione delle immagini del sistema operativo oppure può essere eseguito su ciascun host in fase di esecuzione. Ciò include l'installazione iniziale e l'aggiornamento della versione Kubernetes dei nodi ibridi.

Componente URL Protocollo Porta

Artefatti del nodo EKS (S3)

https://hybrid-assets.eks.amazonaws.com

HTTPS

443

Endpoint del servizio EKS

https://eks. region.amazonaws.com

HTTPS

443

Endpoint EKS ECR

Vedi Visualizza i registri delle immagini dei container Amazon per i componenti aggiuntivi Amazon EKS per gli endpoint regionali.

HTTPS

443

Endpoint binario SSM 1

https://amazon-ssm - region .s3. region.amazonaws.com

HTTPS

443

Endpoint 1 del servizio SSM

https://ssm. region.amazonaws.com

HTTPS

443

Endpoint binario IAM Anywhere 2

https://rolesanywhere.amazonaws.com

HTTPS

443

Endpoint 2 del servizio IAM Anywhere

https://rolesanywhere. region.amazonaws.com

HTTPS

443

Nota

1 L'accesso agli endpoint AWS SSM è richiesto solo se utilizzi attivazioni ibride AWS SSM per il tuo provider di credenziali IAM locale.

2 L'accesso agli endpoint AWS IAM è richiesto solo se utilizzi IAM Roles Anywhere per il tuo provider di credenziali AWS IAM locale.

Accesso richiesto per le operazioni in corso del cluster

Il seguente accesso alla rete per il firewall locale è necessario per le operazioni in corso del cluster.

Importante

A seconda della scelta del CNI, è necessario configurare regole di accesso alla rete aggiuntive per le porte CNI. Consulta la documentazione di Cilium e la documentazione di Calico per i dettagli.

Tipo Protocollo Direzione Porta Origine Destinazione Utilizzo

HTTPS

TCP

In uscita

443

CIDR del nodo remoto (i)

Cluster EKS 1 IPs

da kubelet al server API Kubernetes

HTTPS

TCP

In uscita

443

CIDR (i) Pod remoto

Cluster EKS 1 IPs

Da Pod al server API Kubernetes

HTTPS

TCP

In uscita

443

CIDR (i) del nodo remoto

Endpoint del servizio SSM

Attivazioni ibride SSM, aggiornamento delle credenziali e battiti cardiaci SSM ogni 5 minuti

HTTPS

TCP

In uscita

443

CIDR del nodo remoto

Endpoint del servizio IAM Anywhere

Aggiornamento delle credenziali IAM Roles Anywhere

HTTPS

TCP

In uscita

443

CIDR (i) Pod remoto

Endpoint regionale STS

Da Pod a endpoint STS, richiesto solo per IRSA

HTTPS

TCP

In uscita

443

CIDR del nodo remoto

Endpoint del servizio di autenticazione Amazon EKS

Da nodo a endpoint di autenticazione Amazon EKS, richiesto solo per Amazon EKS Pod Identity

HTTPS

TCP

In entrata

10250

Cluster EKS 1 IPs

CIDR (i) del nodo remoto

da kubelet al server API Kubernetes

HTTPS

TCP

In entrata

Porte Webhook

Cluster EKS 1 IPs

CIDR (i) Pod remoto

Server API Kubernetes per webhook

HTTPS

TCP, UDP

In entrata, in uscita

53

CIDR del pod remoto

CIDR del pod remoto

Da Pod a CoredNS. Se esegui almeno 1 replica di CoreDNS nel cloud, devi consentire il traffico DNS al VPC su cui è in esecuzione CoredNS.

Definito dall'utente

Definito dall'utente

In entrata, in uscita

Porte per app

CIDR (i) Pod remoto

CIDR del pod remoto

Da Pod a Pod

Nota

1 Il IPs cluster Amazon EKS. Consulta la sezione seguente sulle interfacce di rete elastiche di Amazon EKS.

Interfacce di rete Amazon EKS

Amazon EKS collega le interfacce di rete alle sottoreti del VPC che passi durante la creazione del cluster per abilitare la comunicazione tra il piano di controllo di Amazon EKS e il tuo VPC. Le interfacce di rete create da Amazon EKS possono essere trovate dopo la creazione del cluster nella EC2 console Amazon o con la AWS CLI. Le interfacce di rete originali vengono eliminate e vengono create nuove interfacce di rete quando vengono applicate modifiche al cluster Amazon EKS, come gli aggiornamenti di versione di Kubernetes. Puoi limitare l'intervallo IP per le interfacce di rete Amazon EKS utilizzando dimensioni di sottoreti vincolate per le sottoreti passate durante la creazione del cluster, il che semplifica la configurazione del firewall locale per consentire la connettività in entrata/uscita a questo set noto e vincolato di. IPs Per controllare in quali sottoreti vengono create le interfacce di rete, è possibile limitare il numero di sottoreti specificato quando si crea un cluster oppure è possibile aggiornare le sottoreti dopo la creazione del cluster.

Le interfacce di rete fornite da Amazon EKS hanno una descrizione del formato. Amazon EKS your-cluster-name Guarda l'esempio seguente per un comando AWS CLI che puoi usare per trovare gli indirizzi IP delle interfacce di rete fornite da Amazon EKS. Sostituisci VPC_ID con l'ID del VPC passato durante la creazione del cluster.

aws ec2 describe-network-interfaces \ --query 'NetworkInterfaces[?(VpcId == VPC_ID && contains(Description,Amazon EKS))].PrivateIpAddress'

AWS Configurazione di VPC e sottorete

I requisiti esistenti di VPC e sottorete per Amazon EKS si applicano ai cluster con nodi ibridi. Inoltre, il tuo VPC CIDR non può sovrapporsi al nodo e al pod locali. CIDRs È necessario configurare i percorsi nella tabella di routing VPC per il nodo locale e, facoltativamente, il pod. CIDRs Questi percorsi devono essere configurati per indirizzare il traffico verso il gateway utilizzato per la connettività di rete ibrida, che di solito è un gateway privato virtuale (VGW) o un gateway di transito (TGW). Se utilizzi TGW o VGW per connettere il tuo VPC all'ambiente locale, devi creare un allegato TGW o VGW per il tuo VPC. Il VPC deve supportare il nome host DNS e la risoluzione DNS.

I passaggi seguenti utilizzano la AWS CLI. Puoi anche creare queste risorse in AWS Management Console o con altre interfacce come AWS CDK o AWS CloudFormation Terraform.

Fase 1: Creare un VPC

  1. Esegui il seguente comando per creare un VPC. Sostituisci VPC_CIDR con un intervallo IPv4 CIDR RFC-1918 (privato) o non RFC-1918 (pubblico) (ad esempio). 10.0.0.0/16 Nota: la risoluzione DNS, che è un requisito EKS, è abilitata per impostazione predefinita per il VPC.

    aws ec2 create-vpc --cidr-block VPC_CIDR
  2. Abilita i nomi host DNS per il tuo VPC. Nota, la risoluzione DNS è abilitata per impostazione predefinita per il VPC. Sostituisci VPC_ID con l'ID del VPC creato nel passaggio precedente.

    aws ec2 modify-vpc-attribute --vpc-id VPC_ID --enable-dns-hostnames

Fase 2: Creare sottoreti

Creare almeno 2 sottoreti. Amazon EKS utilizza queste sottoreti per le interfacce di rete del cluster. Per ulteriori informazioni, consulta i requisiti e le considerazioni sulle sottoreti.

  1. È possibile trovare le zone di disponibilità per una AWS regione con il seguente comando. Sostituisci us-west-2 con la tua regione.

    aws ec2 describe-availability-zones \ --query 'AvailabilityZones[?(RegionName == us-west-2)].ZoneName'
  2. Crea una sottorete. Sostituisci VPC_ID con l'ID del VPC. Sostituisci SUBNET_CIDR con il blocco CIDR per la tua sottorete (ad esempio 10.0.1.0/24). Sostituisci AZ con la zona di disponibilità in cui verrà creata la sottorete (ad esempio us-west-2a). Le sottoreti create devono trovarsi in almeno 2 zone di disponibilità diverse.

    aws ec2 create-subnet \ --vpc-id VPC_ID \ --cidr-block SUBNET_CIDR \ --availability-zone AZ

(Facoltativo) Fase 3: collegare il VPC con Amazon VPC Transit Gateway (TGW) o il gateway privato virtuale AWS Direct Connect (VGW)

Se utilizzi un TGW o VGW, collega il tuo VPC al TGW o VGW. Per ulteriori informazioni, consulta gli allegati Amazon VPC nelle associazioni di gateway di transito Amazon VPC o gateway privati virtuali AWS Direct Connect.

Gateway di transito

Esegui il comando seguente per collegare un Transit Gateway. Sostituisci VPC_ID con l'ID del VPC. Sostituisci SUBNET_ID1 e SUBNET_ID2 con IDs le sottoreti che hai creato nel passaggio precedente. TGW_IDSostituiscilo con l'ID del tuo TGW.

aws ec2 create-transit-gateway-vpc-attachment \ --vpc-id VPC_ID \ --subnet-ids SUBNET_ID1 SUBNET_ID2 \ --transit-gateway-id TGW_ID

Gateway privato virtuale

Esegui il comando seguente per collegare un Transit Gateway. VPN_IDSostituiscilo con l'ID del tuo VGW. Sostituisci VPC_ID con l'ID del VPC.

aws ec2 attach-vpn-gateway \ --vpn-gateway-id VPN_ID \ --vpc-id VPC_ID

(Facoltativo) Fase 4: Creazione della tabella dei percorsi

È possibile modificare la tabella di routing principale per il VPC o creare una tabella di routing personalizzata. I passaggi seguenti creano una tabella di routing personalizzata con i percorsi verso il nodo e il pod locali. CIDRs Per ulteriori informazioni, consulta Tabelle di routing di sottorete. Sostituisci VPC_ID con l'ID del VPC.

aws ec2 create-route-table --vpc-id VPC_ID

Fase 5: Creare percorsi per nodi e pod locali

Crea percorsi nella tabella delle rotte per ciascuno dei tuoi nodi remoti locali. È possibile modificare la tabella di routing principale per il VPC o utilizzare la tabella di routing personalizzata creata nel passaggio precedente.

Gli esempi seguenti mostrano come creare percorsi per il nodo e il pod locali. CIDRs Negli esempi, viene utilizzato un gateway di transito (TGW) per connettere il VPC all'ambiente locale. Se disponi di più nodi e pod locali CIDRs, ripeti i passaggi per ogni CIDR.

  • Se utilizzi un gateway Internet o un gateway privato virtuale (VGW) sostituiscilo con. --transit-gateway-id --gateway-id

  • Sostituisci RT_ID con l'ID della tabella di routing creata nel passaggio precedente.

  • Sostituisci REMOTE_NODE_CIDR con l'intervallo CIDR che utilizzerai per i tuoi nodi ibridi.

  • Sostituiscilo REMOTE_POD_CIDR con l'intervallo CIDR che utilizzerai per i pod in esecuzione su nodi ibridi. L'intervallo CIDR del pod corrisponde alla configurazione Container Networking Interface (CNI), che più comunemente utilizza una rete overlay locale. Per ulteriori informazioni, consulta Configurare un CNI per nodi ibridi.

  • Sostituiscilo TGW_ID con l'ID del tuo TGW.

Rete a nodi remoti

aws ec2 create-route \ --route-table-id RT_ID \ --destination-cidr-block REMOTE_NODE_CIDR \ --transit-gateway-id TGW_ID

Rete Pod remota

aws ec2 create-route \ --route-table-id RT_ID \ --destination-cidr-block REMOTE_POD_CIDR \ --transit-gateway-id TGW_ID

(Opzionale) Fase 6: Associare le sottoreti alla tabella delle rotte

Se hai creato una tabella di routing personalizzata nel passaggio precedente, associa ciascuna delle sottoreti create nel passaggio precedente alla tabella di routing personalizzata. Se stai modificando la tabella di routing principale del VPC, le sottoreti vengono automaticamente associate alla tabella di routing principale del VPC e puoi saltare questo passaggio.

Esegui il comando seguente per ciascuna delle sottoreti che hai creato nei passaggi precedenti. Sostituiscilo RT_ID con la tabella di routing creata nel passaggio precedente. Sostituisci SUBNET_ID con l'ID di una sottorete.

aws ec2 associate-route-table --route-table-id RT_ID --subnet-id SUBNET_ID

Configurazione del gruppo di sicurezza del cluster

Il seguente accesso per il tuo gruppo di sicurezza del cluster Amazon EKS è necessario per le operazioni continue del cluster.

Tipo Protocollo Direzione Porta Origine Destinazione Utilizzo

HTTPS

TCP

In entrata

443

CIDR (i) del nodo remoto

N/D

Server API da Kubelet a Kubernetes

HTTPS

TCP

In entrata

443

CIDR (i) Pod remoto

N/D

Pod che richiedono l'accesso al server API K8s quando il CNI non utilizza NAT per il traffico dei pod.

HTTPS

TCP

In uscita

10250

N/D

CIDR (i) del nodo remoto

Da server API Kubernetes a Kubelet

HTTPS

TCP

In uscita

Porte Webhook

N/D

CIDR del pod remoto

Da server API Kubernetes a webhook (se esegui webhook su nodi ibridi)

Per creare un gruppo di sicurezza con le regole di accesso in entrata, esegui i seguenti comandi. Questo gruppo di sicurezza deve essere passato quando crei il tuo cluster Amazon EKS. Per impostazione predefinita, il comando seguente crea un gruppo di sicurezza che consente tutti gli accessi in uscita. È possibile limitare l'accesso in uscita in modo da includere solo le regole precedenti. Se state pensando di limitare le regole in uscita, vi consigliamo di testare a fondo tutte le applicazioni e la connettività dei pod prima di applicare le regole modificate a un cluster di produzione.

  • Nel primo comando, sostituisci SG_NAME con un nome per il tuo gruppo di sicurezza

  • Nel primo comando, sostituisci VPC_ID con l'ID del VPC creato nel passaggio precedente

  • Nel secondo comando, sostituisci SG_ID con l'ID del gruppo di sicurezza creato nel primo comando

  • Nel secondo comando, sostituite REMOTE_NODE_CIDR e REMOTE_POD_CIDR con i valori per i nodi ibridi e la rete locale.

aws ec2 create-security-group \ --group-name SG_NAME \ --description "security group for hybrid nodes" \ --vpc-id VPC_ID
aws ec2 authorize-security-group-ingress \ --group-id SG_ID \ --ip-permissions '[{"IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "IpRanges": [{"CidrIp": "REMOTE_NODE_CIDR"}, {"CidrIp": "REMOTE_POD_CIDR"}]}]'