Anforderungen an private Cluster - Amazon EKS

Anforderungen an private Cluster

Dieses Thema beschreibt, wie Sie einen Amazon-EKS-Cluster bereitstellen, der in der AWS Cloud bereitgestellt ist, aber keinen ausgehenden Internetzugriff hat. Wenn Sie einen lokalen Cluster in AWS Outposts haben, lesen Sie Starten selbstverwalteter Amazon Linux-Knoten auf einem Outpost anstelle dieses Themas.

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 Zugriffskontrolle für den Amazon-EKS-Cluster-Endpunkt.

  • 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 des aws-auth ConfigMap, finden Sie unter IAM-Prinzipal-Zugriff auf Ihrem Cluster aktivieren.

  • Pods die mit IAM-Rollen für Service-Konten konfiguriert sind, beziehen Anmeldeinformationen von einem AWS Security Token Service (AWS STS)-API-Aufruf. Wenn kein ausgehender Internetzugang vorhanden ist, 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 nicht den AWS STS-VPC-Endpunkt benutzt. Um den AWS STS-VPC-Endpunkt zu verwenden, müssen Sie möglicherweise Ihr SDK für die Verwendung des regionalen AWS STS-Endpunkts konfigurieren (sts.region-code.amazonaws.com). Weitere Informationen finden Sie unter Konfigurieren des AWS Security Token Service-Endpunkts für ein Servicekonto.

  • 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
    Amazon CloudWatch Logs com.amazonaws.region-code.logs
    AWS Security Token Service (erforderlich, wenn IAM-Rollen für Service-Konten verwendet werden) com.amazonaws.region-code.sts

    App Mesh

    • Der App-Mesh-Controller für Kubernetes wird nicht unterstützt. Weitere Informationen finden Sie unter App-Mesh-Controller auf GitHub.

    • 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-Knoten-VPC muss auch den AWS STS-VPC-Endpunkt und den Autoscaling-VPC-Endpunkt enthalten.

    com.amazonaws.region-code.appmesh-envoy-management
Ü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 Ihr Pods Amazon-EFS-Volumes verwendet, muss vor der Bereitstellung von Amazon EFS-CSI-Treiber die Datei kustomization.yaml des Treibers geändert werden, um die Container-Images so einzustellen, dass sie dasselbe AWS-Region wie der Amazon-EKS-Cluster verwenden.

  • Sie können das AWS Load Balancer Controller verwenden, um AWS Application Load Balancers (ALB) und Network Load Balancers für Ihren 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. Das liegt daran, dass der Controller AWS Certificate Manager benötigt, der über keinen VPC-Schnittstellenendpunkt verfügt.

    Der Controller unterstützt Network Load Balancer mit IP-Zielen, die für die Verwendung mit Fargate erforderlich sind. Weitere Informationen finden Sie unter Application Load Balancing auf Amazon EKS und Erstellen eines Network Load Balancers.

  • Der CSI-Treiber für Amazon FSx für Lustre wird nicht unterstützt.

  • Einige Container-Softwareprodukte verwenden API-Aufrufe, die auf 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.