Helfen Sie 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.
Anpassen verwalteter Knoten mit Startvorlagen
Für die höchste Anpassungsstufe können Sie verwaltete Knoten mithilfe Ihrer eigenen Startvorlage bereitstellen. Die Verwendung einer Startvorlage ermöglicht Funktionen wie die folgenden:
-
Bereitstellen von Bootstrap-Argumenten bei der Bereitstellung eines Knotens bereitstellen, z. B. zusätzliche
kubelet
-Argumente -
Zuweisen von IP-Adressen zu Pods aus einem anderen CIDR-Block als der dem Knoten zugewiesenen IP-Adresse
-
Bereitstellen Ihres eigenen benutzerdefinierten AMI auf Knoten
-
Bereitstellen Ihres eigenen benutzerdefinierten CNI auf Knoten
Wenn Sie beim ersten Erstellen einer verwalteten Knotengruppe Ihre eigene Startvorlage angeben, haben Sie auch später mehr Flexibilität. Wenn Sie eine verwaltete Knotengruppe mit Ihrer eigenen Startvorlage bereitstellen, können Sie sie schrittweise mit einer anderen Version derselben Startvorlage aktualisieren. Wenn Sie Ihre Knotengruppe auf eine andere Version Ihrer Startvorlage aktualisieren, werden alle Knoten in der Gruppe wiederverwertet, damit sie der neuen Konfiguration der angegebenen Startvorlagenversion entsprechen.
Verwaltete Knotengruppen werden immer mit einer Startvorlage bereitgestellt, die mit der Amazon-EC2-Auto-Scaling-Gruppe verwendet werden soll. Wenn Sie keine Startvorlage bereitstellen, erstellt die Amazon-EKS-API automatisch eine mit Standardwerten in Ihrem Konto. Es wird jedoch nicht empfohlen, automatisch generierte Startvorlagen zu ändern. Außerdem können vorhandene Knotengruppen, die keine benutzerdefinierte Startvorlage verwenden, nicht direkt aktualisiert werden. Stattdessen müssen Sie eine neue Knotengruppe mit einer benutzerdefinierten Startvorlage erstellen.
Grundlagen der Konfiguration der Vorlage starten
Sie können eine Amazon EC2 Auto Scaling Scaling-Startvorlage mit dem AWS Management Console AWS CLI, oder einem AWS SDK erstellen. Weitere Informationen finden Sie unter Erstellen einer Startvorlage für eine Auto-Scaling-Gruppe im Amazon-EC2-Auto-Scaling-Benutzerhandbuch. Einige der Einstellungen in einer Startvorlage ähneln den Einstellungen, die für die Konfiguration verwalteter Knoten verwendet werden. Beim Bereitstellen oder Aktualisieren einer Knotengruppe mit einer Startvorlage müssen einige Einstellungen entweder in der Knotengruppenkonfiguration oder in der Startvorlage angegeben werden. Geben Sie nicht an beiden Stellen eine Einstellung an. Wenn eine Einstellung vorhanden ist, wo sie nicht sollte, schlagen Vorgänge wie das Erstellen oder Aktualisieren einer Knotengruppe fehl.
In der folgenden Tabelle werden die Einstellungen aufgelistet, die in einer Startvorlage nicht zulässig sind. Es listet auch ähnliche Einstellungen auf, falls verfügbar, die in der Konfiguration der verwalteten Knotengruppe erforderlich sind. Die aufgelisteten Einstellungen sind die Einstellungen, die in der Konsole angezeigt werden. Sie haben möglicherweise ähnliche, aber unterschiedliche Namen im SDK AWS CLI und SDK.
Startvorlage - Verboten | Amazon-EKS-Knotengruppenkonfiguration |
---|---|
Subnetz in Netzwerkschnittstellen (Hinzufügen einer Netzwerkschnittstelle) | Subnets (Subnetze) unter Node group network configuration (Netzwerkkonfiguration der Knotengruppe) auf der Seite Specify networking (Netzwerk angeben) |
IAM-Instance-Profil in Erweiterte Details | Node IAM role (Knoten-IAM-Rolle) unter Node group configuration (Knotengruppenkonfiguration) auf der Seite Configure Node group (Knotengruppe konfigurieren) |
Verhalten beim Herunterfahren und Stop – Ruhezustand Verhalten in Erweiterte Details. Beibehalten von Standard Nicht in die Startvorlageneinstellung einschließen in der Startvorlage für beide Einstellungen. | Keine Entsprechung Amazon EKS muss den Instance-Lebenszyklus steuern, nicht die Auto-Scaling-Gruppe. |
In der folgenden Tabelle sind die unzulässigen Einstellungen in einer Konfiguration einer verwalteten Knotengruppe aufgeführt. Sie listet auch ähnliche Einstellungen auf, falls vorhanden, die in einer Startvorlage erforderlich sind. Die aufgelisteten Einstellungen sind die Einstellungen, die in der Konsole angezeigt werden. Sie haben möglicherweise ähnliche Namen im SDK AWS CLI und SDK.
Konfiguration der Amazon-EKS-Knotengruppe — Verboten | Startvorlage |
---|---|
(Nur wenn Sie ein benutzerdefiniertes AMI in einer Startvorlage angegeben haben) AMI type (AMI-Typ) unter Node Group compute configuration (Computing-Konfiguration der Knotengruppe) auf der Seite Set compute and scaling configuration (Computing- und Skalierungskonfiguration festlegen) – Die Konsole zeigt Specified in launch template (In Startvorlage angegeben) und die angegebene AMI-ID an. Wenn Application and OS Images (Amazon Machine Image) (Anwendungs- und Betriebssystem-Images (Amazon Machine Image)) nicht in der Startvorlage kein AMI-Typ angegeben wurde, können Sie in der Knotengruppenkonfiguration ein AMI auswählen. |
Application and OS Images (Amazon Machine Image) (Anwendungs- und Betriebssystem-Images (Amazon Machine Image)) unter Inhalt der Startvorlage – Sie müssen eine ID angeben, wenn Sie eine der folgenden Anforderungen haben:
|
Datenträgergröße unter Node Group compute configuration (Computing-Konfiguration der Knotengruppe) auf der Seite Set compute and scaling configuration – Die Konsole zeigt Specified in launch template (In Startvorlage angegeben) an. | Größe unter Speicher (Volumes) (Hinzufügen eines neuen Volumes) enthalten. Sie müssen dies in der Startvorlage angeben. |
SSH key pair (SSH-Schlüsselpaar) unter Node group configuration (Knotengruppenkonfiguration) auf der Seite Specify Networking (Netzwerk angeben) – Die Konsole zeigt den in der Startvorlage angegebenen Schlüssel an oder Not specified in launch template (Nicht in der Startvorlage angegeben). | Schlüsselpaarname in Schlüsselpaar (Login). |
Bei Verwendung einer Startvorlage können Sie keine Quellsicherheitsgruppen angeben, für die der Remotezugriff zulässig ist. | Sicherheitsgruppen unter Netzwerkeinstellungen für die Instance oder Sicherheitsgruppen unter Netzwerkschnittstellen (Netzwerkschnittstelle hinzufügen), aber nicht beides. Weitere Informationen dazu finden Sie unter Benutzerdefinierte Sicherheitsgruppen. |
Anmerkung
-
Wenn Sie eine Knotengruppe mithilfe einer Startvorlage bereitstellen, geben Sie in einer Startvorlage unter Inhalt der Startvorlage null oder einen Instance-Typ an. Alternativ können Sie 0 bis 20 Instance-Typen für Instance-Typen auf der Seite Einstellen von Compute- und Skalierungskonfiguration in der Konsole angeben. Oder Sie können dies mit anderen Tools tun, die die Amazon EKS API verwenden. Wenn Sie in einer Startvorlage einen Instance-Typ angeben und diese Startvorlage zum Bereitstellen Ihrer Knotengruppe verwenden, können Sie keine Instance-Typen in der Konsole oder mit anderen Tools angeben, die die Amazon EKS API verwenden. Wenn Sie für eine Startvorlage, in der Konsole oder mit anderen Tools, die die Amazon EKS API verwenden, keinen Instance-Typ angeben, wird der
t3.medium
-Instance-Typ verwendet. Wenn Ihre Knotengruppe den Spot-Kapazitätstyp verwendet, empfehlen wir, mehrere Instance-Typen über die Konsole anzugeben. Weitere Informationen dazu finden Sie unter Kapazitätstypen für verwaltete Knotengruppen. -
Wenn Container, die Sie für die Knotengruppe bereitstellen, den Instance-Metadaten-Service Version 2 verwenden, stellen Sie sicher, dass Sie die Hop-Limits für Metadaten auf
2
in Ihrer Startvorlage festsetzen. Weitere Informationen finden Sie unter Instance-Metadaten und Benutzerdaten im Amazon-EC2-Benutzerhandbuch. Wenn Sie eine verwaltete Knotengruppe bereitstellen, ohne eine benutzerdefinierte Startvorlage zu verwenden, wird dieser Wert automatisch für die Knotengruppe in der Standardstartvorlage festgelegt.
Markieren von Amazon-EC2-Instances
Sie können das TagSpecification
-Parameter einer Startvorlage verwenden, um anzugeben, welche Markierungen auf Amazon-EC2-Instances in Ihrer Knotengruppe angewendet werden sollen. Die IAM-Entität, die die CreateNodegroup
- oder UpdateNodegroupVersion
-APIs aufruft muss über die Berechtigungen für ec2:RunInstances
und ec2:CreateTags
verfügen, und die Markierungen müssen der Startvorlage hinzugefügt werden.
Benutzerdefinierte Sicherheitsgruppen
Sie können eine Startvorlage verwenden, um benutzerdefinierte Amazon-EC2-Sicherheitsgruppen anzugeben die auf Instances in Ihrer Knotengruppe angewendet werden. Dies kann entweder im Parameter für Sicherheitsgruppen auf Instance-Ebene oder als Teil der Konfigurationsparameter der Netzwerkschnittstelle sein. Sie können eine Instance nicht über eine Startvorlage starten, die Sicherheitsgruppen und eine Netzwerkschnittstelle angibt. Beachten Sie die folgenden Bedingungen, die für die Verwendung benutzerdefinierter Sicherheitsgruppen mit verwalteten Knotengruppen gelten:
-
Amazon EKS erlaubt nur Startvorlagen mit einer einzigen Netzwerkschnittstellenspezifikation.
-
Standardmäßig wendet Amazon EKS die Cluster-Sicherheitsgruppe zu den Instances in Ihrer Knotengruppe hinzu, um die Kommunikation zwischen Knoten und der Steuerungsebene zu erleichtern. Wenn Sie benutzerdefinierte Sicherheitsgruppen in der Startvorlage mit einer der oben genannten Optionen angeben, fügt Amazon EKS die Cluster-Sicherheitsgruppe nicht hinzu. Sie müssen daher sicherstellen, dass die eingehenden und ausgehenden Regeln Ihrer Sicherheitsgruppen die Kommunikation mit dem Endpunkt Ihres Clusters ermöglichen. Wenn Ihre Sicherheitsgruppenregeln falsch sind, können die Worker-Knoten dem Cluster nicht beitreten. Weitere Informationen zu Sicherheitsgruppenregeln finden Sie unter Anforderungen und Überlegungen zur Amazon-EKS-Sicherheitsgruppe.
-
Wenn Sie SSH-Zugriff auf die Instances in Ihrer Knotengruppe benötigen, müssen Sie eine Sicherheitsgruppe einschließen, die diesen Zugriff zulässt.
Amazon-EC2-Benutzerdaten
Die Startvorlage enthält einen Abschnitt für benutzerdefinierte Benutzerdaten. Sie können in diesem Abschnitt Konfigurationseinstellungen für Ihre Knotengruppe angeben, ohne einzelne benutzerdefinierte AMIs manuell zu erstellen. Weitere Informationen zu diesen Einstellungen für Bottlerocket finden Sie unter Verwendung von Benutzerdaten
Sie können Amazon-EC2-Benutzerdaten in Ihrer Startvorlage mithilfe voncloud-init
, wenn Sie Ihre Instances starten. Weitere Informationen dazu finden Sie in der cloud-init-Dokumentation
Amazon-EC2-Benutzerdaten in Startvorlagen, die mit verwalteten Knotengruppen verwendet werden, müssen im mehrteiligen MIME-Archivkubelet
starten oder ändern. Dies wird als Teil der von Amazon EKS zusammengeführten Benutzerdaten durchgeführt. Bestimmte kubelet
-Parameter, z. B. das Festlegen von Beschriftungen auf Knoten, können direkt über die API für verwaltete Knotengruppen konfiguriert werden.
Anmerkung
Weitere Hinweise zur erweiterten kubelet
-Anpassung, einschließlich des manuellen Startens oder Übergebens benutzerdefinierter Konfigurationsparameter, finden Sie unter Angeben eines AMI. Wenn in einer Startvorlage eine benutzerdefinierte AMI-ID angegeben ist, führt Amazon EKS keine Benutzerdaten zusammen.
Die folgenden Details enthalten weitere Informationen zum Abschnitt Benutzerdaten.
Angeben eines AMI
Wenn Sie eine der folgenden Anforderungen haben, geben Sie eine AMI-ID in der ImageId
-Startvorlage. Wählen Sie die Anforderung, die Sie für zusätzliche Informationen haben.
Bootstrapping ist ein Begriff, der verwendet wird, um das Hinzufügen von Befehlen zu beschreiben, die beim Start einer Instance ausgeführt werden können. Bootstrapping ermöglicht beispielsweise die Verwendung zusätzlicher kubelet
eksctl
an das bootstrap.sh
-Skript übergeben, ohne eine Startvorlage anzugeben. Oder Sie können dies tun, indem Sie die Informationen im Abschnitt Benutzerdaten einer Startvorlage angeben.
Bootstrapping ist ein Begriff, der verwendet wird, um das Hinzufügen von Befehlen zu beschreiben, die beim Start einer Instance ausgeführt werden können. Sie können Argumente mithilfe von eksctl
an das Start-EKSBootstrap.ps1
-Skript übergeben, ohne eine Startvorlage anzugeben. Oder Sie können dies tun, indem Sie die Informationen im Abschnitt Benutzerdaten einer Startvorlage angeben.
Beachten Sie beim Angeben einer benutzerdefinierten Windows-AMI-ID die folgenden Überlegungen:
-
Sie müssen eine Startvorlage verwenden und die erforderlichen Bootstrap-Befehle im Abschnitt Benutzerdaten angeben. Um Ihre gewünschte Windows-ID abzurufen, können Sie die Tabelle in Amazon-EKS-optimierte Windows-AMIs verwenden.
-
Es gibt verschiedene Grenzwerte und Bedingungen. Sie müssen beispielsweise
eks:kube-proxy-windows
zu Ihrer AWS IAM Authenticator-Konfigurationsübersicht etwas hinzufügen. Weitere Informationen finden Sie unter Grenzen und Bedingungen bei der Angabe einer AMI-ID.
Geben Sie die folgenden Informationen im Abschnitt Benutzerdaten Ihrer Startvorlage an. Ersetzen Sie jede
durch Ihre eigenen Werte. Die Argumente example value
-APIServerEndpoint
, -Base64ClusterCA
und -DNSClusterIP
sind optional. Wenn sie definiert werden, verhindert dies jedoch, dass das Start-EKSBootstrap.ps1
-Skript einen describeCluster
-Aufruf durchführt.
-
Das einzige erforderliche Argument ist der Clustername (
).my-cluster
-
Um die
für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.certificate-authority
aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name
my-cluster
--regionregion-code
-
Um den
für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.api-server-endpoint
aws eks describe-cluster --query "cluster.endpoint" --output text --name
my-cluster
--regionregion-code
-
Der Wert für
--dns-cluster-ip
ist Ihr Service CIDR mit.10
am Ende. Um das
für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus. Wenn der zurückgegebene Wert beispielsweiseservice-cidr
ipv4 10.100.0.0/16
ist, ist Ihr Wert
.10.100.0.10
aws eks describe-cluster --query "cluster.kubernetesNetworkConfig.serviceIpv4Cidr" --output text --name
my-cluster
--regionregion-code
-
Weitere Argumente finden Sie unter Bootstrap-Skript-Konfigurationsparameter.
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.
<powershell> [string]$EKSBootstrapScriptFile = "$env:ProgramFiles\Amazon\EKS\Start-EKSBootstrap.ps1" & $EKSBootstrapScriptFile -EKSClusterName
my-cluster
` -Base64ClusterCAcertificate-authority
` -APIServerEndpointapi-server-endpoint
` -DNSClusterIPservice-cidr.10
</powershell>
Weitere Informationen dazu finden Sie unter Amazon Machine Images (AMI) im Amazon-EC2-Benutzerhandbuch. Die Amazon EKS AMI-Build-Spezifikation enthält Ressourcen und Konfigurationsskripts für die Erstellung eines benutzerdefinierten Amazon EKS-AMI auf Basis von Amazon Linux. Weitere Informationen finden Sie unter Amazon-EKS-AMI-Build-Spezifikation
Wichtig
Bei der Angabe eines AMI führt Amazon EKS keine Benutzerdaten zusammen. Vielmehr sind Sie verantwortlich für die Bereitstellung der erforderlichen bootstrap
-Befehle für Knoten, um dem Cluster beizutreten. Wenn Ihre Knoten dem Cluster nicht beitreten können, wird Amazon EKS CreateNodegroup
und UpdateNodegroupVersion
-Aktionen ebenfalls fehlschlagen.
Grenzen und Bedingungen bei der Angabe einer AMI-ID
Im Folgenden sind die Grenzen und Bedingungen aufgeführt, die mit der Angabe einer AMI-ID mit verwalteten Knotengruppen verbunden sind:
-
Sie müssen eine neue Knotengruppe erstellen, um zwischen der Angabe einer AMI-ID in einer Startvorlage und der Nicht-Angabe einer AMI-ID zu wechseln.
-
Sie werden in der Konsole nicht benachrichtigt, wenn eine neuere AMI-Version verfügbar ist. Um Ihre Knotengruppe auf eine neuere AMI-Version zu aktualisieren, müssen Sie eine neue Version Ihrer Startvorlage mit einer aktualisierten AMI-ID erstellen. Dann müssen Sie die Knotengruppe mit der neuen Version der Startvorlage aktualisieren.
-
Die folgenden Felder können in der API nicht festgelegt werden, wenn Sie eine AMI-ID angeben:
-
amiType
-
releaseVersion
-
version
-
-
Alle in der API festgelegten
taints
werden asynchron angewendet, wenn Sie eine AMI-ID angeben. Um Taints anzuwenden, bevor ein Knoten mit dem Cluster verbunden wird, müssen Sie die Taints über das Befehlszeilen-Flag--register-with-taints
ankubelet
in Ihren Benutzerdaten weitergeben. Weitere Informationen finden Sie unterkubelet
in der Kubernetes-Dokumentation. -
Wenn Sie eine benutzerdefinierte AMI-ID für Windows verwaltete Knotengruppen angeben, fügen Sie
eks:kube-proxy-windows
diese Ihrer AWS IAM Authenticator-Konfigurationsübersicht hinzu. Dies ist erforderlich, damit DNS ordnungsgemäß funktioniert.-
Öffnen Sie die AWS IAM Authenticator-Konfigurationsübersicht zur Bearbeitung.
kubectl edit -n kube-system cm aws-auth
-
Fügen Sie diesen Eintrag der
groups
-Liste unter jedemrolearn
hinzu, das Windows-Knoten zugeordnet ist. Ihre Konfigurationszuordnung sollte ähnlich aussehen wieaws-auth-cm-windows.yaml
. - eks:kube-proxy-windows
-
Speichern Sie die Datei und beenden Sie den Text-Editor.
-