Hilf mit, diese Seite zu verbessern
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.
Selbstverwaltete Knoten Microsoft Windows erstellen
In diesem Thema wird beschrieben, wie Sie Auto Windows Scaling-Knotengruppen starten, die sich bei Ihrem EKS Amazon-Cluster registrieren. Nachdem die Knoten dem Cluster beigetreten sind, können Sie Kubernetes-Anwendungen darin bereitstellen.
Wichtig
EKSAmazon-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 EC2Amazon-Preise
. Sie können Windows-Knoten in EKS erweiterten Amazon-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 bereit mit AWS Outposts.
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 Unterstützung aktivieren Windows.
Sie können selbstverwaltete Windows-Knoten mit eksctl
oder AWS Management Console launchen.
- eksctl
-
So starten Sie selbstverwaltete Windows-Knoten mit
eksctl
Bei diesem Verfahren wird davon ausgegangen, dass Sie
eksctl
installiert haben und dass Ihreeksctl
-Version mindestens0.187.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 zueksctl
unter Installation. Anmerkung
Dieses Verfahren funktioniert nur für Cluster, die mit
eksctl
erstellt wurden.-
(Optional) Wenn die von Amazon EKS _ CNI IAM _Policy verwaltete Richtlinie (wenn Sie einen
IPv4
Cluster haben) oder die
(die Sie selbst erstellt haben, wenn Sie einenAmazonEKS_CNI_IPv6_Policy
IPv6
Cluster haben) an Ihre angehängt istAmazon-EKS-Knoten-IAM-Rolle, empfehlen wir, sie stattdessen einer IAM Rolle zuzuweisen, die Sie dem Kubernetesaws-node
Servicekonto zuordnen. Weitere Informationen finden Sie unter Konfigurieren der Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten (IRSA). -
Bei diesem Verfahren wird davon ausgegangen, dass Sie einen bestehenden Cluster haben. Wenn Sie noch keinen EKS Amazon-Cluster und keine Amazon Linux-Knotengruppe haben, zu der Sie eine Windows Knotengruppe hinzufügen können, empfehlen wir Ihnen, die Erste Schritte mit Amazon EKS — eksctl Anleitung zu befolgen. Das Handbuch bietet eine vollständige Anleitung zum Erstellen eines EKS Amazon-Clusters mit Amazon Linux-Knoten.
Erstellen Sie Ihre Knoten-Gruppe mit dem folgenden Befehl.
Ersetzen Sie es durch AWS-Region das, in dem sich Ihr Cluster befindet. Ersetzen Sieregion-code
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 des AWS-Region und AWS-Konto , in dem Sie den Cluster erstellen, eindeutig sein. Ersetzen Siemy-cluster
durch einen Namen für Ihre Knotengruppe. Der Knotengruppenname 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 Kubernetes-Versionng-windows
1.24
oder höher können Sie
durch2019
2022
ersetzen, um Windows Server 2022 zu verwenden. Ersetzen Sie den Rest der
durch Ihre eigenen Werte.example values
Wichtig
Um eine Knotengruppe in Subnetzen AWS Outposts AWS Wavelength, oder AWS Local Zone 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
\ --clustermy-cluster
\ --nameng-windows
\ --node-typet2.large
\ --nodes3
\ --nodes-min1
\ --nodes-max4
\ --managed=false \ --node-ami-familyWindowsServer2019FullContainer
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 bereit, um Ihren Cluster und Ihre Windows-Worker-Knoten zu testen.
Wir empfehlen, Pod den Zugriff auf zu blockieren, IMDS wenn die folgenden Bedingungen zutreffen:
Sie planen, all Ihren Kubernetes Dienstkonten IAM Rollen zuzuweisen, sodass sie Pods nur über die Mindestberechtigungen verfügen, die sie benötigen.
Nein Pods im Cluster benötigen aus anderen Gründen Zugriff auf den EC2 Amazon-Instance-Metadatenservice (IMDS), z. B. zum Abrufen der aktuellen AWS-Region Version.
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 vorhandener EKS Amazon-Cluster und eine Linux Knotengruppe. Wenn Sie nicht über diese Ressourcen verfügen, empfehlen wir Ihnen, einem unserer Erste Schritte mit Amazon EKS-Leitfäden zu folgen, um sie zu erstellen. In den Anleitungen wird beschrieben, wie Sie einen EKS Amazon-Cluster mit Linux Knoten erstellen.
-
Eine bestehende VPC Sicherheitsgruppe, die die Anforderungen für einen EKS Amazon-Cluster erfüllt. Weitere Informationen erhalten Sie unter Anforderungen EKS VPC und Überlegungen zu Amazon und Subnetzen und Anforderungen und Überlegungen zur Amazon-EKS-Sicherheitsgruppe. Der Erste Schritte mit Amazon EKS Leitfaden erstellt eineVPC, die den Anforderungen entspricht. Alternativ können Sie auch Erstellen einer VPC für Ihren Amazon-EKS-Cluster folgen, um eine manuell zu erstellen.
-
Ein vorhandener EKS Amazon-Cluster, der eine VPC Sicherheitsgruppe verwendet, die die Anforderungen eines EKS Amazon-Clusters erfüllt. Weitere Informationen finden Sie unter Erstellen Sie einen EKS Amazon-Cluster. Wenn Sie Subnetze in dem Bereich haben AWS Outposts, AWS Wavelength in AWS-Region dem Sie AWS Local Zones aktiviert haben, dürfen diese Subnetze nicht übergeben worden sein, als Sie den Cluster erstellt haben.
Schritt 1: So starten Sie selbstverwaltete Knoten Windows mit dem 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 unter https://console.aws.amazon.com/cloudformation
-
Wählen Sie Stack erstellen aus.
-
Wählen Sie unter Vorlage angeben die Option Amazon S3 ausURL.
-
Kopieren Sie den folgenden Text URL und fügen Sie ihn in Amazon S3 einURL.
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 (Stack-Name): Wählen Sie einen Stack-Namen für Ihren AWS CloudFormation -Stack aus. Sie können ihn beispielsweise
nennen.my-cluster
-nodes -
ClusterName: Geben Sie den Namen ein, den Sie bei der Erstellung Ihres EKS Amazon-Clusters verwendet haben.
Wichtig
Dieser Name muss genau mit dem Namen übereinstimmen, den Sie in Schritt 1: Erstellen Sie Ihren EKS Amazon-Cluster 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 generiert haben VPC.
Die folgenden Schritte zeigen eine Methode zum Abrufen der entsprechenden Gruppe.
Öffnen Sie die EKS Amazon-Konsole unter https://console.aws.amazon.com/eks/home#/clusters
. -
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 zu einem späteren Zeitpunkt zum Identifizieren der Auto-Scaling-Knotengruppe verwendet werden, die für Ihre Knoten erstellt wurde. Der Knotengruppenname 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 plugin for Kubernetes
für sind in vpc_ip_resource_limit.go auf GitHub aufgeführt. Möglicherweise müssen Sie Ihre CNI Version aktualisieren, um die neuesten unterstützten Instance-Typen zu verwenden. Weitere Informationen finden Sie unter Arbeiten mit dem Amazon VPC CNI plugin for Kubernetes EKS Amazon-Add-on. -
NodeImageIdSSMParam: Vorab mit dem Amazon EC2 Systems Manager Manager-Parameter der aktuell empfohlenen, von Amazon EKS optimierten Windows AMI Core-ID gefüllt. Um die Vollversion von Windows zu verwenden, ersetzen Sie
durchCore
Full
. -
NodeImageId: (Optional) Wenn Sie Ihre eigene benutzerdefinierte AMI (anstelle der von Amazon EKS optimiertenAMI) verwenden, geben Sie eine AMI Knoten-ID für Ihre ein AWS-Region. 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 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, 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
. -
D isableIMDSv 1: Standardmäßig unterstützt jeder Knoten den Instanz-Metadatendienst Version 1 (IMDSv1) undIMDSv2. Sie können deaktivierenIMDSv1. Um zu verhindern, dass future Knoten und Pods Mitglieder der Knotengruppe verwendenMDSv1, setzen Sie D isableIMDSv 1 auf true. Weitere Informationen dazu finden Sie IMDS unter Konfiguration des Instanz-Metadatendienstes.
-
VpcId: Wählen Sie die ID für den aus VPC, den Sie erstellt haben.
-
NodeSecurityGroups: Wählen Sie die Sicherheitsgruppe aus, die für Ihre Linux Knotengruppe erstellt wurde, als Sie Ihre erstellt haben VPC. 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 mithilfe der unter beschriebenen Schritte erstellt habenErstellen einer VPC für Ihren Amazon-EKS-Cluster, geben Sie nur die privaten Subnetze innerhalb von an, in VPC 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 EKS AWS CloudFormation VPCAmazon-Vorlagen oder mithilfe von bereitgestellt wurde
eksctl
, ist die automatische Zuweisung öffentlicher IP-Adressen für öffentliche Subnetze deaktiviert. Informationen zum Aktivieren der öffentlichen IP-Adresszuweisung für ein Subnetz finden Sie unter Ändern des öffentlichenIPv4
-Adressattributs für Ihr Subnetz. Wenn der Knoten in einem privaten Subnetz bereitgestellt wird, kann er über ein Gateway mit dem Cluster und anderen AWS Diensten kommunizieren. NAT -
Wenn die Subnetze keinen Internetzugang haben, stellen Sie sicher, dass Sie die Überlegungen und zusätzlichen Schritte in Stellen Sie private Cluster mit eingeschränktem Internetzugang bereit kennen.
-
Wenn Sie Wellenlängen-Subnetze oder Local Zone-Subnetze auswählen AWS Outposts, dürfen die Subnetze bei der Erstellung des Clusters nicht übergeben worden sein.
-
-
-
Bestätigen Sie, dass der Stapel möglicherweise IAM Ressourcen erstellt, 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 Windows Amazon-Knoten konfigurieren.
Schritt 2: Aktivieren der Knoten, die Ihrem Cluster beitreten sollen
-
Ü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
Datei dieaws-auth-cm-windows.yaml
rolearn
Werte auf die entsprechenden NodeInstanceRoleWerte ein, die Sie in den vorherigen Verfahren aufgezeichnet haben. Hierzu können Sie einen Texteditor verwenden oder die
ersetzen und den folgenden Befehl ausführen:example values
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.yamlWichtig
-
Ändern Sie keine weiteren Zeilen in dieser Datei.
-
Verwenden Sie nicht dieselbe IAM Rolle sowohl für Knoten als Windows auch für 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 unter Knoten können nicht mit dem Cluster verknüpft werden im Handbuch zur Fehlerbehebung.
Schritt 3: Zusätzliche Aktionen
-
(Optional) Stellen Sie eine Beispielanwendung bereit, um Ihren Cluster und Ihre Windows-Worker-Knoten zu testen.
-
(Optional) Wenn die von Amazon EKS _ CNI IAM _Policy verwaltete Richtlinie (wenn Sie einen
IPv4
Cluster haben) oder die
(die Sie selbst erstellt haben, wenn Sie einenAmazonEKS_CNI_IPv6_Policy
IPv6
Cluster haben) an Ihre angehängt istAmazon-EKS-Knoten-IAM-Rolle, empfehlen wir, sie stattdessen einer IAM Rolle zuzuweisen, die Sie dem Kubernetesaws-node
Servicekonto zuordnen. Weitere Informationen finden Sie unter Konfigurieren der Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten (IRSA). Wir empfehlen, Pod den Zugriff auf zu sperren, IMDS wenn die folgenden Bedingungen zutreffen:
Sie planen, all Ihren Kubernetes Dienstkonten IAM Rollen zuzuweisen, sodass sie Pods nur über die Mindestberechtigungen verfügen, die sie benötigen.
Nein Pods im Cluster benötigen aus anderen Gründen Zugriff auf den EC2 Amazon-Instance-Metadatenservice (IMDS), z. B. zum Abrufen der aktuellen AWS-Region Version.
Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
.
-