Stellen Sie private Cluster mit eingeschränktem Internetzugang bereit - Amazon EKS

Helfen Sie mit, diese Seite zu verbessern

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

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.

Stellen Sie private Cluster mit eingeschränktem Internetzugang bereit

In diesem Thema wird beschrieben, wie Sie einen Amazon EKS-Cluster bereitstellen AWS Cloud, der auf dem bereitgestellt wird, aber keinen ausgehenden Internetzugang hat. Wenn Sie einen lokalen Cluster aktiviert haben AWS OutpostsStarten selbstverwalteter Amazon Linux-Knoten auf einem Outpost, finden Sie statt dieses Themas weitere Informationen unter.

Wenn Sie mit dem Amazon-EKS-Netzwerk nicht vertraut sind, finden Sie unter Entmystifizierung von Cluster-Netzwerken für Amazon EKS-Worker-Knoten. Wenn Ihr Cluster nicht über einen ausgehenden Internetzugriff verfügt, muss es die folgenden Anforderungen erfüllen:

  • Ihr Cluster muss Images von einer Container-Registry in Ihrer VPC beziehen. 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 Steuern Sie den Netzwerkzugriff auf den Cluster-API-Serverendpunkt.

  • Selbstverwaltete 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 durch den 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 durch den 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 cluster-endpoint und certificate-authority in den folgenden Befehlen durch die Werte, die in der Ausgabe der vorherigen Befehle zurückgegeben wurden. Weitere Informationen zur Angabe von Bootstrap-Argumenten beim Start von selbstverwalteten Knoten finden Sie unter Starten selbstverwalteter Amazon Linux-Knoten und Starten selbstverwalteter Windows-Knoten.

    • Für Linux-Knoten:

      --apiserver-endpoint cluster-endpoint --b64-cluster-ca certificate-authority

      Weitere Argumente finden Sie im Bootstrap-Skript auf GitHub.

    • Für Windows-Knoten:

      Anmerkung

      Wenn Sie CIDR für den benutzerdefinierten Service verwenden, müssen Sie ihn 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.

  • Pods die mit IAM-Rollen für Service-Konten konfiguriert sind, beziehen Anmeldeinformationen von 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 AWS STS VPC-Endpunkt nicht verwendet. Um den AWS STS VPC-Endpunkt zu verwenden, müssen Sie Ihr SDK möglicherweise so konfigurieren, dass es den regionalen AWS STS Endpunkt (sts.region-code.amazonaws.com) verwendet. Weitere Informationen finden Sie unter Den AWS Security Token Service Endpunkt für ein Dienstkonto konfigurieren.

  • Die VPC-Subnetze Ihres Clusters müssen über einen VPC-Schnittstellenendpunkt für jedes AWS-Services verfügen, auf das Ihr Pods Zugriff benötigt. Weitere Informationen finden Sie unter Zugriff auf einen AWS -Service über einen Schnittstellen-VPC-Endpunkt. 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 PrivateLink integriert sind im AWS PrivateLink -Handbuch.

    Service Endpunkt
    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, and com.amazonaws.region-code.s3
    Application Load Balancer und Network Load Balancer com.amazonaws.region-code.elasticloadbalancing
    AWS X-Ray com.amazonaws.region-code.xray
    CloudWatch Amazon-Protokolle com.amazonaws.region-code.logs
    AWS Security Token Service (erforderlich, wenn IAM-Rollen für Dienstkonten verwendet werden) com.amazonaws.region-code.sts
Überlegungen
  • 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.

  • Wenn Sie Amazon EFS-Volumes Pods verwenden, muss vor der Bereitstellung von die Datei kustomization.yaml des Treibers geändert werdenAmazon EFS-Speicher verwenden, um festzulegen, dass die Container-Images dieselben AWS-Region wie der Amazon EKS-Cluster verwenden.

  • Sie können die verwenden AWS Load Balancer Controller, 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 Ingress-Objekten wird nicht unterstützt. Dies liegt daran, dass der Controller eine Verbindung herstellen muss AWS Certificate Manager, die 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 finden Sie unter Routenanwendung und HTTP Verkehr mit Application Load Balancers 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 der statischen Instance-Liste auf GitHub. Die Worker-Node-VPC muss auch den VPC-Endpunkt und den AWS STS VPC-Endpunkt für Autoscaling enthalten.

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