Implementa cluster privati con accesso limitato a Internet - 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à.

Implementa cluster privati con accesso limitato a Internet

Questo argomento descrive come distribuire un cluster Amazon EKS distribuito sul AWS cloud, ma che non dispone 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.

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

  • Il 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 Controlla l'accesso alla rete all'endpoint del server API del cluster.

  • I nodi Linux e Windows autogestiti devono includere i seguenti argomenti di bootstrap prima di essere avviati. Questi argomenti aggirano l'introspezione di Amazon EKS e non richiedono l'accesso all'API Amazon EKS dall'interno del VPC.

    1. Determina il valore dell'endpoint del cluster con il seguente comando. 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 tuo 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 cluster-endpoint e certificate-authority nei comandi seguenti con i valori restituiti nell'output dei passaggi 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-authority

        Per ulteriori argomenti, consultate lo script bootstrap su GitHub.

      • Per i nodi Windows:

        Nota

        Se utilizzi il servizio personalizzato CIDR, devi specificarlo utilizzando il -ServiceCIDR parametro. 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.

  • I tuoi cluster aws-auth ConfigMap devono essere creati dall'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 tuo server, lo eksctl creerà quando usi il comando per aggiungere una mappatura delle identità.

  • 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 è disponibile un accesso a Internet in uscita, è necessario creare e utilizzare un endpoint VPC AWS STS nel VPC. La maggior parte AWS v1 SDKs utilizza l'endpoint AWS STS globale di default (sts.amazonaws.com), che non utilizza 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.region-code.amazonaws.com Per ulteriori informazioni, consulta Configurare l'endpoint del servizio AWS Security Token per un account di servizio.

  • Le sottoreti VPC del cluster devono disporre di un endpoint di interfaccia VPC per tutti i AWS servizi a cui i Pod devono accedere. 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 gli endpoint VPC, in modo che i carichi di lavoro possano continuare a utilizzare gli endpoint del AWS servizio pubblico senza problemi.

    Servizio Endpoint

    Amazon EC2

    com.amazonaws. region-code.ec2

    Amazon Elastic Container Registry (per estrarre immagini di container)

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

    Application Load Balancer e Network Load Balancer

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

    AWS X-Ray

    com.amazonaws. region-code.raggi x

    CloudWatch Registri Amazon

    com.amazonaws.it. region-code.registri

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

    com.amazonaws. region-code.sts

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

    com.amazonaws. region-code.eks-auth

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

  • Se i tuoi Pod utilizzano volumi Amazon EFS, prima di distribuire Store un file system elastico con Amazon EFS, è necessario modificare il file kustomization.yaml del driver per impostare le immagini del contenitore in modo che utilizzino la stessa regione del cluster Amazon EKS. AWS

  • Route53 non supporta. AWS PrivateLink Non è possibile gestire i record DNS di Route53 da un cluster Amazon EKS privato. Ciò ha un impatto sul DNS esterno di Kubernetes.

  • Se utilizzi l'AMI ottimizzata EKS, devi abilitare l'ec2endpoint nella tabella precedente. In alternativa, è possibile impostare manualmente il nome DNS del nodo. L'AMI ottimizzata utilizza l'AMI EC2 APIs per impostare automaticamente il nome DNS del nodo.

  • Puoi utilizzare 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. L'individuazione dei certificati con nomi host provenienti da oggetti Ingress non è supportata. 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, consulta Indirizza il traffico di applicazioni e HTTP con Application Load Balancer e Creazione di un Network Load Balancer.

  • Cluster Autoscaler è supportato. Quando distribuisci Cluster Autoscaler Pods, assicurati che la riga di comando includa. --aws-use-static-instance-list=true Per ulteriori informazioni, consulta Use Static Instance List on. GitHub Il VPC del nodo di lavoro deve includere anche l'endpoint VPC STS e l'endpoint AWS VPC con scalabilità automatica.

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