View a markdown version of this page

Implementazione di cluster privati con accesso limitato a Internet - Amazon EKS

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 su che si trova 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à.

Implementazione di cluster privati con accesso limitato a Internet

Questo argomento descrive come distribuire un cluster Amazon EKS distribuito sul AWS cloud, ma non dotato di accesso a Internet in uscita. Se hai un cluster locale su AWS Outposts, consultaCrea nodi Amazon Linux su AWS Outposts, invece di questo argomento.

Nota

Questo argomento riguarda l'uscita dal piano di dati (nodi e carichi di lavoro senza accesso a Internet in uscita). Per controllare in che modo il traffico in uscita dal piano di controllo del cluster raggiunge il tuo VPC, consulta. Configurazione del routing di uscita del piano di controllo

Se non hai familiarità con la rete Amazon EKS, consulta la rete in De-mystifying cluster per i nodi di lavoro di Amazon EKS. Se il cluster non dispone di accesso a Internet in uscita, deve soddisfare i seguenti requisiti:

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

  • Self-managed I nodi Linux e Windows devono includere i seguenti argomenti di bootstrap prima di essere avviati. Questi argomenti ignorano l’introspezione Amazon EKS e non richiedono l’accesso all’API Amazon EKS dal VPC.

    1. Determina l’endpoint del cluster con il comando seguente. Sostituisci my-cluster con il nome del cluster.

      aws eks describe-cluster --name my-cluster --query cluster.endpoint --output text

      Di seguito viene riportato un output di esempio.

      https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com
    2. Determina il valore dell’autorità di certificazione del cluster con il seguente comando. Sostituisci my-cluster con il nome del cluster.

      aws eks describe-cluster --name my-cluster --query cluster.certificateAuthority --output text

      L'output è una stringa molto lunga.

    3. Sostituisci i valori di apiServerEndpoint e certificateAuthority nell' NodeConfig oggetto con i valori restituiti nell'output dei comandi precedenti. Per ulteriori informazioni su come specificare gli argomenti di bootstrap all'avvio di nodi Amazon Linux 2023 autogestiti, consulta e. Crea nodi Amazon Linux autogestiti Crea nodi Microsoft Windows autogestiti

      • Per i nodi Linux:

        --- MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: application/node.eks.aws --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: [.replaceable]https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com certificateAuthority: [.replaceable]Y2VydGlmaWNhdGVBdXRob3JpdHk= ...

        Per argomenti aggiuntivi, consulta lo script bootstrap su. https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh 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-authority

        Per ulteriori argomenti, consulta.Parametri di configurazione dello script di bootstrap.

  • aws-auth ConfigMap del tuo cluster deve essere creata all’interno del tuo VPC. Per ulteriori informazioni sulla creazione e l'aggiunta di voci a aws-auth ConfigMap, digita eksctl create iamidentitymapping --help nel terminale. Se ConfigMap non esiste sul server, eksctl la 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 Accedi ad Amazon EKS utilizzando AWS PrivateLink.

  • IRSA - I pod configurati con ruoli IAM per gli account di servizio acquisiscono le credenziali da una chiamata API AWS Security Token Service (AWS STS). Se non c'è accesso a Internet in uscita, devi creare e utilizzare un endpoint AWS STS VPC nel tuo VPC. La maggior parte degli AWS v1 SDK utilizza l'endpoint AWS STS globale per impostazione predefinita (sts.amazonaws.com), che non utilizza l'endpoint STS VPC. AWS Per utilizzare l'endpoint AWS STS VPC, potrebbe essere necessario configurare l'SDK per utilizzare l'endpoint STS regionale (). AWS sts.region-code.amazonaws.com Per ulteriori informazioni, consulta Configura il AWS Endpoint Security Token Service per un account di servizio.

    Per configurare IRSA, devi anche raggiungere l'endpoint OIDC del cluster dall'interno del VPC discovery/JWKS . Ad esempio, lo raggiungi quando crei il provider di identità IAM OIDC del cluster o esegui i tuoi validatori di token. Se non c'è accesso a Internet in uscita, crea e utilizza un endpoint VPC per l'endpoint OIDC del cluster:. com.amazonaws.region-code.oidc-eks Questo è separato dall'endpoint STS VPC. AWS STS recupera i JWKS del cluster dall'interno AWS, quindi l'endpoint OIDC privatizza il traffico OIDC, mentre l'endpoint VPC-originated STS privatizza la chiamata. AssumeRoleWithWebIdentity Per ulteriori informazioni, consulta Accedi all'endpoint OIDC del cluster utilizzando AWS PrivateLink.

  • Le sottoreti VPC del cluster devono disporre di un endpoint di interfaccia VPC per tutti i servizi a cui i Pod devono accedere. AWS Per ulteriori informazioni, consulta Accedere a un AWS servizio 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 AWS PrivateLink .

    Ti consigliamo di abilitare i nomi DNS privati per i tuoi endpoint VPC, in questo modo i carichi di lavoro possono continuare a utilizzare gli endpoint di servizio pubblico senza problemi. AWS

    Servizio Endpoint

    Amazon EC2

    com.amazonaws. region-code.ec2

    Amazon Elastic Container Registry (per estrarre immagini di container)

    com.amazonaws. region-codeecr.api, com.amazonaws. region-code.ecr.dkr e com.amazonaws. region-code.s3

    Application Load Balancer e Network Load Balancer di Amazon

    com.amazonaws. region-code. bilanciamento del carico elastico

    (Facoltativo) (obbligatorio per il tracciamento inviato a AWS X-Ray ) AWS X-Ray

    com.amazonaws. region-code.radiografia

    (Facoltativo) Amazon SSM (necessario per l’agente SSM per le attività di gestione dei nodi. Alternativa a SSH)

    com.amazonaws. region-code.ssm

    Amazon CloudWatch Logs (richiesto per i log di nodi e pod inviati ad Amazon CloudWatch Logs)

    com.amazonaws. region-code.registri

    AWS Security Token Service (richiesto quando si utilizzano i ruoli IAM per gli account di servizio)

    com.amazonaws. region-code.st

    Endpoint OIDC del cluster Amazon EKS (necessario per configurare i ruoli IAM per gli account di servizio dall'interno del VPC)

    com.amazonaws. region-code.oidc-eks

    Amazon EKS Auth (necessario quando si utilizzano le associazioni Pod Identity)

    com.amazonaws. region-code.eks-auth

    Amazon EKS

    con amazonaws. region-code.eks

    Amazon Route 53

    com.amazonaws.route53

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

  • Storage EFS: se i tuoi pod utilizzano volumi Amazon EFS, prima di distribuire l'archivio di un file system elastico con Amazon EFS, il file kustomization.yaml del driver deve essere modificato per impostare le immagini del contenitore in modo che utilizzino la stessa regione del cluster Amazon EKS. AWS

  • Se utilizzi l’AMI ottimizzata EKS, devi abilitare l’endpoint ec2 nella 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.

  • Puoi utilizzare il AWS Load Balancer Controller per distribuire AWS Application Load Balancer (ALB) e Network Load Balancer nel tuo cluster privato. Quando lo implementi, devi usare i flag della riga di comando per impostareenable-shield, enable-waf e enable-wafv2 su fasle. Il rilevamento dei certificati con i nomi host degli oggetti in entrata non è supportato. Questo perché il controller deve raggiungere AWS Certificate Manager, che non dispone di un endpoint di 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, consulta Use Static Instance List on. GitHub Il nodo di lavoro VPC deve includere anche l'endpoint AWS STS VPC e l'endpoint VPC con scalabilità automatica.

  • Alcuni prodotti software per container utilizzano chiamate API che accedono al Marketplace Metering Service per monitorare l'utilizzo. AWS I cluster privati non consentono queste chiamate, pertanto questi tipi di container non possono essere utilizzati nei cluster privati.