

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

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.

Um zu diesem Benutzerhandbuch beizutragen, 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.

# Verwaltete Knoten mit Startvorlagen anpassen
<a name="launch-templates"></a>

Für ein Höchstmaß an Anpassung können Sie verwaltete Knoten mit Ihrer eigenen Startvorlage bereitstellen, die auf den Schritten auf dieser Seite basiert. Die Verwendung einer Startvorlage ermöglicht Funktionen wie das Bereitstellen von Bootstrap-Argumenten während der Bereitstellung eines Knotens (z. B. zusätzliche [Kubelet-Argumente](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)), das Zuweisen von IP-Adressen zu Pods aus einem anderen CIDR-Block als der dem Knoten zugewiesenen IP-Adresse, das Bereitstellen Ihres eigenen benutzerdefinierten AMI für Knoten oder das Bereitstellen Ihres eigenen benutzerdefinierten CNI für 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
<a name="launch-template-basics"></a>

Sie können eine Amazon EC2 Auto Scaling Scaling-Startvorlage mit der AWS-Managementkonsole AWS CLI oder einem AWS SDK erstellen. Weitere Informationen finden Sie unter [Erstellen einer Startvorlage für eine Auto-Scaling-Gruppe](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) 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 eine Einstellung nicht an beiden Stellen 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 in der AWS CLI und im 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**. Standardeinstellung **Nicht in Startvorlage einschließen** für beide Einstellungen beibehalten.  |  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 in der AWS CLI und im 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 **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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/eks/latest/userguide/launch-templates.html)  | 
|   **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 Quell-Sicherheitsgruppen angeben, für die der Fernzugriff zulässig ist.  |   **Sicherheitsgruppen** unter **Netzwerkeinstellungen** für die Instance oder **Sicherheitsgruppen** unter **Netzwerkschnittstellen** (**Netzwerkschnittstelle hinzufügen**), aber nicht beides. Weitere Informationen finden Sie unter [Benutzerdefinierte Sicherheitsgruppen](#launch-template-security-groups).  | 

**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, welche die Amazon-EKS-API verwenden. Wenn Sie für eine Startvorlage, in der Konsole oder mit anderen Tools, welche 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 finden Sie unter [Kapazitätstypen für verwaltete Knotengruppen](managed-node-groups.md#managed-node-group-capacity-types).
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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) im *Amazon-EC2-Benutzerhandbuch*.
Startvorlagen unterstützen das `InstanceRequirements`-Feature zur flexiblen Auswahl des Instance-Typs nicht.

## Markieren von Amazon-EC2-Instances
<a name="launch-template-tagging"></a>

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 `CreateNodegroup` oder aufruft, `UpdateNodegroupVersion` APIs muss über Berechtigungen für `ec2:RunInstances` und verfügen`ec2:CreateTags`, und die Tags müssen der Startvorlage hinzugefügt werden.

## Benutzerdefinierte Sicherheitsgruppen
<a name="launch-template-security-groups"></a>

Sie können eine Startvorlage verwenden, um benutzerdefinierte Amazon-EC2-[Sicherheitsgruppen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html) 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:
+ Bei Verwendung von erlaubt Amazon EKS nur Startvorlagen mit einer einzigen Netzwerkschnittstellenspezifikation. AWS-Managementkonsole
+ Standardmäßig wendet Amazon EKS die [Cluster-Sicherheitsgruppe](sec-group-reqs.md) 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 der Amazon-EKS-Sicherheitsgruppe für Cluster anzeigen](sec-group-reqs.md).
+ 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
<a name="launch-template-user-data"></a>

