Implementa cluster privati con accesso limitato a Internet - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

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 che viene distribuito su Cloud AWS, ma non dispone di accesso a Internet in uscita. Se hai un cluster locale attivo AWS OutpostsCrea nodi Amazon Linux su AWS Outposts, consulta invece di questo argomento.

Se non si ha dimestichezza con la rete Amazon EKS, consultare Demistificazione delle reti cluster per i nodi (worker) Amazon EKS. Se il cluster non dispone di accesso a Internet in uscita, allora deve soddisfare i seguenti requisiti:

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

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

    1. Determina l'endpoint del cluster con il comando seguente. Sostituisci my-cluster con il nome del tuo 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 tuo 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 maggiori informazioni, consulta 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 Pods nel cluster fallirà.

      -APIServerEndpoint cluster-endpoint -Base64ClusterCA certificate-authority

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

  • aws-auth ConfigMap del tuo cluster devono essere creati 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à.

  • I Pods 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, devi creare e utilizzare un endpoint AWS STS VPC nel tuo VPC. La maggior parte degli AWS v1 SDK utilizza l' AWS STS endpoint globale di default (sts.amazonaws.com), che non utilizza l'endpoint VPC AWS STS . Per utilizzare l'endpoint AWS STS VPC, potrebbe essere necessario configurare l'SDK per utilizzare l'endpoint regionale AWS STS (). sts.region-code.amazonaws.com Per ulteriori informazioni, consulta Configurare l' AWS Security Token Service endpoint per un account di servizio.

  • Le sottoreti VPC del cluster devono disporre di un endpoint di interfaccia VPC per qualsiasi AWS servizi a cui Pods deve 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 AWS PrivateLink.

    Servizio Endpoint
    Amazon EC2 com.amazonaws.codice-regione.ec2
    Amazon 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.s3
    Application Load Balancer e Network Load Balancer com.amazonaws.codice-regione.elasticloadbalancing
    AWS X-Ray com.amazonaws.codice-regione.xray
    CloudWatch Registri Amazon com.amazonaws.codice-regione.logs
    AWS Security Token Service (richiesto quando si utilizzano i ruoli IAM per gli account di servizio) com.amazonaws.codice-regione.sts
Considerazioni
  • 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 Pods utilizzi volumi Amazon EFS, prima di distribuire il Archivia un file system elastico con Amazon EFS file kustomization.yaml del driver deve essere modificato per impostare le immagini dei container in modo che utilizzino le stesse del cluster Amazon EKS. Regione AWS

  • Puoi utilizzare il AWS Load Balancer Controllerper distribuire AWS Application Load Balancers (ALB) e Network Load Balancers 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 ingresso non è supportato. Questo perché il controller deve raggiungere un endpoint con interfaccia VPC AWS Certificate Manager, che non dispone di un endpoint con interfaccia VPC.

    Il controller supporta bilanciatori di carico di rete destinazioni IP, necessari per l'utilizzo con Fargate. Per ulteriori informazioni, consulta Instrada l'applicazione e HTTP il traffico con Application Load Balancers e Creazione di un Network Load Balancer.

  • Cluster Autoscaler è supportato. Quando implementi i Pods di Cluster Autoscaler, assicurati che la riga di comando includa --aws-use-static-instance-list=true. Per ulteriori informazioni, consulta Utilizzo dell'elenco di istanze statiche su GitHub. Il VPC del nodo di lavoro deve includere anche l'endpoint VPC e l'endpoint AWS STS VPC con scalabilità automatica.

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