Cluster-Zugriff - Eksctl-Benutzerhandbuch

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.

Cluster-Zugriff

Verwaltung des Zugriffs auf die Kubernetes API-Server-Endpunkte

Standardmäßig macht ein EKS-Cluster den Kubernetes-API-Server öffentlich verfügbar, jedoch nicht direkt innerhalb der VPC-Subnetze (public=true, private=false). Traffic, der innerhalb der VPC für den API-Server bestimmt ist, muss zuerst die VPC-Netzwerke (aber nicht das Netzwerk von Amazon) verlassen und dann erneut eintreten, um den API-Server zu erreichen.

Der Endpunktzugriff auf den Kubernetes-API-Server für einen Cluster kann bei der Erstellung des Clusters mithilfe der Cluster-Konfigurationsdatei für den öffentlichen und privaten Zugriff konfiguriert werden. Beispiel unten:

vpc: clusterEndpoints: publicAccess: <true|false> privateAccess: <true|false>

Bei der Konfiguration des Kubernetes-API-Endpunktzugriffs gibt es einige zusätzliche Einschränkungen:

  1. EKS erlaubt keine Cluster, für die weder der private noch der öffentliche Zugriff aktiviert ist.

  2. EKS ermöglicht zwar die Erstellung einer Konfiguration, bei der nur privater Zugriff aktiviert werden kann, aber eksctl unterstützt dies nicht bei der Clustererstellung, da es verhindert, dass eksctl die Worker-Knoten dem Cluster hinzufügen kann.

  3. Wenn ein Cluster so aktualisiert wird, dass er nur privaten Kubernetes-API-Endpunktzugriff hat, bedeutet dies, dass Kubernetes-Befehle standardmäßig (z. B.kubectl) sowie eksctl delete clustereksctl utils write-kubeconfig, und möglicherweise der Befehl innerhalb der Cluster-VPC ausgeführt werden eksctl utils update-kube-proxy müssen.

    • Dies erfordert einige Änderungen an verschiedenen AWS-Ressourcen. Weitere Informationen finden Sie unter Cluster-API-Serverendpunkt.

    • Sie können angebenvpc.extraCIDRs, welche zusätzliche CIDR-Bereiche an die anhängen ControlPlaneSecurityGroup, sodass Subnetze außerhalb der VPC den Kubernetes-API-Endpunkt erreichen können. In ähnlicher Weise können Sie auch angeben, dass CIDR-Bereiche angehängt vpc.extraIPv6CIDRs werden. IPv6

Im Folgenden finden Sie ein Beispiel dafür, wie Sie den Kubernetes-API-Endpunktzugriff mit dem Unterbefehl konfigurieren könnten: utils

eksctl utils update-cluster-vpc-config --cluster=<clustername> --private-access=true --public-access=false

Um die Einstellung mithilfe einer ClusterConfig Datei zu aktualisieren, verwenden Sie:

eksctl utils update-cluster-vpc-config -f config.yaml --approve

Beachten Sie, dass der aktuelle Wert beibehalten wird, wenn Sie kein Kennzeichen übergeben. Wenn Sie mit den vorgeschlagenen Änderungen zufrieden sind, fügen Sie das approve Kennzeichen hinzu, um die Änderung am laufenden Cluster vorzunehmen.

Beschränkung des Zugriffs auf den EKS Kubernetes Public API-Endpunkt

Bei der Standarderstellung eines EKS-Clusters wird der Kubernetes-API-Server öffentlich verfügbar gemacht.

Diese Funktion gilt nur für den öffentlichen Endpunkt. Die Konfigurationsoptionen für den API-Serverendpunktzugriff werden nicht geändert, und Sie haben weiterhin die Möglichkeit, den öffentlichen Endpunkt zu deaktivieren, sodass Ihr Cluster nicht über das Internet zugänglich ist. (Quelle: https://github.com/aws/ containers-roadmap/issues/108 #issuecomment -552766489)

Um den Zugriff auf den öffentlichen API-Endpunkt beim Erstellen eines Clusters auf eine Reihe von zu beschränken, legen Sie das Feld fest: CIDRs publicAccessCIDRs

vpc: publicAccessCIDRs: ["1.1.1.1/32", "2.2.2.0/24"]

Um die Einschränkungen für einen vorhandenen Cluster zu aktualisieren, verwenden Sie:

eksctl utils update-cluster-vpc-config --cluster=<cluster> 1.1.1.1/32,2.2.2.0/24

Um die Einschränkungen mithilfe einer ClusterConfig Datei zu aktualisieren, legen Sie das neue CIDRs in fest vpc.publicAccessCIDRs und führen Sie Folgendes aus:

eksctl utils update-cluster-vpc-config -f config.yaml
Wichtig

Beim Setzen publicAccessCIDRs und Erstellen von Knotengruppen privateAccess sollte entweder auf gesetzt werden true oder die Knoten IPs sollten der Liste hinzugefügt werden. publicAccessCIDRs

Wenn Knoten aufgrund eines eingeschränkten Zugriffs nicht auf den Cluster-API-Endpunkt zugreifen können, schlägt die Clustererstellung fehl, context deadline exceeded da die Knoten nicht auf den öffentlichen Endpunkt zugreifen können und dem Cluster nicht beitreten können.

Um sowohl den API-Server-Endpunktzugriff als auch den öffentlichen Zugriff CIDRs für einen Cluster mit einem einzigen Befehl zu aktualisieren, führen Sie folgenden Befehl aus:

eksctl utils update-cluster-vpc-config --cluster=<cluster> --public-access=true --private-access=true --public-access-cidrs=1.1.1.1/32,2.2.2.0/24

Um die Einstellung mithilfe einer Konfigurationsdatei zu aktualisieren:

vpc: clusterEndpoints: publicAccess: <true|false> privateAccess: <true|false> publicAccessCIDRs: ["1.1.1.1/32"]
eksctl utils update-cluster-vpc-config --cluster=<cluster> -f config.yaml