Helfen Sie mit, diese Seite 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.
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.
Amazon Linux-Knoten auf AWS Outposts erstellen
In diesem Thema wird beschrieben, wie Sie Auto Scaling Scaling-Gruppen von Amazon Linux-Knoten auf einem Outpost starten können, die sich bei Ihrem EKS Amazon-Cluster registrieren. Der Cluster kann sich in der AWS Cloud oder in einem Outpost befinden.
-
Ein vorhandener Outpost. Weitere Informationen finden Sie unter Was sind AWS Outposts.
-
Ein vorhandener EKS Amazon-Cluster. Informationen zur Bereitstellung eines Clusters in der AWS Cloud finden Sie unterErstellen Sie einen EKS Amazon-Cluster. Informationen zum Bereitstellen eines Clusters in einem Outpost finden Sie unter Erstellen Sie lokale EKS Amazon-Cluster auf AWS Outposts für hohe Verfügbarkeit.
-
Angenommen, Sie erstellen Ihre Knoten in einem Cluster in der AWS Cloud und haben Subnetze in der AWS Region, in der Sie AWS Outposts, AWS Wavelength oder AWS Local Zones aktiviert haben. Diese Subnetze dürfen dann bei der Erstellung Ihres Clusters nicht angegeben worden sein. Wenn Sie Ihre Knoten in einem Cluster auf einem Outpost erstellen, müssen Sie bei der Erstellung Ihres Clusters ein Outpost-Subnetz eingegeben haben.
-
(Empfohlen für Cluster in der Cloud) Das AWS Amazon VPC CNI plugin for Kubernetes Add-on, das mit einer eigenen IAM Rolle konfiguriert ist und der die erforderlichen IAM Richtlinien zugeordnet sind. Weitere Informationen finden Sie unter Konfigurieren Sie VPC CNI das zu verwendende Amazon-Plugin IRSA. Lokale Cluster unterstützen keine IAM Rollen für Dienstkonten.
Sie können eine selbstverwaltete Amazon Linux-Knotengruppe mit eksctl
oder AWS Management Console (mit einer AWS CloudFormation Vorlage) erstellen. Sie können auch Terraform
Sie können einen lokalen Cluster mit den folgenden auf dieser Seite beschriebenen Tools erstellen:
eksctl
Um selbstverwaltete Linux-Knoten mit eksctl
`zu starten
-
Installieren Sie die Version
0.199.0
oder höher des auf Ihrem Gerät installierteneksctl
Befehlszeilentools oder AWS CloudShell. Informationen zum Installieren und Aktualisieren voneksctl
finden Sie in der Dokumentation zueksctl
unter Installation. -
Wenn sich Ihr Cluster in der AWS Cloud befindet und die von Amazon EKS _ CNI IAM _Policy verwaltete Richtlinie mit Ihrer EKSIAMAmazon-Knotenrolle verknüpft ist, empfehlen wir, sie einer IAM Rolle zuzuweisen, die Sie der Kubernetes
aws-node
Stattdessen ein Dienstkonto. Weitere Informationen finden Sie unter Konfigurieren Sie VPC CNI das zu verwendende Amazon-Plugin IRSA. Wenn sich Ihr Cluster in Ihrem Outpost befindet, muss die Richtlinie an Ihre Knotenrolle angehängt sein. -
Der folgende Befehl erstellt eine Knotengruppe in einem bestehenden Cluster. Der Cluster muss mit
eksctl
erstellt worden sein. Ersetzen Sieal-nodes
durch einen Namen für Ihre Knotengruppe. Der Name der Knotengruppe darf nicht länger als 63 Zeichen sein. Er muss mit einem Buchstaben oder einer Ziffer beginnen, kann danach aber auch Bindestriche und Unterstriche enthalten. Ersetzen Siemy-cluster
mit dem Namen Ihres Clusters. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphanumerischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein. Der Name muss innerhalb der AWS Region und des AWS Kontos, in dem Sie den Cluster erstellen, eindeutig sein. Wenn Ihr Cluster auf einem Outpost existiert, ersetzen Sieid
mit der ID eines Outpost-Subnetzes. Wenn Ihr Cluster in der AWS Cloud existiert,id
ersetzen Sie ihn durch die ID eines Subnetzes, das Sie bei der Erstellung Ihres Clusters nicht angegeben haben. Ersetzen Sieinstance-type
durch einen Instance-Typ, der von Ihrem Outpost unterstützt wird. Ersetzen Sie den Rest derexample values
durch Ihre eigenen Werte. Die Knoten werden mit demselben erstellt Kubernetes Version wie die Steuerungsebene, standardmäßig.Ersetzen Sie
instance-type
durch einen Instance-Typ, der auf Ihrem Outpost verfügbar ist.my-key
Ersetzen Sie es durch den Namen Ihres EC2 Amazon-Schlüsselpaars oder öffentlichen Schlüssels. Dieser Schlüssel wird verwendet, um SSH nach dem Start auf Ihre Knoten zuzugreifen. Wenn Sie noch kein EC2 Amazon-Schlüsselpaar haben, können Sie eines in der erstellen AWS Management Console. Weitere Informationen finden Sie unter EC2Amazon-Schlüsselpaare im EC2Amazon-Benutzerhandbuch.Erstellen Sie Ihre Knoten-Gruppe mit dem folgenden Befehl.
eksctl create nodegroup --cluster my-cluster --name al-nodes --node-type instance-type \ --nodes 3 --nodes-min 1 --nodes-max 4 --managed=false --node-volume-type gp2 --subnet-ids subnet-id
Wenn Ihr Cluster in der AWS Cloud bereitgestellt ist:
-
Der Knotengruppe, die Sie bereitstellen, können
IPv4
Adressen zuweisen Pods von einem anderen CIDR Block als der der Instanz. Weitere Informationen finden Sie unter Bereitstellen pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk. -
Für die Knotengruppe, die Sie bereitstellen, ist kein ausgehender Internetzugang erforderlich. Weitere Informationen finden Sie unter Stellen Sie private Cluster mit eingeschränktem Internetzugang bereit.
Eine vollständige Liste aller verfügbaren Optionen und Standardeinstellungen finden Sie in der Dokumentation unter AWS Outposts Support
. eksctl
-
Wenn Knoten dem Cluster nicht beitreten können, finden Sie weitere Informationen unter Knoten können nicht mit dem Cluster verknüpft werden Beheben von Problemen mit EKS Amazon-Clustern und -Knoten und unter Fehlerbehebung Knoten können nicht zu einem Cluster hinzugefügt werden bei lokalen EKS Amazon-Clustern auf AWS Outposts.
-
Eine Beispielausgabe sieht wie folgt aus. Mehrere Zeilen werden ausgegeben, während die Knoten erstellt werden. Die letzte Ausgabezeile ähnelt der folgenden Beispielzeile.
[✔] created 1 nodegroup(s) in cluster "my-cluster"
-
-
(Optional) Stellen Sie eine Beispielanwendung bereit, um Ihren Cluster zu testen und Linux Knoten.
AWS Management Console
Schritt 1: Starten Sie selbstverwaltete Linux-Knoten mit ` AWS Management Console
-
Laden Sie die neueste Version der AWS CloudFormation Vorlage herunter.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml
-
Öffnen Sie die AWS CloudFormation -Konsole
. -
Wählen Sie Create stack (Stack erstellen) und dann With new resources (standard) (Mit neuen Ressourcen [Standard]) aus.
-
Wählen Sie für Specify template (Vorlage festlegen) Upload a template file (Vorlagendatei hochladen) aus und wählen Sie dann Choose file (Datei wählen). Wählen Sie die
amazon-eks-nodegroup.yaml
-Datei aus, die Sie in einem vorherigen Schritt heruntergeladen haben, und wählen Sie dann Next (Weiter) aus. -
Geben Sie auf der Seite Specify stack details (Stack-Details angeben) die folgenden Parameter ein und klicken Sie dann auf Next (Weiter):
-
Stack-Name: Wählen Sie einen Stack-Namen für Ihren AWS CloudFormation Stack. Sie können ihn beispielsweise
al-nodes
nennen. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphanumerischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein. Der Name muss innerhalb der AWS Region und des AWS Kontos, in dem Sie den Cluster erstellen, eindeutig sein. -
ClusterName: Geben Sie den Namen Ihres Clusters ein. Wenn dieser Name nicht mit Ihrem Clusternamen übereinstimmt, können Ihre Knoten dem Cluster nicht beitreten.
-
ClusterControlPlaneSecurityGroup: Wählen Sie den SecurityGroupsWert aus der AWS CloudFormation Ausgabe aus, die Sie bei der Erstellung Ihres generiert haben VPC.
Die folgenden Schritte zeigen einen Vorgang zum Abrufen der entsprechenden Gruppe.
-
Öffnen Sie die EKSAmazon-Konsole
. -
Wählen Sie den Namen des Clusters.
-
Wählen Sie die Registerkarte Network (Network) aus.
-
Verwenden Sie den Wert Zusätzliche Sicherheitsgruppen als Referenz, wenn Sie aus der ClusterControlPlaneSecurityGroupDropdownliste auswählen.
-
-
NodeGroupName: Geben Sie einen Namen für Ihre Knotengruppe ein. Dieser Name kann später verwendet werden, um die Auto Scaling-Knotengruppe zu identifizieren, die für Ihre Knoten erstellt wurde.
-
NodeAutoScalingGroupMinSize: Geben Sie die Mindestanzahl von Knoten ein, auf die Ihre Auto Scaling Scaling-Gruppe für Knoten skalieren kann.
-
NodeAutoScalingGroupDesiredCapacity: Geben Sie die gewünschte Anzahl von Knoten ein, auf die bei der Erstellung Ihres Stacks skaliert werden soll.
-
NodeAutoScalingGroupMaxSize: Geben Sie die maximale Anzahl von Knoten ein, auf die Ihre Auto Scaling Scaling-Gruppe für Knoten skalieren kann.
-
NodeInstanceType: Wählen Sie einen Instance-Typ für Ihre Knoten. Wenn Ihr Cluster in der AWS Cloud läuft, finden Sie weitere Informationen unterWählen Sie einen optimalen EC2 Amazon-Node-Instance-Typ. Wenn Ihr Cluster auf einem Outpost ausgeführt wird, können Sie nur einen Instance-Typ auswählen, der auf Ihrem Outpost verfügbar ist.
-
NodeImageIdSSMParam: Vorab mit dem Amazon EC2 Systems Manager Manager-Parameter eines kürzlich AMI für eine EKS Variable optimierten Amazon Kubernetes Version. Um eine andere zu verwenden Kubernetes Nebenversion, die von Amazon unterstützt wirdEKS,
1.XX
durch eine andere unterstützte Version ersetzen. Wir empfehlen, dasselbe anzugeben Kubernetes Version wie Ihr Cluster.Um einen für Amazon EKS optimierten Accelerated zu verwendenAMI,
amazon-linux-2
ersetzen Sie ihn durchamazon-linux-2-gpu
. Um einen für Amazon EKS optimierten Arm zu verwendenAMI,amazon-linux-2
ersetzen Sie ihn durchamazon-linux-2-arm64
.Anmerkung
Die EKS Amazon-Knoten AMIs basieren auf Amazon Linux. Sie können Sicherheits- oder Datenschutzereignisse für Amazon Linux im Amazon Linux-Sicherheitszentrum
verfolgen, indem Sie den Tab für Ihre gewünschte Version auswählen. Sie können auch den entsprechenden RSS Feed abonnieren. Sicherheits- oder Datenschutzereignisse enthalten eine Übersicht über das Problem, welche Pakete betroffen sind und wie Sie Ihre Instances aktualisieren, um das Problem zu beheben. -
NodeImageId: (Optional) Wenn Sie Ihre eigene benutzerdefinierte AMI (anstelle einer für Amazon EKS optimiertenAMI) verwenden, geben Sie eine AMI Knoten-ID für Ihre AWS Region ein. Wenn Sie hier einen Wert angeben, überschreibt dieser alle Werte im NodeImageIdSSMParamFeld.
-
NodeVolumeSize: Geben Sie eine Root-Volume-Größe für Ihre Knoten in GiB an.
-
NodeVolumeType: Geben Sie einen Root-Volume-Typ für Ihre Knoten an.
-
KeyName: Geben Sie den Namen eines EC2 SSH Amazon-Schlüsselpaars ein, mit dem Sie nach dem Start eine Verbindung SSH zu Ihren Knoten herstellen können. Wenn Sie noch kein EC2 Amazon-Schlüsselpaar haben, können Sie eines in der erstellen AWS Management Console. Weitere Informationen finden Sie unter EC2Amazon-Schlüsselpaare im EC2Amazon-Benutzerhandbuch.
Anmerkung
Wenn Sie hier kein key pair angeben, schlägt die AWS CloudFormation Stack-Erstellung fehl.
-
BootstrapArguments: Es gibt mehrere optionale Argumente, die Sie an Ihre Knoten übergeben können. Weitere Informationen finden Sie in den Informationen zur Verwendung von Bootstrap-Skripten unter
GitHub. Wenn Sie Knoten zu einem EKS lokalen Amazon-Cluster auf AWS Outposts hinzufügen (wo Kubernetes Kontrollebeneninstanzen, die auf AWS Outposts ausgeführt werden) und der Cluster hat keine Eingangs- und Ausgangsinternetverbindung (auch bekannt als private Cluster), dann müssen Sie die folgenden Bootstrap-Argumente (als einzelne Zeile) angeben. --b64-cluster-ca ${CLUSTER_CA} --apiserver-endpoint https://${APISERVER_ENDPOINT} --enable-local-outpost true --cluster-id ${CLUSTER_ID}
-
D isableIMDSv 1: Standardmäßig unterstützt jeder Knoten den Instanz-Metadatendienst Version 1 () und. IMDSv1 IMDSv2 Sie können deaktivierenIMDSv1. Um future Knoten zu verhindern und Pods Setzen Sie D isableIMDSv 1 in der IMDSv1 Knotengruppe nicht auf true. Weitere Informationen dazu finden Sie IMDS unter Konfiguration des Instanz-Metadatendienstes. Weitere Informationen zum Einschränken des Zugriffs darauf auf Ihre Knoten finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
. -
VpcId: Geben Sie die ID für den ein VPC, den Sie erstellt haben. Bevor Sie sich für eine entscheidenVPC, sollten Sie sich mit VPCden Anforderungen und Überlegungen vertraut machen.
-
Subnetze: Wenn sich Ihr Cluster in einem Outpost befindet, wählen Sie mindestens ein privates Subnetz in Ihrem. VPC Bevor Sie Subnetze auswählen, überprüfen Sie die Anforderungen und Überlegungen zu Subnetzen. Sie können sehen, welche Subnetze privat sind, indem Sie den jeweiligen Subnetzlink in der Registerkarte Networking (Netzwerk) Ihres Clusters öffnen.
-
-
Treffen Sie die gewünschte Auswahl auf der Seite Configure stack options (Stackoptionen konfigurieren) und wählen Sie dann Next (Weiter) aus.
-
Aktivieren Sie das Kontrollkästchen links neben Ich bestätige, dass dadurch AWS CloudFormation möglicherweise Ressourcen erstellt werden. IAM , und wählen Sie dann Stapel erstellen aus.
-
Wenn Ihr Stack fertig erstellt wurde, wählen Sie ihn in der Konsole aus und klicken Sie auf Outputs (Ausgaben).
-
Notieren Sie das NodeInstanceRolefür die Knotengruppe, die erstellt wurde. Sie benötigen dies, wenn Sie Ihre EKS Amazon-Knoten konfigurieren.
Schritt 2: Aktivieren Sie die Knoten, um Ihrem Cluster beizutreten
-
Überprüfen Sie, ob Sie bereits über eine
aws-auth
ConfigMap
verfügen.kubectl describe configmap -n kube-system aws-auth
-
Wenn eine
aws-auth
ConfigMap
angezeigt wird, aktualisieren Sie sie nach Bedarf.-
Öffnen Sie
ConfigMap
zum Bearbeiten.kubectl edit -n kube-system configmap/aws-auth
-
Fügen Sie nach Bedarf einen neuen
mapRoles
-Eintrag hinzu. Setzen Sie denrolearn
Wert auf den NodeInstanceRoleWert, den Sie im vorherigen Verfahren aufgezeichnet haben.[...] data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes [...]
-
Speichern Sie die Datei und beenden Sie den Text-Editor.
-
-
Wenn die Fehlermeldung
Error from server (NotFound): configmaps "aws-auth" not found
angezeigt wird, wenden Sie die standardmäßigeConfigMap
an.-
Laden Sie die Konfigurationszuordnung herunter.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml
-
Stellen Sie in der
aws-auth-cm.yaml
Dateirolearn
den NodeInstanceRoleWert ein, den Sie im vorherigen Verfahren aufgezeichnet haben. Hierzu können Sie einen Texteditor verwenden odermy-node-instance-role
ersetzen und den folgenden Befehl ausführen:sed -i.bak -e 's|<ARN of instance role (not instance profile)>|my-node-instance-role|' aws-auth-cm.yaml
-
Wenden Sie die Konfiguration an. Die Ausführung dieses Befehls kann einige Minuten dauern.
kubectl apply -f aws-auth-cm.yaml
-
-
Sehen Sie sich den Status Ihrer Knoten an und warten Sie, bis diese in den
Ready
-Status eintreten.kubectl get nodes --watch
Geben Sie
Ctrl
+C
ein, um zu einer Shell-Eingabeaufforderung zurückzukehren.Anmerkung
Wenn Sie Autorisierungs- oder Ressourcenfehler erhalten, finden Sie weitere Informationen unter Nicht autorisiert oder Zugriff verweigert (kubectl) im Thema zur Fehlerbehebung.
Wenn Knoten dem Cluster nicht beitreten können, finden Sie weitere Informationen unter Knoten können nicht mit dem Cluster verknüpft werden Beheben von Problemen mit EKS Amazon-Clustern und -Knoten und unter Fehlerbehebung Knoten können nicht zu einem Cluster hinzugefügt werden bei lokalen EKS Amazon-Clustern auf AWS Outposts.
-
Installieren Sie den EBS CSI Amazon-Treiber. Weitere Informationen finden Sie unter Installation
am GitHub. Folgen Sie im Abschnitt Treiberberechtigungen einrichten unbedingt den Anweisungen für die Option IAMInstanzprofil verwenden. Sie müssen die gp2
-Speicherklasse verwenden. Diegp3
Speicherklasse wird nicht unterstützt.Führen Sie die folgenden Schritte aus, um eine
gp2
-Speicherklasse auf Ihrem Cluster zu erstellen.-
Führen Sie den folgenden Befehl aus, um die Datei
gp2-storage-class.yaml
zu erstellen.cat >gp2-storage-class.yaml <<EOF apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" name: ebs-sc provisioner: ebs.csi.aws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp2 encrypted: "true" allowVolumeExpansion: true EOF
-
Wenden Sie das Manifest auf Ihren Cluster an.
kubectl apply -f gp2-storage-class.yaml
-
-
(nur GPU Knoten) Wenn Sie einen GPU Instance-Typ und einen für Amazon EKS optimierten Accelerated ausgewählt habenAMI, müssen Sie das NVIDIAGeräte-Plugin für Kubernetes
als DaemonSet auf Ihrem Cluster. vX.X.X
Ersetzen Sie es durch die gewünschte NVIDIAs-device-plugin/k8-Version, bevor Sie den folgenden Befehl ausführen. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml
Schritt 3: Zusätzliche Aktionen
-
(Optional) Stellen Sie eine Beispielanwendung bereit, um Ihren Cluster zu testen und Linux Knoten.
-
Wenn Ihr Cluster auf einem Outpost bereitgestellt wird, überspringen Sie diesen Schritt. Wenn Ihr Cluster in der AWS Cloud bereitgestellt wird, sind die folgenden Informationen optional. Wenn die von Amazon EKS _ CNI IAM _Policy verwaltete Richtlinie an Ihre EKSIAMAmazon-Node-Rolle angehängt ist, empfehlen wir, sie einer IAM Rolle zuzuweisen, die Sie der Kubernetes
aws-node
Stattdessen ein Servicekonto. Weitere Informationen finden Sie unter Konfigurieren Sie VPC CNI das zu verwendende Amazon-Plugin IRSA.
📝 Bearbeiten Sie diese Seite auf GitHub