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
-
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.
-
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 textEine Beispielausgabe sieht wie folgt aus.
https://
EXAMPLE108C897D9B2F1B21D5EXAMPLE
.sk1
.region-code
.eks.amazonaws.com 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 textDie zurückgegebene Ausgabe ist eine lange Zeichenfolge.
-
Ersetzen Sie
undcluster-endpoint
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.certificate-authority
-
Für Linux-Knoten:
--apiserver-endpoint
cluster-endpoint
--b64-cluster-cacertificate-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
-Base64ClusterCAcertificate-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 desaws-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.
). Weitere Informationen finden Sie unter Konfigurieren des AWS Security Token Service-Endpunkts für ein Servicekonto.region-code
.amazonaws.com
-
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
.ec2Amazon 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
.s3Application Load Balancer und Network Load Balancer com.amazonaws. region-code
.elasticloadbalancingAWS X-Ray com.amazonaws. region-code
.xrayAmazon CloudWatch Logs com.amazonaws. region-code
.logsAWS Security Token Service (erforderlich, wenn IAM-Rollen für Service-Konten verwendet werden) com.amazonaws. region-code
.stsApp 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-Listeauf 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
undenable-wafv2
auf falsch zu setzen. Die Zertifikatserkennungmit 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.