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.
Implementazione di cluster privati con accesso limitato a Internet
In questo argomento è descritto come implementare un cluster Amazon EKS che è implementato su AWS Cloud che non ha accesso a Internet in uscita. Se disponi di un cluster locale su AWS Outposts, consulta Creazione di nodi Amazon Linux su AWS Outposts anziché questo argomento.
Se non si ha dimestichezza con la rete Amazon EKS, consulta Demistificare le reti cluster per i nodi nodo worker Amazon EKS
Requisiti dell’architettura del cluster
-
Il tuo cluster deve estrarre immagini da un registro di container che si trova nel tuo VPC. Puoi creare un Amazon Elastic Container Registry nel VPC e copiare al suo interno le immagini dei container per i nodi da cui estrarre. Per ulteriori informazioni, consulta Copia di un'immagine di container da un repository a un altro.
-
Il tuo cluster deve avere l'accesso privato all'endpoint abilitato. Ciò è obbligatorio per la registrazione dei nodi con l'endpoint del cluster. L'accesso pubblico all'endpoint è facoltativo. Per ulteriori informazioni, consulta Endpoint del server API del cluster.
Requisiti dei nodi
-
Prima di essere lanciati, i nodi Linux e Windows autogestiti devono includere i seguenti argomenti di bootstrap. Questi argomenti ignorano l’introspezione Amazon EKS e non richiedono l’accesso all’API Amazon EKS dal VPC.
-
Determina l’endpoint del cluster con il comando seguente. Sostituisci
my-clustercon il nome del tuo cluster.aws eks describe-cluster --name my-cluster --query cluster.endpoint --output textDi seguito viene riportato un output di esempio:
https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com -
Determina il valore dell’autorità di certificazione del cluster con il seguente comando. Sostituisci
my-clustercon il nome del tuo cluster.aws eks describe-cluster --name my-cluster --query cluster.certificateAuthority --output textL'output è una stringa molto lunga.
-
Sostituisci
cluster-endpointecertificate-authoritynei comandi seguenti con i valori restituiti nell’output dei comandi precedenti. Per ulteriori informazioni su come specificare gli argomenti di bootstrap quando si avviano nodi autogestiti, consulta Crea nodi Amazon Linux autogestiti e Crea nodi Microsoft Windows autogestiti.-
Per i nodi Linux:
--apiserver-endpoint cluster-endpoint --b64-cluster-ca certificate-authorityPer ulteriori argomenti, consultare lo script di bootstrap
su GitHub. -
Per i nodi Windows:
Nota
Se utilizzi il servizio personalizzato CIDR, devi specificarlo utilizzando il parametro
-ServiceCIDR. In caso contrario, la risoluzione DNS per i pod nel cluster avrà esito negativo.-APIServerEndpoint cluster-endpoint -Base64ClusterCA certificate-authorityPer ulteriori argomenti, consulta.Parametri di configurazione dello script di bootstrap.
-
-
-
aws-authConfigMapdel tuo cluster deve essere creata all’interno del tuo VPC. Per ulteriori informazioni sulla creazione e l'aggiunta di voci aaws-authConfigMap, digitaeksctl create iamidentitymapping --helpnel terminale. SeConfigMapnon esiste sul server,eksctlla creerà quando usi il comando per aggiungere una mappatura dell’identità.
Requisiti del pod
-
Pod Identity: i pod configurati con EKS Pod Identity acquisiscono le credenziali dall’API EKS Auth. Se non è presente un accesso a Internet in uscita, è necessario creare e utilizzare un endpoint VPC per l’API EKS Auth:
com.amazonaws.region-code.eks-auth. Per ulteriori informazioni sugli endpoint VCP EKS ed EKS Auth, consulta Accesso ad Amazon EKS tramite AWS PrivateLink. -
IRSA: i pod configurati con ruoli IAM per gli account di servizio acquisiscono le credenziali da una chiamata API del Security Token Service AWS (AWS STS). Se non è presente un accesso a Internet in uscita, è necessario creare e utilizzare un endpoint VPC AWS STS nel VPC. La maggior parte degli AWS SDK
v1utilizzano l’endpoint AWS STS globale per impostazione predefinita (sts.amazonaws.com), che non usa l’endpoint VPC AWS STS. Per utilizzare l’endpoint VPC AWS STS potrebbe essere necessario configurare l’SDK per utilizzare l’endpoint AWS STS regionale (sts.). Per ulteriori informazioni, consulta Configurare l’endpoint del Servizio di token di sicurezza AWS per un account di servizio.region-code.amazonaws.com -
Le sottoreti VPC del cluster devono disporre di un endpoint di interfaccia VPC per qualsiasi AWS a cui i pod devono accedere. Per ulteriori informazioni, consulta Accesso a un servizio AWS utilizzando un endpoint VPC di interfaccia. Nella tabella seguente sono elencati alcuni servizi ed endpoint di uso comune. Per un elenco completo degli endpoint, consulta Servizi AWS che si integrano con AWS PrivateLink nella Guida di PrivateLinkAWS.
Consigliamo di abilitare i nomi DNS privati per gli endpoint VPC, in modo che i carichi di lavoro possano continuare a utilizzare gli endpoint del servizio AWS pubblico senza problemi.
Servizio Endpoint Amazon EC2
com.amazonaws.
codice-regione.ec2Amazon Elastic Container Registry (per estrarre immagini di container)
com.amazonaws.
codice-regione.ecr.api, com.amazonaws.codice-regione.ecr.dkr e com.amazonaws.codice-regione.s3Application Load Balancer e Network Load Balancer di Amazon
com.amazonaws.
codice-regione.elasticloadbalancing(Opzionale) AWS X-Ray (necessario per il tracciamento inviato a AWS X-Ray)
com.amazonaws.
codice-regione.xray(Facoltativo) Amazon SSM (necessario per l’agente SSM per le attività di gestione dei nodi. Alternativa a SSH)
com.amazonaws.
region-code.ssmAmazon CloudWatch Logs (necessario per i log di nodi e pod inviati ad Amazon CloudWatch Logs)
com.amazonaws.
codice-regione.logsAWS Security Token Service (necessario quando si utilizzano i ruoli IAM per gli account di servizio)
com.amazonaws.
codice-regione.stsAmazon EKS Auth (necessario quando si utilizzano le associazioni Pod Identity)
com.amazonaws.
region-code.eks-authAmazon EKS
com.amazonaws.
region-code.eks -
Qualsiasi nodo autogestito deve essere implementato in sottoreti con gli endpoint di interfaccia VPC richiesti. Se crei un gruppo di nodi gestiti, il gruppo di sicurezza dell'endpoint di interfaccia VPC deve consentire il CIDR per le sottoreti oppure dovrai aggiungere il gruppo di sicurezza del nodo creato al gruppo di sicurezza dell'endpoint di interfaccia VPC.
-
Archiviazione EFS: se i tuoi pod utilizzano volumi Amazon EFS, prima di implementare l’archiviazione di un sistema di file elastico con Amazon EFS, il file kustomization.yaml
del driver deve essere modificato in modo da impostare che le immagini del container utilizzino la stessa regione AWS del cluster Amazon EKS. -
Route53 non supporta AWS PrivateLink. Non è possibile gestire i record DNS di Route53 da un cluster Amazon EKS privato. Ciò ha un impatto su external-dns
di Kubernetes. -
Se utilizzi l’AMI ottimizzata EKS, devi abilitare l’endpoint
ec2nella tabella precedente. In alternativa, esiste la possibilità di impostare manualmente il nome DNS del nodo. L’AMI ottimizzata utilizza le API EC2 per impostare automaticamente il nome DNS del nodo. -
È possibile utilizzare il Load Balancer Controller AWS per implementare AWS Application Load Balancer (ALB) e Network Load Balancer sul tuo cluster privato. Quando lo implementi, devi usare i flag della riga di comando
per impostare enable-shield,enable-wafeenable-wafv2su fasle. Il rilevamento dei certificaticon i nomi host degli oggetti in entrata non è supportato. Questo perché il controller deve raggiungere AWS Certificate Manager, che non ha un endpoint dell’interfaccia VPC. Il controller supporta bilanciatori di carico di rete destinazioni IP, necessari per l'utilizzo con Fargate. Per ulteriori informazioni, consultare Instradare il traffico di applicazioni e HTTP con Application Load Balancer e Creazione di un Network Load Balancer.
-
Cluster Autoscaler
è supportato. Quando si implementano i pod di Cluster Autoscaler, assicurarsi che la riga di comando includa --aws-use-static-instance-list=true. Per ulteriori informazioni, consultare Usa elenco di istanze statichesu GitHub. Il nodo worker VPC deve includere anche l’endpoint VPC AWS STS e l’endpoint VPC con scalabilità automatica. -
Alcuni prodotti software dei container utilizzano chiamate API che accedono al servizio di misurazione AWS Marketplace per monitorare l’utilizzo. I cluster privati non consentono queste chiamate, pertanto questi tipi di container non possono essere utilizzati nei cluster privati.