Accedi alle applicazioni container in modo privato su Amazon EKS utilizzando AWS PrivateLink un Network Load Balancer - Prontuario AWS

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

Accedi alle applicazioni container in modo privato su Amazon EKS utilizzando AWS PrivateLink un Network Load Balancer

Creato da Kirankumar Chandrashekar () AWS

Ambiente: produzione

Tecnologie: contenitori e microservizi DevOps; Modernizzazione; Sicurezza, identità, conformità

Carico di lavoro: tutti gli altri carichi di lavoro

AWSservizi: AmazonEKS; Amazon VPC

Questo modello descrive come ospitare privatamente un'applicazione container Docker su Amazon Elastic Kubernetes Service EKS (Amazon) con un Network Load Balancer e accedere all'applicazione utilizzando. AWS PrivateLink Puoi quindi utilizzare una rete privata per accedere in modo sicuro ai servizi su Amazon Web Services (AWS) Cloud. 

Il EKS cluster Amazon che esegue le applicazioni Docker, con un Network Load Balancer sul front-end, può essere associato a un endpoint cloud privato virtuale VPC () per l'accesso. AWS PrivateLink Questo servizio VPC endpoint può quindi essere condiviso con altri utenti utilizzando i rispettivi VPCs endpoint. VPC

La configurazione descritta da questo schema è un modo sicuro per condividere l'accesso alle applicazioni tra VPCs gli AWS account. Non richiede configurazioni di connettività o routing speciali, poiché la connessione tra gli account del consumatore e del provider si trova sulla AWS spina dorsale globale e non attraversa la rete Internet pubblica.

Prerequisiti

  • Docker, installato e configurato su Linux, macOS o Windows.

  • Un'applicazione in esecuzione su Docker.

  • Un account AWS attivo.

  • AWSCommand Line Interface (AWSCLI) versione 2, installata e configurata su Linux, macOS o Windows.

  • Un EKS cluster Amazon esistente con sottoreti private etichettate e configurato per ospitare applicazioni. Per ulteriori informazioni, consulta Subnet tagging nella documentazione di AmazonEKS. 

  • Kubectl, installato e configurato per accedere alle risorse sul tuo cluster Amazon. EKS Per ulteriori informazioni, consulta Installazione di kubectl nella documentazione di Amazon. EKS 

Usa PrivateLink un Network Load Balancer per accedere a un'applicazione in un container AmazonEKS.

Stack tecnologico

  • Amazon EKS

  • AWS PrivateLink

  • Network Load Balancer

Automazione e scalabilità

  • I manifesti Kubernetes possono essere tracciati e gestiti su un repository basato su Git e implementati utilizzando l'integrazione continua e la distribuzione continua (CI/CD) in. AWS CodePipeline 

  • È possibile utilizzare per creare questo modello utilizzando l'infrastruttura come codice (AWS CloudFormation IaC).

  • AWSCLI— AWS Command Line Interface (AWSCLI) è uno strumento open source che consente di interagire con i AWS servizi utilizzando i comandi della shell della riga di comando.

  • Elastic Load Balancing: Elastic Load Balancing distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni, come istanze Amazon Elastic Compute Cloud (EC2Amazon), contenitori e indirizzi IP, in una o più zone di disponibilità.

  • Amazon EKS — Amazon Elastic Kubernetes Service (EKSAmazon) è un servizio gestito che puoi usare per eseguire AWS Kubernetes senza dover installare, gestire e mantenere il tuo piano di controllo o i tuoi nodi Kubernetes.

  • Amazon VPC — Amazon Virtual Private Cloud (AmazonVPC) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito.

  • Kubectl — Kubectl è un'utilità da riga di comando per l'esecuzione di comandi sui cluster Kubernetes.

AttivitàDescrizioneCompetenze richieste

Crea il file manifesto di distribuzione di Kubernetes.

Crea un file manifesto di distribuzione modificando il seguente file di esempio in base alle tue esigenze.

apiVersion: apps/v1 kind: Deployment metadata: name: sample-app spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: public.ecr.aws/z9d2n7e1/nginx:1.19.5 ports: - name: http containerPort: 80

Nota: questo è un file NGINX di configurazione di esempio che viene distribuito utilizzando l'immagine NGINX Docker. Per ulteriori informazioni, consulta Come usare l'immagine NGINX Docker ufficiale nella documentazione Docker.

DevOps ingegnere

Distribuisci il file manifesto di distribuzione di Kubernetes.

Esegui il comando seguente per applicare il file manifest di distribuzione al tuo EKS cluster Amazon:

kubectl apply –f <your_deployment_file_name> 

DevOps ingegnere

Crea il file manifesto del servizio Kubernetes.

Crea un file di manifesto del servizio modificando il seguente file di esempio in base alle tue esigenze.

apiVersion: v1 kind: Service metadata: name: sample-service annotations: service.beta.kubernetes.io/aws-load-balancer-type: nlb service.beta.kubernetes.io/aws-load-balancer-internal: "true" spec: ports: - port: 80 targetPort: 80 protocol: TCP type: LoadBalancer selector: app: nginx

Importante: assicurati di aver incluso quanto segue annotations per definire un Network Load Balancer interno:

service.beta.kubernetes.io/aws-load-balancer-type: nlb service.beta.kubernetes.io/aws-load-balancer-internal: "true"
DevOps ingegnere

Distribuisci il file di manifesto del servizio Kubernetes.

Esegui il comando seguente per applicare il file manifest del servizio al tuo EKS cluster Amazon:

kubectl apply -f <your_service_file_name>

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Registra il nome del Network Load Balancer.

Esegui il comando seguente per recuperare il nome del Network Load Balancer:

kubectl get svc sample-service -o wide

Registra il nome del Network Load Balancer, necessario per creare un endpoint. AWS PrivateLink

DevOps ingegnere

Crea un AWS PrivateLink endpoint.

Accedi alla console di AWS gestione, apri la VPC console Amazon e crea un AWS PrivateLink endpoint. Associando questo endpoint al Network Load Balancer, l'applicazione sarà disponibile privatamente per i clienti. Per ulteriori informazioni, consulta VPCendpoint services (AWS PrivateLink) nella VPC documentazione di Amazon.

Importante: se l'account consumer richiede l'accesso all'applicazione, l'ID dell'AWSaccount consumer deve essere aggiunto all'elenco dei principali destinatari consentiti per la configurazione dell'AWS PrivateLink endpoint. Per ulteriori informazioni, consulta Aggiungere e rimuovere le autorizzazioni per il servizio endpoint nella documentazione di AmazonVPC.

Amministratore cloud

Creare un endpoint VPC.

Sulla VPC console Amazon, scegli Endpoint Services, quindi scegli Create Endpoint Service. Crea un VPC endpoint per l'endpoint. AWS PrivateLink

Il nome di dominio completo dell'VPCendpoint (FQDN) punta al nome dell'FQDNendpoint. AWS PrivateLink Questo crea un'interfaccia di rete elastica verso il servizio VPC endpoint a cui gli DNS endpoint possono accedere. 

Amministratore cloud