View a markdown version of this page

Bereitstellung privater Cluster mit eingeschränktem Internetzugang - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

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.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.

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.

Bereitstellung privater Cluster mit eingeschränktem Internetzugang

In diesem Thema wird beschrieben, wie Sie einen Amazon EKS-Cluster bereitstellen, der in der AWS Cloud bereitgestellt wird, aber keinen ausgehenden Internetzugang hat. Wenn Sie einen lokalen Cluster auf AWS Outposts habenErstellen Sie Amazon Linux-Knoten auf AWS Outposts, finden Sie statt dieses Themas weitere Informationen unter.

Anmerkung

In diesem Thema geht es um ausgehenden Datenverkehr auf Datenebene (Knoten und Workloads ohne ausgehenden Internetzugang). Informationen zur Steuerung, wie ausgehender Datenverkehr von der Cluster-Steuerungsebene Ihre VPC erreicht, finden Sie unter. Konfiguration des Ausgangsroutings auf der Steuerungsebene

Wenn Sie mit Amazon EKS-Netzwerken nicht vertraut sind, finden Sie weitere Informationen unter De-mystifying Cluster-Netzwerke für Amazon EKS-Worker-Knoten. Wenn Ihr Cluster nicht über einen ausgehenden Internetzugriff verfügt, muss es die folgenden Anforderungen erfüllen:

Anforderungen an die Cluster-Architektur

  • Ihr Cluster muss Images von einer Container-Registry in Ihrer VPC abrufen. Sie können eine Amazon Elastic Container Registry in Ihrer VPC erstellen und Container-Images dorthin kopieren, damit Ihre Knoten daraus abrufen können. Weitere Informationen finden Sie unter Kopieren eines Container-Images von einem Repository in ein anderes.

  • In Ihrem Cluster muss der private Endpunkt-Zugriff aktiviert sein. Dies ist erforderlich, damit sich Knoten beim Cluster-Endpunkt registrieren können. Der Endpunkt für öffentlichen Zugriff ist optional. Weitere Informationen finden Sie unter Cluster-API-Server-Endpunkt.

Knoten-Anforderungen

  • Self-managed Linux- und Windows-Knoten müssen die folgenden Bootstrap-Argumente enthalten, bevor sie gestartet werden. Diese Argumente umgehen die Amazon-EKS-Introspektion und erfordern keinen Zugriff auf die Amazon-EKS-API innerhalb der VPC.

    1. Bestimmen Sie den Wert des Endpunkts Ihres Clusters mit dem folgenden Befehl. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

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

      Eine Beispielausgabe sieht wie folgt aus.

      https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com
    2. Bestimmen Sie den Wert der Zertifizierungsstelle Ihres Clusters mit dem folgenden Befehl. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

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

      Die zurückgegebene Ausgabe ist eine lange Zeichenfolge.

    3. Ersetzen Sie die Werte von apiServerEndpoint und certificateAuthority im NodeConfig Objekt durch die Werte, die in der Ausgabe der vorherigen Befehle zurückgegeben wurden. Weitere Informationen zur Angabe von Bootstrap-Argumenten beim Starten selbstverwalteter Amazon Linux 2023-Knoten finden Sie unter Selbstverwaltete Amazon-Linux-Knoten erstellen und. Selbstverwaltete Microsoft-Windows-Knoten erstellen

      • Für Linux-Knoten:

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

        Weitere Argumente finden Sie im Bootstrap-Skript unter. GitHub

      • Für Windows-Knoten:

        Anmerkung

        Wenn Sie CIDR für den benutzerdefinierten Service verwenden, müssen Sie diesen mithilfe des -ServiceCIDR-Parameters angeben. Andernfalls schlägt die DNS-Auflösung für Pods im Cluster fehl.

        -APIServerEndpoint cluster-endpoint -Base64ClusterCA certificate-authority

        Weitere Argumente finden Sie unter Bootstrap-Skript-Konfigurationsparameter.

  • Das aws-auth ConfigMap Ihres Clusters muss innerhalb Ihrer VPC erstellt werden. Weitere Informationen zum Erstellen und Hinzufügen von Einträgen zu aws-auth ConfigMap erhalten Sie durch Eingabe von eksctl create iamidentitymapping --help in Ihrem Terminal. Falls ConfigMap auf Ihrem Server nicht vorhanden ist, wird es von eksctl erstellt, wenn Sie den Befehl zum Hinzufügen einer Identitätszuordnung verwenden.

