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 unter, 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.
Nodeadm-Referenz für Hybridknoten
Die Amazon EKS Hybrid Nodes CLI (nodeadm) vereinfacht die Installation, Konfiguration, Registrierung und Deinstallation der Hybridknoten-Komponenten. Sie können nodeadm in Ihre Betriebssystem-Images einbinden, um das Bootstrapping von Hybridknoten zu automatisieren. Weitere Informationen finden Sie unter Vorbereitung des Betriebssystems für Hybridknoten.
Die nodeadm-Version für Hybridknoten unterscheidet sich von der nodeadm-Version, die zum Bootstrapping von Amazon-EC2-Instances als Knoten in Amazon-EKS-Clustern verwendet wird. Befolgen Sie die Dokumentation und Referenzen für die entsprechende nodeadm-Version. Diese Dokumentationsseite bezieht sich auf die nodeadm-Version für Hybridknoten.
Der Quellcode für die Hybridknoten nodeadm wird im https://github.com/aws/eks-hybrid GitHub Repository veröffentlicht.
Wichtig
Sie müssen nodeadm mit einem Benutzer arbeiten, der über root/sudo Berechtigungen verfügt.
Erforderliche Nodeadm-Version für den Anbieter von SSM-Anmeldeinformationen
Wenn Sie AWS Systems Manager (SSM) als Ihren Anmeldeinformationsanbieter für Hybridknoten verwenden, müssen Sie nodeadm Version 1.0.19 oder höher für Neuinstallationen und Upgrades verwenden. Frühere Versionen von nodeadm enthalten einen veralteten SSM-Signaturschlüssel und schlagen während nodeadm install und nodeadm upgrade mit dem folgenden Fehler bei der Signaturüberprüfung fehl:
"msg":"Command failed","error":"failed to install ssm installer: validating ssm-setup-cli signature: Signature Verification Error: No matching signature"
Um diesen Fehler zu beheben, laden Sie die neueste Version von herunter, nodeadm bevor Sie nodeadm install oder nodeadm upgrade ausführen.
Laden Sie nodeadm herunter
Die Hybrid-Node-Version von nodeadm wird in Amazon S3 gehostet, das von Amazon betrieben wird. CloudFront Um die Installation auf jedem On-Premises-Host nodeadm durchzuführen, können Sie den folgenden Befehl von Ihren On-Premises-Hosts aus ausführen.
Für x86_64-Hosts
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'
Für ARM-Hosts
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'
Fügen Sie der heruntergeladenen Binärdatei auf jedem Host die Berechtigung zum Ausführen von Dateien hinzu.
chmod +x nodeadm
nodeadm-Installation
Der nodeadm install-Befehl wird verwendet, um die Artefakte und Abhängigkeiten zu installieren, die zum Ausführen und Verbinden von Hybridknoten mit einem Amazon-EKS-Cluster erforderlich sind. Der nodeadm install-Befehl kann einzeln auf jedem Hybridknoten oder während Image-Entwicklungs-Pipelines ausgeführt werden, um die Abhängigkeiten der Hybridknoten in Betriebssystem-Images vorzuinstallieren.
Usage
nodeadm install [KUBERNETES_VERSION] [flags]
Positionelle Argumente
(Erforderlich) KUBERNETES_VERSION Die zu installierende Haupt- und Nebenversion von EKS Kubernetes, zum Beispiel 1.32
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
TRUE |
Zu installierender Anmeldeinformationsanbieter. Unterstützte Werte sind |
|
|
FALSE |
Quelle für Werte |
|
|
FALSE |
Gibt die AWS Region für das Herunterladen von Artefakten wie dem SSM-Agenten an. Standardeinstellung: |
|
|
FALSE |
Maximale Dauer des Installationsbefehls. Die Eingabe erfolgt im Zeitdauerformat. Zum Beispiel |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
Beispiele
Installieren Sie die Kubernetes-Version 1.32 mit AWS Systems Manager (SSM) als Anbieter von Anmeldeinformationen
nodeadm install 1.32 --credential-provider ssm
Installieren Sie die Kubernetes-Version 1.32 mit AWS Systems Manager (SSM) als Anmeldeinformationsanbieter, Docker als Container-Quelle, mit einem Download-Timeout von 20 Minuten.
nodeadm install 1.32 --credential-provider ssm --containerd-source docker --timeout 20m
Installieren Sie die Kubernetes-Version mit IAM Roles Anywhere als Anbieter für Anmeldeinformationen 1.32 AWS
nodeadm install 1.32 --credential-provider iam-ra
Überprüfung der Nodeadm-Konfiguration
Der nodeadm config check-Befehl überprüft die angegebene Knotenkonfiguration auf Fehler. Mit diesem Befehl kann die Richtigkeit einer Hybridknoten-Konfigurationsdatei überprüft und validiert werden.
Usage
nodeadm config check [flags]
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
TRUE |
Quelle der nodeadm-Konfiguration. Bei Hybridknoten sollte die Eingabe einer URI mit Dateischema folgen. |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
Beispiele
nodeadm config check -c file://nodeConfig.yaml
nodeadm init
Der nodeadm init-Befehl startet und verbindet den Hybridknoten mit dem konfigurierten Amazon-EKS-Cluster. Einzelheiten zur Konfiguration der nodeConfig.yaml-Datei finden Sie unter Knotenkonfiguration für SSM-Hybridaktivierungen oder Knotenkonfiguration für IAM Roles Anywhere.
Usage
nodeadm init [flags]
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
TRUE |
Quelle der |
|
|
FALSE |
Zu überspringende Phasen von Werte |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
Beispiele
nodeadm init -c file://nodeConfig.yaml
Nodeadm-Aktualisierung
Der nodeadm upgrade-Befehl aktualisiert alle installierten Artefakte auf die neueste Version und führt einen Bootstrapping des Knotens durch, um die aktualisierten Artefakte zu konfigurieren und dem EKS-Cluster in AWS beizutreten. Ein Upgrade ist ein Befehl zur Unterbrechung der auf dem Knoten ausgeführten Workloads. Verschieben Sie Ihre Workloads vor dem Upgrade auf einen anderen Knoten.
Usage
nodeadm upgrade [KUBERNETES_VERSION] [flags]
Positionelle Argumente
(Erforderlich) KUBERNETES_VERSION Die zu installierende Haupt- und Nebenversion von EKS Kubernetes, zum Beispiel 1.32
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
TRUE |
Quelle der |
|
|
FALSE |
Zeitüberschreitung beim Herunterladen von Artefakten. Die Eingabe erfolgt im Zeitdauerformat. Beispielsweise 1 Stunde und 23 Minuten Die Standard-Zeitüberschreitung für den Download des Upgrade-Befehls beträgt 10 Minuten. |
|
|
FALSE |
Zu überspringende Phasen des Upgrades. Es wird nicht empfohlen, eine der Phasen zu überspringen, es sei denn, dies trägt zur Behebung eines Problems bei Werte |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
Beispiele
nodeadm upgrade 1.32 -c file://nodeConfig.yaml
nodeadm upgrade 1.32 -c file://nodeConfig.yaml --timeout 20m
Nodeadm-Deinstallation
Der nodeadm uninstall-Befehl stoppt und entfernt die während nodeadm install installierten Artefakte nodeadm, einschließlich kubelet und containerd. Beachten Sie, dass der Deinstallations-Befehl Ihre Hybridknoten nicht aus Ihrem Cluster entfernt oder löscht. Sie müssen die Entleerungs- und Löschvorgänge separat ausführen. Weitere Informationen finden Sie unter Hybridknoten entfernen. Standardmäßig wird nodeadm uninstall nicht fortgesetzt, wenn auf dem Knoten noch Pods vorhanden sind. Ebenso entfernt nodeadm uninstall keine CNI-Abhängigkeiten oder Abhängigkeiten anderer Kubernetes-Add-Ons, die Sie in Ihrem Cluster ausführen. Informationen zum vollständigen Entfernen der CNI-Installation von Ihrem Host finden Sie in den Anweisungen unter CNI für Hybridknoten konfigurieren. Wenn Sie AWS SSM-Hybrid-Aktivierungen als Ihren lokalen Anmeldeinformationsanbieter verwenden, deregistriert der nodeadm uninstall Befehl Ihre Hosts als von SSM verwaltete Instances. AWS
Usage
nodeadm uninstall [flags]
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
FALSE |
Zu überspringende Phasen der Deinstallation. Es wird nicht empfohlen, eine der Phasen zu überspringen, es sei denn, dies trägt zur Behebung eines Problems bei. Werte |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
|
|
FALSE |
Erzwingen Sie das Löschen zusätzlicher Verzeichnisse, die möglicherweise verbleibende Dateien von Kubernetes- und CNI-Komponenten enthalten. WARNUNG Dadurch werden alle Inhalte in den Standardverzeichnissen von Kubernetes und CNI ( Ab nodeadm Tipps zur sicheren Handhabung - Das Löschen von eingebundenen Pfaden kann zum versehentlichen Löschen des tatsächlich eingebundenen Dateisystems des Knotens führen. Bevor Sie das |
Beispiele
nodeadm uninstall
nodeadm uninstall --skip node-validation,pod-validation
nodeadm debug
Der nodeadm debug-Befehl kann zur Fehlerbehebung bei fehlerhaften oder falsch konfigurierten Hybridknoten verwendet werden. Es bestätigt, dass die folgenden Anforderungen erfüllt sind.
-
Der Knoten hat Netzwerkzugriff auf die erforderlichen AWS APIs zum Abrufen von Anmeldeinformationen,
-
Der Knoten kann AWS Anmeldeinformationen für die konfigurierte IAM-Rolle des Hybridknotens abrufen.
-
Der Knoten verfügt über Netzwerkzugriff auf den EKS-Kubernetes-API-Endpunkt und die Gültigkeit des EKS-Kubernetes-API-Endpunktzertifikats,
-
Der Knoten kann sich beim EKS-Cluster authentifizieren, seine Identität im Cluster ist gültig und der Knoten hat Zugriff auf den EKS-Cluster über die für den EKS-Cluster konfigurierte VPC.
Wenn Fehler gefunden werden, werden in der Ausgabe des Befehls Schritte zur Fehlerbehebung vorgeschlagen. Bestimmte Validierungsschritte zeigen untergeordnete Prozesse an. Wenn diese fehlschlagen, wird die Ausgabe in einem stderr-Abschnitt unter dem Validierungsfehler angezeigt.
Usage
nodeadm debug [flags]
Flags
| Name | Erforderlich | Description |
|---|---|---|
|
|
TRUE |
Quelle der |
|
|
FALSE |
Deaktiviert die Farbausgabe. Nützlich für die Automatisierung. |
|
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Flag-, Unterbefehls- und Positionswertparametern an. |
Beispiele
nodeadm debug -c file://nodeConfig.yaml
Speicherorte für Nodeadm-Dateien
nodeadm-Installation
Bei der Ausführung von nodeadm install werden die folgenden Dateien und Dateispeicherorte konfiguriert.
| Artefakt | Pfad |
|---|---|
|
CLI für IAM Roles Anywhere |
/usr/local/bin/aws_signing_helper |
|
Kubelet-Binärdateien |
//kubelet usr/bin |
|
Kubectl-Binärdatei |
usr/local/bin/kubectl |
|
ECR-Anmeldeinformationsanbieter |
//image-credentials - -credentials provider etc/eks provider/ecr |
|
AWS IAM-Authentifikator |
//-iam-authentifikator usr/local bin/aws |
|
CLI für SSM-Einrichtung |
opt/ssm//ssm-setup-cli |
|
SSM-Agent |
Auf Ubuntu -/-ssm- /amazon-ssm-agent snap/amazon agent/current Auf RHEL & AL2023 -//amazon-ssm-agent usr/bin |
|
Containerd |
Auf Ubuntu und AL2023 -//containerd usr/bin Auf RHEL -/bin/containerd |
|
Iptables |
Auf Ubuntu & AL2023 -//iptables usr/sbin Auf RHEL -/sbin/iptables |
|
CNI-Plugins |
//bin opt/cni |
|
Nachverfolgung installierter Artefakte |
//tracker opt/nodeadm |
nodeadm init
Bei der Ausführung von nodeadm init werden die folgenden Dateien und Dateispeicherorte konfiguriert.
| Name | Pfad |
|---|---|
|
Kubelet kubeconfig |
/var/lib/kubelet/kubeconfig |
|
Kubelet-Konfiguration |
etc/kubernetes/.json kubelet/config |
|
Kubelet-systemd-Einheit |
/etc/systemd/.service system/kubelet |
|
Konfiguration des Image-Anmeldeinformationsanbieters |
/etc/eksprovider/config/image-credentials - .json |
|
Kubelet-env-Datei |
/etc/eks/kubelet/environment |
|
Kubelet Certs |
etc/kubernetes//.crt pki/ca |
|
Containerd-Konfiguration |
//config.toml etc/containerd |
|
Konfiguration der Containerd-Kernelmodule |
etc/modules/-laden. d/containerd.conf |
|
AWS Config-Datei |
/etc/aws/hybrid/config |
|
AWS Anmeldeinformationsdatei (wenn Anmeldeinformationsdatei aktiviert ist) |
/eks-hybrid/. aws/credentials |
|
AWS Signaturhilfesystemeinheit |
/etc/systemd/system/aws_signing_helper_update.service |
|
Sysctl-Konfigurationsdatei |
/etc/sysctl. d/99-nodeadm.conf |
|
Ca-certificates |
//-zertifikate.crt etc/ssl certs/ca |
|
GPG-Schlüsseldatei |
etc/apt/keyrings/docker/.asc |
|
Docker-Repo-Quelldatei |
//sources.list. etc/apt d/docker.liste |
Knotenkonfiguration für SSM-Hybridaktivierungen
Das Folgende ist ein Beispiel für die nodeConfig.yaml Verwendung von AWS SSM-Hybrid-Aktivierungen für Hybrid-Node-Anmeldeinformationen.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Knotenkonfiguration für IAM Roles Anywhere
Im Folgenden finden Sie ein Beispiel nodeConfig.yaml für AWS IAM Roles Anywhere für Anmeldeinformationen für Hybridknoten.
Wenn nodeName Sie AWS IAM Roles Anywhere als Ihren lokalen Anmeldeinformationsanbieter verwenden, müssen die in Ihrer nodeadm Konfiguration verwendeten Berechtigungen mit den Berechtigungen übereinstimmen, die Sie für Ihre IAM-Rolle für Hybridknoten festgelegt haben. Wenn Ihre Berechtigungen für die IAM-Rolle Hybrid Nodes IAM IAM beispielsweise nur zulassen, dass AWS IAM Roles Anywhere die Rolle übernimmt, wenn der Rollensitzungsname dem CN des Hostzertifikats entspricht, dann muss der nodeName in Ihrer nodeadm Konfiguration mit dem CN Ihrer Zertifikate übereinstimmen. Der von Ihnen verwendete nodeName kann nicht länger als 64 Zeichen sein. Weitere Informationen finden Sie unter Vorbereitung der Anmeldeinformationen für Hybridknoten.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: iamRolesAnywhere: nodeName: # Name of the node trustAnchorArn: # ARN of the IAM Roles Anywhere trust anchor profileArn: # ARN of the IAM Roles Anywhere profile roleArn: # ARN of the Hybrid Nodes IAM role certificatePath: # Path to the certificate file to authenticate with the IAM Roles Anywhere trust anchor privateKeyPath: # Path to the private key file for the certificate
Knotenkonfiguration zur Anpassung von kubelet (optional)
Sie können die kubelet-Konfiguration und Flags in Ihrer nodeadm-Konfiguration übergeben. Im folgenden Beispiel erfahren Sie, wie Sie ein zusätzliches Knotenlabel hinzufügen abc.example.com/test-label und die Kubelet-Konfiguration shutdownGracePeriod auf 30 Sekunden festlegen. Weitere Informationen zu Kubelet-Konfigurationsoptionen finden Sie in der Kubelet-Konfigurationsreferenz (v1beta1) in der Kubernetes-Dokumentation.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides kubelet: config: # Map of kubelet config and values shutdownGracePeriod: 30s flags: # List of kubelet flags - --node-labels=abc.example.com/test-label=true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Knotenkonfiguration zur Anpassung von containerd (optional)
Sie können eine benutzerdefinierte containerd-Konfiguration in Ihrer nodeadm-Konfiguration übergeben. Die containerd-Konfiguration für nodeadm akzeptiert Inline-TOML. Im folgenden Beispiel erfahren Sie, wie Sie containerd konfigurieren, um das Löschen entpackter Image-Ebenen im containerd-Inhaltsspeicher zu deaktivieren.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri".containerd] discard_unpacked_layers = false hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Anmerkung
Die Containerd-Versionen 1.x und 2.x verwenden unterschiedliche Konfigurationsformate. Containerd 1.x verwendet die Konfigurationsversion 2, während Containerd 2.x die Konfigurationsversion 3 verwendet. Obwohl containerd 2.x weiterhin abwärtskompatibel mit Config-Version 2 ist, wird Config-Version 3 für eine optimale Leistung empfohlen. Überprüfen Sie Ihre Containerd-Version mit den Installationsprotokollen containerd --version oder überprüfen Sie sie. nodeadm Weitere Informationen zur Versionsverwaltung von Konfigurationen finden Sie unter https://containerd.io/releases/
Sie können die containerd-Konfiguration auch verwenden, um den SELinux-Support zu aktivieren. Wenn SELinux auf Containerd aktiviert ist, stellen Sie sicher, dass die auf dem Knoten geplanten Pods den richtigen SecurityContext haben und wir aktiviert sind. LinuxOptions Weitere Informationen für die Konfiguration eines Sicherheitskontexts finden Sie in der Kubernetes-Dokumentation
Anmerkung
Bei Red Hat Enterprise Linux (RHEL) 8 und RHEL 9 ist SELinux standardmäßig aktiviert und auf dem Host auf „strikt“ eingestellt. Bei Amazon Linux 2023 ist SELinux standardmäßig aktiviert und auf den permissiven Modus eingestellt. Wenn SELinux auf dem Host auf den permissiven Modus eingestellt ist, werden durch die Aktivierung in containerd keine Anfragen blockiert, sondern entsprechend der SELinux-Konfiguration auf dem Host protokolliert.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri"] enable_selinux = true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id