Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Greifen Sie mit AWS PrivateLink und einem Network Load Balancer privat auf Container-Anwendungen auf Amazon EKS zu
Erstellt von Kirankumar Chandrashekar (AWS)
Umwelt: Produktion | Technologien: Container und Mikroservices DevOps; Modernisierung; Sicherheit, Identität, Compliance | Arbeitslast: Alle anderen Workloads |
AWS-Dienste: Amazon EKS; Amazon VPC |
Übersicht
Dieses Muster beschreibt, wie Sie eine Docker-Container-Anwendung privat auf Amazon Elastic Kubernetes Service (Amazon EKS) hinter einem Network Load Balancer hosten und mithilfe von AWS auf die Anwendung zugreifen. PrivateLink Sie können dann ein privates Netzwerk verwenden, um sicher auf Dienste in der Amazon Web Services (AWS) Cloud zuzugreifen.
Der Amazon EKS-Cluster, auf dem die Docker-Anwendungen ausgeführt werden, mit einem Network Load Balancer am Frontend kann mit einem Virtual Private Cloud (VPC) -Endpunkt für den Zugriff über AWS verknüpft werden. PrivateLink Dieser VPC-Endpunktdienst kann dann mit anderen VPCs gemeinsam genutzt werden, indem deren VPC-Endpunkte verwendet werden.
Das in diesem Muster beschriebene Setup ist eine sichere Methode, um den Anwendungszugriff zwischen VPCs und AWS-Konten gemeinsam zu nutzen. Es sind keine speziellen Konnektivitäts- oder Routing-Konfigurationen erforderlich, da die Verbindung zwischen den Kunden- und Anbieterkonten auf dem globalen AWS-Backbone erfolgt und nicht über das öffentliche Internet erfolgt.
Voraussetzungen und Einschränkungen
Voraussetzungen
Docker
, installiert und konfiguriert unter Linux, MacOS oder Windows. Eine Anwendung, die auf Docker läuft.
Ein aktives AWS-Konto.
AWS-Befehlszeilenschnittstelle (AWS CLI) Version 2, installiert und konfiguriert unter Linux, macOS oder Windows.
Ein vorhandener Amazon EKS-Cluster mit markierten privaten Subnetzen, der für das Hosten von Anwendungen konfiguriert ist. Weitere Informationen finden Sie unter Subnet-Tagging in der Amazon EKS-Dokumentation.
Kubectl, installiert und konfiguriert für den Zugriff auf Ressourcen in Ihrem Amazon EKS-Cluster. Weitere Informationen finden Sie unter Installation von kubectl in der Amazon EKS-Dokumentation.
Architektur
![Verwenden Sie PrivateLink und einen Network Load Balancer, um auf eine Anwendung in einem Amazon EKS-Container zuzugreifen.](images/pattern-img/ce977924-012c-4fb6-8e51-94d6e5c829a6/images/378456a3-f4d1-4a57-bb36-879c240cabfb.png)
Technologie-Stack
Amazon EKS
AWS PrivateLink
Network Load Balancer
Automatisierung und Skalierung
Kubernetes-Manifeste können in einem Git-basierten Repository (z. B. auf AWS CodeCommit) verfolgt und verwaltet und mithilfe von Continuous Integration and Continuous Delivery (CI/CD) in AWS bereitgestellt werden. CodePipeline
Sie können AWS verwenden CloudFormation , um dieses Muster mithilfe von Infrastructure as Code (IaC) zu erstellen.
Tools
AWS CLI — AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
Elastic Load Balancing — Elastic Load Balancing verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele, wie Amazon Elastic Compute Cloud (Amazon EC2) -Instances, Container und IP-Adressen, in einer oder mehreren Availability Zones.
Amazon EKS — Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter Service, mit dem Sie Kubernetes auf AWS ausführen können, ohne Ihre eigene Kubernetes-Steuerebene oder Knoten installieren, betreiben und warten zu müssen.
Amazon VPC — Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten.
Kubectl — Kubectl
ist ein Befehlszeilenprogramm zum Ausführen von Befehlen für Kubernetes-Cluster.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die Manifestdatei für die Kubernetes-Bereitstellung. | Erstellen Sie eine Bereitstellungsmanifestdatei, indem Sie die folgende Beispieldatei Ihren Anforderungen entsprechend ändern.
Hinweis: Dies ist eine NGINX-Beispielkonfigurationsdatei, die mithilfe des NGINX-Docker-Images bereitgestellt wird. Weitere Informationen finden Sie in der Docker-Dokumentation unter So verwenden Sie das offizielle NGINX-Docker-Image | DevOps Ingenieur |
Stellen Sie die Kubernetes-Bereitstellungsmanifestdatei bereit. | Führen Sie den folgenden Befehl aus, um die Bereitstellungsmanifestdatei auf Ihren Amazon EKS-Cluster anzuwenden:
| DevOps Ingenieur |
Erstellen Sie die Manifestdatei des Kubernetes-Dienstes. | Erstellen Sie eine Dienstmanifestdatei, indem Sie die folgende Beispieldatei Ihren Anforderungen entsprechend ändern.
Wichtig: Stellen Sie sicher, dass Sie Folgendes angegeben haben
| DevOps Ingenieur |
Stellen Sie die Manifestdatei des Kubernetes-Dienstes bereit. | Führen Sie den folgenden Befehl aus, um die Service-Manifest-Datei auf Ihren Amazon EKS-Cluster anzuwenden:
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Notieren Sie sich den Namen des Network Load Balancers. | Führen Sie den folgenden Befehl aus, um den Namen des Network Load Balancer abzurufen:
Notieren Sie sich den Namen des Network Load Balancers, der für die Erstellung eines PrivateLink AWS-Endpunkts erforderlich ist. | DevOps Ingenieur |
Erstellen Sie einen PrivateLink AWS-Endpunkt. | Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die Amazon VPC-Konsole und erstellen Sie dann einen PrivateLink AWS-Endpunkt. Ordnen Sie diesen Endpunkt dem Network Load Balancer zu, damit die Anwendung privat für Kunden verfügbar ist. Weitere Informationen finden Sie unter VPC Endpoint Services (AWS PrivateLink) in der Amazon VPC-Dokumentation. Wichtig: Wenn das Verbraucherkonto Zugriff auf die Anwendung benötigt, muss die AWS-Konto-ID des Verbraucherkontos zur Liste der zulässigen Prinzipale für die PrivateLink AWS-Endpunktkonfiguration hinzugefügt werden. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von Berechtigungen für Ihren Endpunkt-Service in der Amazon VPC-Dokumentation. | Cloud-Administrator |
Erstellen Sie einen VPC-Endpunkt. | Wählen Sie in der Amazon VPC-Konsole Endpoint Services und dann Create Endpoint Service aus. Erstellen Sie einen VPC-Endpunkt für den PrivateLink AWS-Endpunkt. Der vollqualifizierte Domainname (FQDN) des VPC-Endpunkts verweist auf den FQDN für den AWS-Endpunkt. PrivateLink Dadurch wird eine elastic network interface zum VPC-Endpunktdienst erstellt, auf die die DNS-Endpunkte zugreifen können. | Cloud-Administrator |