Pod-Anforderungen

  • Pod Identity – Mit EKS Pod Identity konfigurierte Pods erhalten Anmeldeinformationen von der EKS-Auth-API. Wenn kein ausgehender Internetzugang vorhanden ist, müssen Sie einen VPC-Endpunkt für die EKS-Auth-API erstellen und verwenden: com.amazonaws.region-code.eks-auth. Weitere Informationen zu den EKS- und EKS-Auth-VPC-Endpunkten finden Sie unter Greifen Sie auf Amazon EKS zu mit AWS PrivateLink

  • IRSA — Pods, die mit IAM-Rollen für Dienstkonten konfiguriert sind, erhalten Anmeldeinformationen aus einem AWS Security Token Service (AWS STS) -API-Aufruf. Wenn es keinen ausgehenden Internetzugang gibt, müssen Sie einen AWS STS-VPC-Endpunkt in Ihrer VPC erstellen und verwenden. Die meisten AWS v1 SDKs verwenden standardmäßig den globalen AWS STS-Endpunkt (sts.amazonaws.com), der den STS-VPC-Endpunkt nicht verwendet. AWS Um den AWS STS-VPC-Endpunkt zu verwenden, müssen Sie Ihr SDK möglicherweise so konfigurieren, dass es den regionalen AWS STS-Endpunkt () verwendet. sts.region-code.amazonaws.com Weitere Informationen finden Sie unter Konfiguriere die AWS Security Token Service-Endpunkt für ein Dienstkonto.

    Um IRSA einzurichten, müssen Sie auch den discovery/JWKS OIDC-Endpunkt des Clusters von der VPC aus erreichen. Sie erreichen ihn beispielsweise, wenn Sie den IAM-OIDC-Identitätsanbieter des Clusters erstellen oder Ihre eigenen Token-Validatoren ausführen. Wenn es keinen ausgehenden Internetzugang gibt, erstellen und verwenden Sie einen VPC-Endpunkt für den Cluster-OIDC-Endpunkt:. com.amazonaws.region-code.oidc-eks Dieser ist vom STS-VPC-Endpunkt getrennt. AWS STS ruft die JWKS des Clusters von innen ab AWS, sodass der OIDC-Endpunkt Ihren VPC-originated OIDC-Verkehr privatisiert, während der STS-Endpunkt den Anruf privatisiert. AssumeRoleWithWebIdentity Weitere Informationen finden Sie unter Greifen Sie mit folgenden Methoden auf den Cluster-OIDC-Endpunkt zu AWS PrivateLink.

  • Die VPC-Subnetze Ihres Clusters müssen über einen VPC-Schnittstellenendpunkt für alle Dienste verfügen, auf die Ihre Pods Zugriff benötigen. AWS Weitere Informationen finden Sie unter Zugreifen auf einen AWS Dienst mithilfe eines Schnittstellen-VPC-Endpunkts. Einige häufig verwendete Services und Endpunkte sind in der folgenden Tabelle aufgeführt. eine vollständige Liste der Endpunkte finden Sie unter AWS -Services, die mit AWS integriert sindPrivateLink im AWS PrivateLink -Handbuch.

    Wir empfehlen, private DNS-Namen für Ihre VPC-Endpunkte zu aktivieren, damit Workloads öffentliche AWS Dienstendpunkte weiterhin problemlos verwenden können.

    Service Endpoint

    Amazon EC2

    com.amazonaws. region-code.ec2

    Amazon Elastic Container Registry (zum Abrufen von Container-Images)

    com.amazonaws. region-code.ecr.api, com.amazonaws. region-code.ecr.dkr und com.amazonaws. region-code.s3

    Amazon Application Load Balancers und Network Load Balancers

    com.amazonaws. region-code. elastischer Lastausgleich

    (Optional) AWS X-Ray (erforderlich, um die Ablaufverfolgung zu senden an) AWS X-Ray

    com.amazonaws. region-code.xray

    (Optional) Amazon SSM (erforderlich für den SSM-Agenten für Knoten-Verwaltungsaufgaben. Alternative zu SSH)

    com.amazonaws. region-code.ssm

    Amazon CloudWatch Logs (erforderlich für Node- und Pod-Logs, die an Amazon CloudWatch Logs gesendet werden)

    com.amazonaws. region-code.protokolle

    AWS Security Token Service (erforderlich, wenn IAM-Rollen für Dienstkonten verwendet werden)

    com.amazonaws. region-code.sts

    Amazon EKS-Cluster-OIDC-Endpunkt (erforderlich, um IAM-Rollen für Dienstkonten innerhalb der VPC einzurichten)

    com.amazonaws. region-code.oidc-eks

    Amazon-EKS-Authentifizierung (erforderlich bei Verwendung von Pod-Identity-Zuordnungen)

    com.amazonaws. region-code.eks-auth

    Amazon EKS

    com.amazonaws. region-code.eks

    Amazon Route 53

    com.amazonaws.route53

  • Alle selbstverwalteten Knoten müssen in Subnetzen bereitgestellt werden, die über die von Ihnen benötigten VPC-Schnittstellenendpunkte verfügen. Wenn Sie eine verwaltete Knotengruppe erstellen, muss die Endpunktsicherheitsgruppe der VPC-Schnittstelle das CIDR für die Subnetze zulassen, oder Sie müssen die erstellte Knotensicherheitsgruppe zur Endpunktsicherheitsgruppe der VPC-Schnittstelle hinzufügen.

  • EFS-Speicher — Wenn Ihre Pods Amazon EFS-Volumes verwenden, muss vor der Bereitstellung von Store an Elastic File System with Amazon EFS die Datei kustomization.yaml des Treibers geändert werden, um festzulegen, dass die Container-Images dieselbe Region wie der Amazon EKS-Cluster verwenden. AWS

  • Bei Verwendung der EKS-optimierten AMI sollten Sie den ec2-Endpunkt in der obigen Tabelle aktivieren. Alternativ können Sie den Knoten-DNS-Namen manuell festlegen. Die optimierte AMI verwendet EC2-APIs, um den DNS-Namen des Knotens automatisch festzulegen.

  • Sie können den Load AWS Balancer Controller verwenden, um AWS Application Load Balancers (ALB) und Network Load Balancer in Ihrem privaten Cluster bereitzustellen. Beim Bereitstellen sollten Sie Befehlszeilen-Flags verwenden, um enable-shield, enable-waf und enable-wafv2 auf falsch zu setzen. Die Zertifikatserkennung mit Hostnamen aus Eingangsobjekten wird nicht unterstützt. Dies liegt daran, dass der Controller den AWS Certificate Manager erreichen muss, der keinen VPC-Schnittstellenendpunkt hat.

    Der Controller unterstützt Network Load Balancer mit IP-Zielen, die für die Verwendung mit Fargate erforderlich sind. Weitere Informationen erhalten Sie unter Anwendungen und HTTP-Datenverkehr mit Application Load Balancers weiterleiten und Erstellen eines Network Load Balancers.

  • Cluster Autoscaler wird unterstützt. Stellen Sie beim Bereitstellen von Cluster-Autoscaler-Pods sicher, dass die Befehlszeile --aws-use-static-instance-list=true enthält. Weitere Informationen finden Sie unter Verwenden Sie die statische Instanzliste unter GitHub. Die Worker-Knoten-VPC muss auch den AWS STS-VPC-Endpunkt und den Autoscaling-VPC-Endpunkt enthalten.

  • Einige Container-Softwareprodukte verwenden API-Aufrufe, die auf den AWS Marketplace Metering Service zugreifen, um die Nutzung zu überwachen. Private Cluster lassen diese Aufrufe nicht zu, daher können Sie diese Containertypen nicht in privaten Clustern verwenden.