Hilf 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.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
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.
Dieses Thema beschreibt Hinweise zum Starten von Auto-Scaling-Gruppen von -Windows-Knoten, die mit Ihrem Amazon-EKS-Cluster registriert sind. Nachdem die Knoten dem Cluster beigetreten sind, können Sie Kubernetes-Anwendungen darin bereitstellen.
Wichtig
-
Amazon EKS-Knoten sind EC2 Standard-Amazon-Instances, und sie werden Ihnen auf der Grundlage der normalen EC2 Amazon-Instance-Preise in Rechnung gestellt. Weitere Informationen finden Sie unter EC2 Amazon-Preise
. -
Sie können Windows-Knoten in erweiterten Amazon EKS-Clustern auf AWS Outposts starten, aber Sie können sie nicht in lokalen Clustern auf AWS Outposts starten. Weitere Informationen finden Sie unter Stellen Sie Amazon EKS vor Ort mit AWS Outposts bereit.
Aktivieren Sie den Windows-Support für Ihren Cluster. Es wird empfohlen, wichtige Überlegungen zu berücksichtigen, bevor Sie eine Windows-Knotengruppe starten. Weitere Informationen finden Sie unter Aktivieren Sie die Windows-Unterstützung.
Sie können selbstverwaltete Windows-Knoten mit einer der folgenden Optionen starten:
eksctl
Starten Sie selbstverwaltete Windows-Knoten mit eksctl
Bei diesem Verfahren wird davon ausgegangen, dass Sie eksctl
installiert haben und dass Ihre eksctl
-Version mindestens 0.204.0
ist. Sie können Ihre Version mit dem folgenden Befehl überprüfen.
eksctl version
Eine Installations- und Upgrade-Anleitung für eksctl
finden Sie in der Dokumentation zu eksctl
unter Installation
Anmerkung
Dieses Verfahren funktioniert nur für Cluster, die mit eksctl
erstellt wurden.
-
(Optional) Wenn die von AmazonEKS_CNI_Policy verwaltete IAM-Richtlinie (wenn Sie einen
IPv4
Cluster haben) oder dieAmazonEKS_CNI_IPv6_Policy
(die Sie selbst erstellt haben, wenn Sie einenIPv6
Cluster haben) mit Ihrer Amazon EKS-Knoten-IAM-Rolle verknüpft ist, empfehlen wir, sie stattdessen einer IAM-Rolle zuzuweisen, die Sie dem Kubernetes-Servicekonto zuordnen.aws-node
Weitere Informationen finden Sie unter Amazon VPC CNI-Plugin für die Verwendung von IRSA konfigurieren. -
Bei diesem Verfahren wird davon ausgegangen, dass Sie einen bestehenden Cluster haben. Wenn Sie noch keinen Amazon EKS-Cluster und keine Amazon Linux-Knotengruppe haben, zu der Sie eine Windows-Knotengruppe hinzufügen können, empfehlen wir Ihnen, die folgenden Schritte zu befolgenErste Schritte mit Amazon EKS — eksctl. Dieses Handbuch bietet eine vollständige Anleitung zur Erstellung eines Amazon EKS-Clusters mit Amazon Linux-Knoten.
Erstellen Sie Ihre Knoten-Gruppe mit dem folgenden Befehl.
region-code
Ersetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet. Ersetzen Siemy-cluster
mit Ihrem Clusternamen. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Es 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. Ersetzen Sieng-windows
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. Für die Kubernetes-Version1.24
oder höher können Sie es durch2019
ersetzen,2022
um Windows Server 2022 zu verwenden. Ersetzen Sie den Rest derexample values
durch Ihre eigenen Werte.Wichtig
Um eine Knotengruppe in AWS Outposts-, AWS Wavelength- oder AWS Local Zone-Subnetzen bereitzustellen, übergeben Sie die Subnetze AWS Outposts, Wavelength oder Local Zone nicht, wenn Sie den Cluster erstellen. Erstellen Sie die Knotengruppe mit einer Konfigurationsdatei, in der Sie die Subnetze AWS Outposts, Wavelength oder Local Zone angeben. Weitere Informationen finden Sie unter Verwenden von Config-Dateien
und im Config-Datei-Schema in der eksctl
-Dokumentation.eksctl create nodegroup \ --region region-code \ --cluster my-cluster \ --name ng-windows \ --node-type t2.large \ --nodes 3 \ --nodes-min 1 \ --nodes-max 4 \ --managed=false \ --node-ami-family WindowsServer2019FullContainer
Anmerkung
-
Wenn Arbeitsknoten dem Cluster nicht beitreten können, finden Sie weitere Informationen unter Knoten können nicht mit dem Cluster verknüpft werden im Handbuch zur Fehlerbehebung.
-
Geben Sie den folgenden Befehl ein, um die verfügbaren Optionen für
eksctl
-Befehle anzuzeigen.eksctl command -help
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 unter Linux bereit Stellen Sie eine Beispielanwendung bereit, um Ihren Cluster und Ihre Windows-Worker-Knoten zu testen.
-
Wir empfehlen, den Pod-Zugriff auf IMDS zu blockieren, wenn die folgenden Bedingungen zutreffen:
-
Sie planen, all Ihren Kubernetes-Dienstkonten IAM-Rollen zuzuweisen, sodass Pods nur über die Mindestberechtigungen verfügen, die sie benötigen.
-
Keine Pods im Cluster benötigen aus anderen Gründen Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS), z. B. zum Abrufen der aktuellen AWS Region.
Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
. -
AWS Management Console
Voraussetzungen
-
Ein bestehender Amazon-EKS-Cluster und eine Linux-Knotengruppe. Wenn Sie nicht über diese Ressourcen verfügen, empfehlen wir Ihnen, sie mithilfe einer unserer Anleitungen unter zu erstellen. Erste Schritte mit Amazon EKS In diesen Anleitungen wird beschrieben, wie Sie einen Amazon EKS-Cluster mit Linux-Knoten erstellen.
-
Eine vorhandene VPC und eine Sicherheitsgruppe, die die Voraussetzungen für einen Amazon-EKS-Cluster erfüllen. Weitere Informationen erhalten Sie unter Die Amazon EKS-Netzwerkanforderungen für VPC und Subnetze anzeigen und Amazon EKS-Sicherheitsgruppenanforderungen für Cluster anzeigen. Die Anleitungen zur Erste Schritte mit Amazon EKS Erstellung einer VPC, die die Anforderungen erfüllt. Alternativ können Sie auch auf Create an Amazon VPC for your Amazon EKS Cluster klicken, um einen Cluster manuell zu erstellen.
-
Ein vorhandener Amazon-EKS-Cluster, der eine VPC und eine Sicherheitsgruppe verwendet, die die Voraussetzungen eines Amazon-EKS-Clusters erfüllt. Weitere Informationen finden Sie unter Erstellen Sie einen Amazon EKS-Cluster. Wenn Sie Subnetze in der AWS Region haben, in der Sie AWS Outposts, AWS Wavelength oder AWS Local Zones aktiviert haben, dürfen diese Subnetze bei der Erstellung des Clusters nicht weitergegeben worden sein.
Schritt 1: Starten Sie selbstverwaltete Windows-Knoten mit AWS Management Console
-
Warten Sie, bis der Status des Clusters als
ACTIVE
angezeigt wird. Wenn Sie Ihre Knoten starten, bevor der Cluster aktiv ist, werden die Knoten nicht mit dem Cluster registriert und Sie müssen sie neu starten. -
Öffnen Sie die AWS CloudFormation -Konsole
. -
Wählen Sie Stack erstellen aus.
-
Wählen Sie unter Vorlage angeben die Option Amazon-S3-URL aus.
-
Kopieren Sie die folgende URL und fügen Sie sie in die Amazon S3 URL (Amazon-S3-URL) ein.
https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-02-09/amazon-eks-windows-nodegroup.yaml
-
Wählen Sie zweimal Next (Weiter) aus.
-
Füllen Sie auf der Seite Quick create stack (Stack schnell erstellen) die folgenden Parameter entsprechend aus:
-
Stack-Name: Wählen Sie einen Stack-Namen für Ihren AWS CloudFormation Stack. Sie können ihn beispielsweise
my-cluster-nodes
nennen. -
ClusterName: Geben Sie den Namen ein, den Sie bei der Erstellung Ihres Amazon EKS-Clusters verwendet haben.
Wichtig
Dieser Name muss genau mit dem Namen übereinstimmen, den Sie in Schritt 1: Amazon EKS-Cluster erstellen verwendet haben. Andernfalls können Ihre Knoten dem Cluster nicht beitreten.
-
ClusterControlPlaneSecurityGroup: Wählen Sie die Sicherheitsgruppe aus der AWS CloudFormation Ausgabe aus, die Sie bei der Erstellung Ihrer VPC generiert haben. Die folgenden Schritte zeigen eine Methode zum Abrufen der entsprechenden Gruppe.
-
Öffnen Sie die Amazon-EKS-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. 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.
-
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. Weitere Informationen finden Sie unter Wählen Sie einen optimalen EC2 Amazon-Node-Instance-Typ.
Anmerkung
Die unterstützten Instance-Typen für die neueste Version des Amazon VPC CNI-Plug-ins für Kubernetes sind in vpc_ip_resource_limit.go
on aufgeführt. GitHub Möglicherweise müssen Sie Ihre CNI-Version aktualisieren, um die neuesten unterstützten Instance-Typen zu nutzen. Weitere Informationen finden Sie unter Pods mit dem Amazon VPC CNI zuweisen IPs . -
NodeImageIdSSMParam: Vorab mit dem Amazon EC2 Systems Manager Manager-Parameter der aktuell empfohlenen Amazon EKS-optimierten Windows Core-AMI-ID gefüllt. Um die Vollversion von Windows zu verwenden, ersetzen Sie
Core
durchFull
. -
NodeImageId: (Optional) Wenn Sie Ihr eigenes benutzerdefiniertes AMI (anstelle eines für Amazon EKS optimierten AMI) verwenden, geben Sie eine Knoten-AMI-ID für Ihre AWS Region ein. Wenn Sie einen Wert für dieses Feld angeben, überschreibt dieser alle Werte in dem NodeImageIdSSMParamFeld.
-
NodeVolumeSize: Geben Sie eine Root-Volume-Größe für Ihre Knoten in GiB an.
-
KeyName: Geben Sie den Namen eines Amazon EC2 SSH-Schlüsselpaars ein, mit dem Sie nach dem Start über SSH eine Verbindung 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 EC2 Amazon-Schlüsselpaare im EC2 Amazon-Benutzerhandbuch.
Anmerkung
Wenn Sie hier kein key pair angeben, kann der AWS CloudFormation Stack nicht erstellt werden.
-
BootstrapArguments: Geben Sie alle optionalen Argumente an, die an das Node-Bootstrap-Skript übergeben werden sollen, z. B. zusätzliche
kubelet
Argumente mit-KubeletExtraArgs
. -
Deaktivieren IMDSv1: Standardmäßig unterstützt jeder Knoten den Instanz-Metadatendienst Version 1 (IMDSv1) und IMDSv2. Sie können deaktivieren IMDSv1. Um zu verhindern, dass future Knoten und Pods in der Knotengruppe verwendet werden MDSv1, setzen Sie Disable IMDSv1 auf true. Weitere Informationen finden Sie unter Konfiguration des Instance-Metadatenservice.
-
VpcId: Wählen Sie die ID für die VPC aus, die Sie erstellt haben.
-
NodeSecurityGroups: Wählen Sie die Sicherheitsgruppe aus, die für Ihre Linux-Knotengruppe erstellt wurde, als Sie Ihre VPC erstellt haben. Wenn Ihren Linux-Knoten mehr als eine Sicherheitsgruppe angehängt ist, geben Sie alle an. Dies z. B., wenn die Linux-Knotengruppe mit
eksctl
erstellt wurde. -
Subnets (Subnetze): Wählen Sie die Subnetze aus, die Sie erstellt haben. Wenn Sie Ihre VPC mit den Schritten unter Amazon VPC für Ihren Amazon EKS-Cluster erstellen erstellt haben, geben Sie nur die privaten Subnetze innerhalb der VPC an, in denen Ihre Knoten gestartet werden sollen.
Wichtig
-
Wenn es sich bei einem oder einigen der Subnetze um öffentliche Subnetze handelt, muss die Einstellung für die automatische Zuweisung öffentlicher IP-Adressen aktiviert sein. Wenn die Einstellung für das öffentliche Subnetz nicht aktiviert ist, wird allen Knoten, die Sie in diesem öffentlichen Subnetz bereitstellen, keine öffentliche IP-Adresse zugewiesen und sie können nicht mit dem Cluster oder anderen Diensten kommunizieren. AWS Wenn das Subnetz vor dem 26. März 2020 mithilfe einer der Amazon AWS CloudFormation EKS-VPC-Vorlagen oder mithilfe
eksctl
von bereitgestellt wurde, ist die automatische Zuweisung öffentlicher IP-Adressen für öffentliche Subnetze deaktiviert. Informationen dazu, wie Sie die Zuweisung öffentlicher IP-Adressen für ein Subnetz aktivieren, finden Sie unter Ändern des Attributs für die öffentliche IPv4 Adressierung für Ihr Subnetz. Wenn der Knoten in einem privaten Subnetz bereitgestellt wird, kann er über ein NAT-Gateway mit dem Cluster und anderen AWS Diensten kommunizieren. -
Wenn die Subnetze keinen Internetzugang haben, stellen Sie sicher, dass Sie die Überlegungen und zusätzlichen Schritte unter Bereitstellen von privaten Clustern mit eingeschränktem Internetzugang kennen.
-
Wenn Sie AWS Outposts-, Wavelength- oder Local Zone-Subnetze auswählen, dürfen die Subnetze bei der Erstellung des Clusters nicht übergeben worden sein.
-
-
-
Bestätigen Sie, dass der Stack IAM-Ressourcen erstellen kann, und wählen Sie dann Create stack (Stack 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 diese, wenn Sie Ihre Amazon-EKS-Windows-Knoten konfigurieren.
Schritt 2: Ermöglichen Sie den Knoten, 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 neue
mapRoles
-Einträge hinzu. Stellen Sie dierolearn
Werte auf die NodeInstanceRoleWerte ein, die Sie in den vorherigen Verfahren aufgezeichnet haben.[...] data: mapRoles: | - rolearn: <ARN of linux instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - rolearn: <ARN of windows instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows [...]
-
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-windows.yaml
-
Stellen Sie in der
aws-auth-cm-windows.yaml
Datei dierolearn
Werte auf die entsprechenden NodeInstanceRoleWerte ein, die Sie in den vorherigen Verfahren aufgezeichnet haben. Hierzu können Sie einen Texteditor verwenden oder dieexample values
ersetzen und den folgenden Befehl ausführen:sed -i.bak -e 's|<ARN of linux instance role (not instance profile)>|my-node-linux-instance-role|' \ -e 's|<ARN of windows instance role (not instance profile)>|my-node-windows-instance-role|' aws-auth-cm-windows.yaml
Wichtig
-
Ändern Sie keine anderen Zeilen in dieser Datei.
-
Verwenden Sie nicht dieselbe IAM-Rolle für Windows- und Linux-Knoten.
-
-
Wenden Sie die Konfiguration an. Die Ausführung dieses Befehls kann einige Minuten dauern.
kubectl apply -f aws-auth-cm-windows.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 Knoten können nicht mit dem Cluster verknüpft werden im Kapitel Fehlerbehebung.
Schritt 3: Zusätzliche Aktionen
-
(Optional) Stellen Sie eine Beispielanwendung unter Linux bereit Stellen Sie eine Beispielanwendung bereit, um Ihren Cluster und Ihre Windows-Worker-Knoten zu testen.
-
(Optional) Wenn die von AmazonEKS_CNI_Policy verwaltete IAM-Richtlinie (wenn Sie einen
IPv4
Cluster haben) oder dieAmazonEKS_CNI_IPv6_Policy
(die Sie selbst erstellt haben, wenn Sie einenIPv6
Cluster haben) mit Ihrer Amazon EKS-Knoten-IAM-Rolle verknüpft ist, empfehlen wir, sie stattdessen einer IAM-Rolle zuzuweisen, die Sie dem Kubernetes-Servicekonto zuordnen.aws-node
Weitere Informationen finden Sie unter Amazon VPC CNI-Plugin für die Verwendung von IRSA konfigurieren. -
Wir empfehlen, den Pod-Zugriff auf IMDS zu blockieren, wenn die folgenden Bedingungen zutreffen:
-
Sie planen, all Ihren Kubernetes-Dienstkonten IAM-Rollen zuzuweisen, sodass Pods nur über die Mindestberechtigungen verfügen, die sie benötigen.
-
Keine Pods im Cluster benötigen aus anderen Gründen Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS), z. B. zum Abrufen der aktuellen AWS Region.
Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
. -