Die Startvorlage enthält einen Abschnitt für benutzerdefinierte Benutzerdaten. In diesem Abschnitt können Sie die Konfigurationseinstellungen für Ihre Knotengruppe angeben, ohne manuell individuelle benutzerdefinierte Einstellungen erstellen zu müssen AMIs. Weitere Informationen zu den für Bottlerocket verfügbaren Einstellungen finden Sie unter [Benutzerdaten verwenden](https://github.com/bottlerocket-os/bottlerocket#using-user-data) am. GitHub

Sie können Amazon-EC2-Benutzerdaten in Ihrer Startvorlage mithilfe von`cloud-init`, wenn Sie Ihre Instances starten. Weitere Informationen dazu finden Sie in der [cloud-init-Dokumentation](https://cloudinit.readthedocs.io/en/latest/index.html). Ihre Benutzerdaten können verwendet werden, um allgemeine Konfigurationsvorgänge durchzuführen. Dieser Filter umfasst die folgenden Optionen:
+  [Einschließen von Benutzern oder Gruppen](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups) 
+  [Installieren von Paketen](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-arbitrary-packages) 

Amazon EC2 EC2-Benutzerdaten in Startvorlagen, die mit verwalteten Knotengruppen verwendet werden, müssen im [mehrteiligen MIME-Archivformat](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive) für Amazon Linux AMIs und im TOML-Format für Bottlerocket vorliegen. AMIs Dies liegt daran, dass Ihre Benutzerdaten mit Amazon-EKS-Benutzerdaten zusammengeführt werden, die für Knoten erforderlich sind, um dem Cluster beizutreten. Geben Sie keine Befehle in Ihren Benutzerdaten an, die `kubelet` 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](#launch-template-custom-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.

 **Benutzerdaten von Amazon Linux 2**   
Sie können mehrere Benutzerdatenblöcke in einer einzelnen mehrteiligen MIME-Datei kombinieren. So können Sie beispielsweise einen Cloud-Boothook, der den Docker-Daemon konfiguriert, mit einem Benutzerdaten-Shell-Skript kombinieren, das ein benutzerdefiniertes Paket installiert. Eine mehrteilige MIME-Datei umfasst folgende Komponenten:  
+ Deklaration von Inhaltstyp und Teilgrenze – `Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="` 
+ Deklaration der MIME-Version – `MIME-Version: 1.0` 
+ Ein oder mehrere Benutzerdatenblöcke mit folgenden Komponenten:
  + Eröffnungsgrenze, die den Beginn eines Benutzerdatenblocks signalisiert – `--==MYBOUNDARY==` 
  + Die Inhaltstypdeklaration für den Block: `Content-Type: text/cloud-config; charset="us-ascii"`. Weitere Informationen zu Inhaltstypen finden Sie in der [Cloud-Init-Dokumentation](https://cloudinit.readthedocs.io/en/latest/topics/format.html).
  + Der Inhalt der Benutzerdaten (z. B. eine Liste von Shell-Befehlen oder `cloud-init`-Direktiven).
  + Abschlussgrenze, die das Ende der mehrteiligen MIME-Datei signalisiert: `--==MYBOUNDARY==--` 

  Im Folgenden finden Sie ein Beispiel für eine mehrteilige MIME-Datei, die Sie verwenden können, um Ihre eigene zu erstellen.

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
echo "Running custom user data script"

--==MYBOUNDARY==--
```

 **Benutzerdaten von Amazon Linux 2023**   
Amazon Linux 2023 (AL2023) führt einen neuen Knoteninitialisierungsprozess ein`nodeadm`, der ein YAML-Konfigurationsschema verwendet. Wenn Sie selbstverwaltete Knotengruppen oder eine AMI mit einer Startvorlage verwenden, müssen Sie nun beim Erstellen einer neuen Knotengruppe explizit zusätzliche Cluster-Metadaten angeben. Ein [Beispiel](https://awslabs.github.io/amazon-eks-ami/nodeadm/) für die mindestens erforderlichen Parameter ist wie folgt, wobei jetzt `apiServerEndpoint`, `certificateAuthority` und Service-`cidr` erforderlich sind:  

```
---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: my-cluster
    apiServerEndpoint: https://example.com
    certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
    cidr: 10.100.0.0/16
```
Normalerweise legen Sie diese Konfiguration in Ihren Benutzerdaten fest, entweder unverändert oder eingebettet in ein MIME-Multipart-Dokument:  

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="BOUNDARY"

--BOUNDARY
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig spec: [...]

--BOUNDARY--
```
 AL2In wurden die Metadaten dieser Parameter aus dem Amazon `DescribeCluster` EKS-API-Aufruf ermittelt. Mit hat sich dieses Verhalten geändert AL2023, da durch den zusätzlichen API-Aufruf die Gefahr einer Drosselung bei der Skalierung großer Knoten besteht. Diese Änderung betrifft Sie nicht, wenn Sie verwaltete Knotengruppen ohne Startvorlage verwenden oder wenn Sie Karpenter verwenden. Weitere Informationen zu `certificateAuthority` und Service `cidr` finden Sie unter [https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html) in der *API-Referenz von Amazon EKS*.  
Hier ist ein vollständiges Beispiel für AL2023 Benutzerdaten, das ein Shell-Skript für die Anpassung des Nodes (wie die Installation von Paketen oder das Pre-Caching von Container-Images) mit der erforderlichen Konfiguration kombiniert. `nodeadm` Dieses Beispiel veranschaulicht gängige Anpassungen, darunter: \$1 Installation zusätzlicher Systempakete \$1 Vorab-Caching von Container-Images zur Verbesserung der Pod-Startup-Zeit \$1 Einrichtung der HTTP-Proxy-Konfiguration \$1 Konfiguration von `kubelet`-Flags für die Knotenbeschriftung  

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="BOUNDARY"

--BOUNDARY
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset

# Install additional packages
yum install -y htop jq iptables-services

# Pre-cache commonly used container images
nohup docker pull public.ecr.aws/eks-distro/kubernetes/pause:3.2 &

# Configure HTTP proxy if needed
cat > /etc/profile.d/http-proxy.sh << 'EOF'
export HTTP_PROXY="http://proxy.example.com:3128"
export HTTPS_PROXY="http://proxy.example.com:3128"
export NO_PROXY="localhost,127.0.0.1,169.254.169.254,.internal"
EOF

--BOUNDARY
Content-Type: application/node.eks.aws

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: my-cluster
    apiServerEndpoint: https://example.com
    certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
    cidr: 10.100.0.0/16
  kubelet:
    config:
      clusterDNS:
      - 10.100.0.10
    flags:
    - --node-labels=app=my-app,environment=production

--BOUNDARY--
```

 **Bottlerocket-Benutzerdaten**   
Bottlerocket strukturiert Benutzerdaten im TOML-Format. Sie können Benutzerdaten angeben, die mit den von Amazon EKS bereitgestellten Benutzerdaten zusammengeführt werden sollen. Zum Beispiel können Sie zusätzliche `kubelet`-Einstellungen bereitstellen.  

```
[settings.kubernetes.system-reserved]
cpu = "10m"
memory = "100Mi"
ephemeral-storage= "1Gi"
```
Weitere Informationen zu unterstützten Einstellungen finden Sie in der [Bottlerocket-Dokumentation](https://github.com/bottlerocket-os/bottlerocket). Sie können Knotenbezeichnungen und [Taints](node-taints-managed-node-groups.md) in Ihren Benutzerdaten konfigurieren. Es wird jedoch empfohlen, diese stattdessen in Ihrer Knotengruppe zu konfigurieren. Amazon EKS wendet diese Konfigurationen an, wenn Sie dies tun.  
Wenn Benutzerdaten zusammengeführt werden, wird die Formatierung nicht beibehalten, der Inhalt bleibt jedoch unverändert. Die Konfiguration, die Sie in Ihren Benutzerdaten angeben, überschreibt alle Einstellungen, die von Amazon EKS konfiguriert wurden. Wenn Sie also `settings.kubernetes.max-pods` oder `settings.kubernetes.cluster-dns-ip` festlegen, werden diese Werte in Ihren Benutzerdaten auf die Knoten angewendet.  
Amazon EKS unterstützt nicht alle gültigen TOML. Im Folgenden finden Sie eine Liste bekannter nicht unterstützter Formate:  
+ Zitate in Anführungszeichen: `'quoted "value"' = "value"` 
+ Anführungszeichen mit Escapezeichen in Werten: `str = "I’m a string. \"You can quote me\""` 
+ Gemischte Gleitkommazahlen und ganze Zahlen: `numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]` 
+ Gemischte Typen in Arrays: `contributors = ["[foo@example.com](mailto:foo@example.com)", { name = "Baz", email = "[baz@example.com](mailto:baz@example.com)" }]` 
+ Kopfzeilen in Klammern mit Anführungszeichen: `[foo."bar.baz"]` 

 **Windows-Benutzerdaten**   
Windows-Benutzerdaten verwenden Befehle. PowerShell Beim Erstellen einer verwalteten Knotengruppe werden Ihre benutzerdefinierten Benutzerdaten mit den von Amazon EKS verwalteten Benutzerdaten kombiniert. Ihre PowerShell Befehle stehen an erster Stelle, gefolgt von den Befehlen für verwaltete Benutzerdaten, alles innerhalb eines `<powershell></powershell>` Tags.  
Beim Erstellen von Windows-Knotengruppen aktualisiert Amazon EKS die `aws-auth` `ConfigMap`, damit Linux-basierte Knoten dem Cluster beitreten können. Der Dienst konfiguriert die Berechtigungen für Windows nicht automatisch AMIs. Wenn Sie Windows-Knoten verwenden, müssen Sie den Zugriff entweder über die Zugriffseintrag-API oder durch direkte Aktualisierung der `aws-auth` `ConfigMap` verwalten. Weitere Informationen finden Sie unter [Bereitstellung von Windows-Knoten in EKS-Clustern](windows-support.md).
Wenn in der Startvorlage keine AMI-ID angegeben ist, verwenden Sie nicht das Amazon-EKS-Bootstrap-Skript von Windows in den Benutzerdaten, um Amazon EKS zu konfigurieren.
Beispielbenutzerdaten lauten wie folgt.  

```
<powershell>
Write-Host "Running custom user data script"
</powershell>
```

## Angeben eines AMI
<a name="launch-template-custom-ami"></a>

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.

### Geben Sie Benutzerdaten an, um Argumente an die `bootstrap.sh` Datei zu übergeben, die in einem Amazon EKS-optimierten Linux/Bottlerocket AMI enthalten ist
<a name="mng-specify-eks-ami"></a>

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](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)-Argumente. Sie können Argumente mithilfe von `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.

 **eksctl ohne Angabe einer Startvorlage**   
Erstellen Sie eine Datei mit dem Namen *my-nodegroup.yaml* und dem folgenden Inhalt. Ersetzen Sie jede *example value* durch Ihre eigenen Werte. Die Argumente `--apiserver-endpoint`, `--b64-cluster-ca` und `--dns-cluster-ip` sind optional. Wenn sie definiert werden, verhindert dies jedoch, dass das `bootstrap.sh`-Skript einen `describeCluster`-Aufruf durchführt. Dies ist nützlich in privaten Cluster-Konfigurationen oder Clustern, in denen Sie häufig Knoten ab- und ausskalieren. Weitere Informationen zum `bootstrap.sh` Skript finden Sie in der Datei [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh) unter GitHub.  
+ Das einzige erforderliche Argument ist der Clustername (*my-cluster*).
+ Informationen zum Abrufen einer optimierten AMI-ID für `ami-1234567890abcdef0 ` finden Sie in den folgenden Abschnitten:
  +  [Rufen Sie das empfohlene Amazon Linux AMI ab IDs](retrieve-ami-id.md) 
  +  [Empfohlenes Bottlerocket-AMI abrufen IDs](retrieve-ami-id-bottlerocket.md) 
  +  [Rufen Sie das empfohlene Microsoft Windows AMI ab IDs](retrieve-windows-ami-id.md) 
+ Um die *certificate-authority* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  ```
+ Um den *api-server-endpoint* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  ```
+ Der Wert für`--dns-cluster-ip`ist Ihr Service CIDR mit`.10`am Ende. Um das *service-cidr* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus. Wenn der zurückgegebene Wert beispielsweise `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 --region region-code
  ```
+ Dieses Beispiel umfasst ein `kubelet`-Argument, mit dem ein benutzerdefinierter `max-pods`-Wert anhand des `bootstrap.sh`-Skripts festgelegt wird, das im Amazon-EKS-optimierten AMI enthalten ist. 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. Hilfe zur Auswahl von *my-max-pods-value* finden Sie unter . Weitere Informationen darüber, wie festgelegt `maxPods` wird, wenn verwaltete Knotengruppen verwendet werden, finden Sie unter[Wie wird MaxPods bestimmt](choosing-instance-type.md#max-pods-precedence).

  ```
  ---
  apiVersion: eksctl.io/v1alpha5
  kind: ClusterConfig
  
  metadata:
    name: my-cluster
    region: region-code
  
  managedNodeGroups:
    - name: my-nodegroup
      ami: ami-1234567890abcdef0
      instanceType: m5.large
      privateNetworking: true
      disableIMDSv1: true
      labels: { x86-al2-specified-mng }
      overrideBootstrapCommand: |
        #!/bin/bash
        /etc/eks/bootstrap.sh my-cluster \
          --b64-cluster-ca certificate-authority \
          --apiserver-endpoint api-server-endpoint \
          --dns-cluster-ip service-cidr.10 \
          --kubelet-extra-args '--max-pods=my-max-pods-value' \
          --use-max-pods false
  ```

  Informationen zu allen verfügbaren `eksctl`-`config`-Dateioptionen finden Sie im [Config file schema](https://eksctl.io/usage/schema/) (Config-Datei-Schema) in der `eksctl`-Dokumentation. Das `eksctl`-Dienstprogramm erstellt eine Startvorlage für Sie und füllt die Benutzerdaten mit den Daten aus, die Sie in der `config`-Datei angeben.

  Erstellen Sie eine Knoten-Gruppe mit dem folgenden Befehl.

  ```
  eksctl create nodegroup --config-file=my-nodegroup.yaml
  ```

 **Benutzerdaten in einer Startvorlage**   
Geben Sie die folgenden Informationen im Abschnitt Benutzerdaten Ihrer Startvorlage an. Ersetzen Sie jede *example value* durch Ihre eigenen Werte. Die Argumente `--apiserver-endpoint`, `--b64-cluster-ca` und `--dns-cluster-ip` sind optional. Wenn sie definiert werden, verhindert dies jedoch, dass das `bootstrap.sh`-Skript einen `describeCluster`-Aufruf durchführt. Dies ist nützlich in privaten Cluster-Konfigurationen oder Clustern, in denen Sie häufig Knoten ab- und ausskalieren. Weitere Informationen zum `bootstrap.sh` Skript finden Sie in der Datei [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh) unter GitHub.  
+ Das einzige erforderliche Argument ist der Clustername (*my-cluster*).
+ Um die *certificate-authority* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  ```
+ Um den *api-server-endpoint* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  ```
+ Der Wert für`--dns-cluster-ip`ist Ihr Service CIDR mit`.10`am Ende. Um das *service-cidr* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus. Wenn der zurückgegebene Wert beispielsweise `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 --region region-code
  ```
+ Dieses Beispiel umfasst ein `kubelet`-Argument, mit dem ein benutzerdefinierter `max-pods`-Wert anhand des `bootstrap.sh`-Skripts festgelegt wird, das im Amazon-EKS-optimierten AMI enthalten ist. Hilfe zur Auswahl von *my-max-pods-value* finden Sie unter . Weitere Informationen darüber, wie festgelegt `maxPods` wird, wenn verwaltete Knotengruppen verwendet werden, finden Sie unter[Wie wird MaxPods bestimmt](choosing-instance-type.md#max-pods-precedence).

  ```
  MIME-Version: 1.0
  Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="
  
  --==MYBOUNDARY==
  Content-Type: text/x-shellscript; charset="us-ascii"
  
  #!/bin/bash
  set -ex
  /etc/eks/bootstrap.sh my-cluster \
    --b64-cluster-ca certificate-authority \
    --apiserver-endpoint api-server-endpoint \
    --dns-cluster-ip service-cidr.10 \
    --kubelet-extra-args '--max-pods=my-max-pods-value' \
    --use-max-pods false
  
  --==MYBOUNDARY==--
  ```

### Stellen Sie Benutzerdaten bereit, um Argumente an die `Start-EKSBootstrap.ps1`-Datei zu übergeben, die in einer für Amazon EKS optimierten Windows-AMI enthalten ist.
<a name="mng-specify-eks-ami-windows"></a>

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 unter [Knoten mit optimiertem Windows erstellen](eks-optimized-windows-ami.md) verwenden AMIs.
+ 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](#mng-ami-id-conditions).

Geben Sie die folgenden Informationen im Abschnitt Benutzerdaten Ihrer Startvorlage an. Ersetzen Sie jede *example value* durch Ihre eigenen Werte. Die Argumente `-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 *certificate-authority* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  ```
+ Um den *api-server-endpoint* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus.

  ```
  aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  ```
+ Der Wert für`--dns-cluster-ip`ist Ihr Service CIDR mit`.10`am Ende. Um das *service-cidr* für Ihren Cluster zu überprüfen, führen Sie den folgenden Befehl aus. Wenn der zurückgegebene Wert beispielsweise `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 --region region-code
  ```
+ Weitere Argumente finden Sie unter [Bootstrap-Skript-Konfigurationsparameter](eks-optimized-windows-ami.md#bootstrap-script-configuration-parameters).
**Anmerkung**  
Wenn Sie CIDR für den benutzerdefinierten Service verwenden, müssen Sie diesen 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 `
	 -Base64ClusterCA certificate-authority `
	 -APIServerEndpoint api-server-endpoint `
	 -DNSClusterIP service-cidr.10
</powershell>
```

### Führen Sie ein benutzerdefiniertes AMI aufgrund bestimmter Sicherheits-, Compliance- oder interner Richtlinienanforderungen aus
<a name="mng-specify-custom-ami"></a>

Weitere Informationen dazu finden Sie unter [Amazon Machine Images (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) im *Benutzerhandbuch für Amazon EC2*. Die Amazon-EKS-AMI-Entwicklungsspezifikation enthält Ressourcen und Konfigurationsskripte für die Erstellung eines benutzerdefinierten Amazon EKS AMI basierend auf Amazon Linux. Weitere Informationen finden Sie unter [Amazon-EKS-AMI-Build-Spezifikation](https://github.com/awslabs/amazon-eks-ami/) auf GitHub. Informationen zum Erstellen benutzerdefinierter AMIs Installationen mit anderen Betriebssystemen finden Sie unter [Amazon EKS Sample Custom AMIs](https://github.com/aws-samples/amazon-eks-custom-amis) unter GitHub.

Sie können keine dynamischen Parameterreferenzen für AMI IDs in Startvorlagen verwenden, die mit verwalteten Knotengruppen verwendet werden.

**Wichtig**  
Wenn Sie ein AMI angeben, validiert Amazon EKS die in Ihr AMI eingebettete Kubernetes-Version nicht mit der Version der Kontrollebene Ihres Clusters. Sie sind dafür verantwortlich, sicherzustellen, dass die Kubernetes-Version Ihres benutzerdefinierten AMI der [Kubernetes-Richtlinie für Versionsverzerrungen](https://kubernetes.io/releases/version-skew-policy) entspricht:  
Die `kubelet` Version auf Ihren Knoten darf nicht neuer als Ihre Cluster-Version sein
Die `kubelet` Version auf Ihren Knoten muss mindestens 3 Nebenversionen hinter Ihrer Cluster-Version (für Kubernetes-Version `1.28` oder höher) oder bis zu 2 Nebenversionen hinter Ihrer Cluster-Version (für Kubernetes-Version oder niedriger) sein `1.27`  
Das Erstellen von verwalteten Knotengruppen mit Verstößen gegen den Versionsunterschied kann zu folgenden Ergebnissen führen:
Knoten können dem Cluster nicht beitreten
Undefiniertes Verhalten oder API-Inkompatibilitäten
Cluster-Instabilität oder Workload-Ausfälle
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
<a name="mng-ami-id-conditions"></a>

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` an `kubelet` in Ihren Benutzerdaten weitergeben. Weitere Informationen finden Sie unter [kubelet](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/) in der Kubernetes-Dokumentation.
+ Wenn Sie eine benutzerdefinierte AMI-ID für von 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.

  1. Öffnen Sie die AWS IAM Authenticator-Konfigurationsübersicht zur Bearbeitung.

     ```
     kubectl edit -n kube-system cm aws-auth
     ```

  1. Fügen Sie diesen Eintrag zur `groups`-Liste unter jedem `rolearn` hinzu, das Windows-Knoten zugeordnet ist. [Ihre Konfigurationsübersicht sollte ähnlich wie .yaml aussehen. aws-auth-cm-windows](https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm-windows.yaml)

     ```
     - eks:kube-proxy-windows
     ```

  1. Speichern Sie die Datei und beenden Sie den Text-Editor.
+ Für jedes AMI, das eine benutzerdefinierte Startvorlage verwendet, ist das Standard-`HttpPutResponseHopLimit` für verwaltete Knotengruppen auf `2` festgelegt.