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.
nodeadm
Referenz für Hybridknoten
Die Amazon EKS Hybrid Nodes CLI (nodeadm
), die für das Lebenszyklusmanagement von Hybridknoten verwendet wird, unterscheidet sich von der nodeadm
Version, die für das Bootstrapping von EC2 Amazon-Instances als Knoten in Amazon EKS-Clustern verwendet wird. Folgen Sie der Dokumentation und den Referenzen für die entsprechende nodeadm
Version. Diese Dokumentationsseite bezieht sich auf die nodeadm
Hybridknoten-Version und die nodeadm
Hybridknoten-Version ist im eks-Hybrid-Repositorynodeadm
Version finden Sie in der nodeadm — Amazon EC2 EKS AMI-Dokumentation
Herunterladen von nodeadm
Die Hybridknoten-Version von nodeadm
wird in Amazon S3 gehostet, das von Amazon CloudFront bereitgestellt wird. Um nodeadm
auf jedem lokalen Host zu installieren, können Sie den folgenden Befehl von Ihren lokalen 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 für eine ausführbare Datei hinzu.
chmod +x nodeadm
Befehle
Wichtig
Sie müssen das Programm nodeadm
mit einem Benutzer ausführen, der über Root-/Sudo-Rechte verfügt.
Installieren
Der install
Befehl wird verwendet, um die Artefakte und Abhängigkeiten zu installieren, die für den Betrieb und die Verbindung von Hybridknoten zu einem Amazon EKS-Cluster erforderlich sind. Der install
Befehl kann einzeln auf jedem Hybridknoten oder während der Image-Build-Pipelines ausgeführt werden, um die Abhängigkeiten der Hybridknoten in Betriebssystem-Images vorzuinstallieren.
Verwendung
nodeadm install [KUBERNETES_VERSION] [flags]
Positionale Argumente
(Erforderlich) KUBERNETES_VERSION
Die zu installierende Major.Minor-Version von EKS Kubernetes, zum Beispiel 1.31
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
TRUE |
Zu installierender Anmeldeinformationsanbieter. Unterstützte Werte sind |
|
FALSE |
Quelle für Werte |
|
FALSE |
Maximale Dauer des Installationsbefehls. Die Eingabe folgt dem Format für die Dauer. Zum Beispiel |
|
FALSE |
Zeigt eine Hilfemeldung mit den verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
Installieren Sie die Kubernetes-Version 1.31
mit AWS Systems Manager (SSM) als Anmeldeinformationsanbieter
nodeadm install 1.31 --credential-provider ssm
Installieren Sie die Kubernetes-Version 1.31
mit AWS Systems Manager (SSM) als Anmeldeinformationsanbieter und Docker als Container-Quelle mit einem Download-Timeout von 20 Minuten.
nodeadm install 1.31 --credential-provider ssm --containerd-source docker --timeout 20m
Installieren Sie die Kubernetes-Version mit IAM Roles Anywhere als Anmeldeinformationsanbieter 1.31
AWS
nodeadm install 1.31 --credential-provider iam-ra
Installierte Dateien
Artefakt | Pfad |
---|---|
IAM-Rollen Anywhere CLI |
/_signing_helper usr/local/bin/aws |
Kubelet-Binärdatei |
/usr/bin/kubelet |
Kubectl-Binärdatei |
usr/local/bin/kubectl |
Anbieter von ECR-Anmeldeinformationen |
/-Anmeldeinformationsanbieter etc/eks/image-credential-provider/ecr |
AWS IAM-Authentifikator |
/-iam-Authentifikator usr/local/bin/aws |
SSM-Setup-CLI |
/-setup-cli opt/ssm/ssm |
SSM-Agent |
Auf Ubuntu -/-ssm-agent snap/amazon-ssm-agent/current/amazon Auf RHEL & AL2 023 -/-ssm-agent usr/bin/amazon |
In Containern |
Auf Ubuntu & AL2 023 -/usr/bin/containerd Auf RHEL - /bin/containerd |
Iptables |
Auf Ubuntu & AL2 023 -/usr/sbin/iptables Auf RHEL - /sbin/iptables |
CNI-Plug-ins |
/opt/cni/bin |
installierter Artefakt-Tracker |
/opt/nodeadm/tracker |
Überprüfung der Config
Der config check
Befehl überprüft die angegebene Knotenkonfiguration auf Fehler. Dieser Befehl kann verwendet werden, um die Richtigkeit einer Hybridknoten-Konfigurationsdatei zu überprüfen und zu validieren.
Verwendung
nodeadm config check [flags]
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
TRUE |
Quelle der Nodeadm-Konfiguration. Bei Hybridknoten sollte die Eingabe einem URI mit Dateischema folgen. |
|
FALSE |
Zeigt eine Hilfemeldung mit den verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
nodeadm config check --config-source file:///root/nodeConfig.yaml
Initialisieren
Der init
Befehl startet und verbindet den Hybridknoten mit dem konfigurierten Amazon EKS-Cluster.
Verwendung
nodeadm init [flags]
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
TRUE |
Quelle der |
|
FALSE |
Phasen Werte |
|
FALSE |
Zeigt eine Hilfemeldung mit den verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
nodeadm init --config-source file://root/nodeConfig.yaml
Installierte Dateien
Name | Pfad |
---|---|
Kubelet kubeconfig |
/var/lib/kubelet/kubeconfig |
Kubelet-Konfiguration |
/.json etc/kubernetes/kubelet/config |
Kubelet-Systemeinheit |
/etc/systemd/system/kubelet.dienst |
Konfiguration des Anbieters von Bildanmeldedaten |
/etc/eks/image-credential-provider/config.json |
Kubelet-Env-Datei |
/etc/eks/kubelet/environment |
Kubelet-Zertifikate |
/etc/kubernetes/pki/ca.crt |
Container-Konfiguration |
/.toml etc/containerd/config |
Konfiguration der containerten Kernelmodule |
/.conf etc/modules-load.d/contianerd |
AWS Konfigurationsdatei |
/etc/aws/hybrid/config |
AWS Anmeldeinformationsdatei (wenn Anmeldeinformationsdatei aktiviert ist) |
/eks-hybrid/.aws/credentials |
AWS Helper-Systemeinheit signieren |
/etc/systemd/system/aws_signing_helper_update.service |
Sysctl-Conf-Datei |
/etc/sysctl.d/99-nodeadm.conf |
Apt-Manager-Dateien für Docker Repo (wenn die Container-Quelle Docker ist) |
|
CA-Zertifikate |
/-certificates.crt etc/ssl/certs/ca |
Gpg-Schlüsseldatei |
/.asc etc/apt/keyrings/docker |
Docker-Repo-Quelldatei |
/.liste etc/apt/sources.list.d/docker |
Upgrade
Der nodeadm upgrade
Befehl aktualisiert alle installierten Artefakte auf die neueste Version und bootet den Knoten, um die aktualisierten Artefakte zu konfigurieren und dem EKS-Cluster beizutreten. AWS Beim Upgrade handelt es sich um einen Befehl, der die Workloads, die auf dem Knoten ausgeführt werden, unterbricht. Bitte verschieben Sie Ihre Workloads auf einen anderen Knoten, bevor Sie das Upgrade ausführen.
Verwendung
nodeadm upgrade [KUBERNETES_VERSION] [flags]
Positionale Argumente
(Erforderlich) KUBERNETES_VERSION
Die zu installierende Major.Minor-Version von EKS Kubernetes, zum Beispiel 1.31
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
TRUE |
|
|
FALSE |
Timeout für das Herunterladen von Artefakten. Die Eingabe folgt dem Format für die Dauer. Zum Beispiel 1h23m. Das Standard-Download-Timeout für den Upgrade-Befehl ist auf 10 Minuten festgelegt. |
|
FALSE |
Upgrade-Phasen müssen übersprungen werden. Es wird nicht empfohlen, eine der Phasen zu überspringen, es sei denn, dies hilft, ein Problem zu beheben. Werte |
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
nodeadm upgrade 1.31 --config-source file:///root/nodeConfig.yaml
nodeadm upgrade 1.31 --config-source file:///root/nodeConfig.yaml --timeout 20m
Deinstallieren
Der nodeadm uninstall
Befehl stoppt und entfernt die Artefakte, die nodeadm
währenddessen installiert wurdennodeadm install
, einschließlich Kubelet und containerd. Beachten Sie, dass der Deinstallationsbefehl Ihre Hybridknoten nicht entleert oder aus Ihrem Cluster löscht. Sie müssen die Vorgänge „Entleeren“ und „Löschen“ getrennt ausführen. Hybridknoten entfernen Weitere Informationen finden Sie unter. nodeadm uninstall
Wird standardmäßig nicht fortgesetzt, wenn noch Pods auf dem Knoten vorhanden sind. Ebenso werden CNI-Abhängigkeiten oder Abhängigkeiten anderer Kubernetes-Add-Ons, die Sie auf Ihrem Cluster ausführen, nodeadm uninstall
nicht entfernt. Informationen zum vollständigen Entfernen der CNI-Installation von Ihrem Host finden Sie in den Anweisungen unter. Konfigurieren Sie ein CNI für Hybridknoten Wenn Sie AWS SSM-Hybrid-Aktivierungen als Anbieter für lokale Anmeldeinformationen verwenden, werden Ihre Hosts mit dem nodeadm uninstall
Befehl als SSM-verwaltete Instanzen deregistriert. AWS
Verwendung
nodeadm uninstall [flags]
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
FALSE |
Upgrade-Phasen müssen übersprungen werden. Es wird nicht empfohlen, eine der Phasen zu überspringen, es sei denn, dies hilft, ein Problem zu beheben. Werte |
|
FALSE |
Zeigt eine Hilfemeldung mit verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
nodeadm uninstall
nodeadm uninstall --skip node-validation,pod-validation
Debuggen
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 zum Abrufen der AWS APIs Anmeldeinformationen erforderlichen
-
Der Knoten ist in der Lage, AWS Anmeldeinformationen für die konfigurierte IAM-Rolle für Hybridknoten abzurufen.
-
Der Knoten hat 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 über die für den EKS-Cluster konfigurierte VPC Zugriff auf den EKS-Cluster.
Wenn Fehler gefunden werden, schlägt die Ausgabe des Befehls Schritte zur Fehlerbehebung vor. Bei bestimmten Validierungsschritten werden untergeordnete Prozesse angezeigt. Wenn diese fehlschlagen, wird die Ausgabe in einem stderr-Abschnitt unter dem Validierungsfehler angezeigt.
Verwendung
nodeadm debug [flags]
Flags
Name | Erforderlich | Beschreibung |
---|---|---|
|
TRUE |
Quelle der Konfiguration. |
|
FALSE |
Zeigt eine Hilfemeldung mit den verfügbaren Parametern für Flaggen, Unterbefehle und Positionswerte an. |
Beispiele
nodeadm debug --config-source file://nodeConfig.yaml
Node Config API-Referenz
AWS SSM-Hybrid-Aktivierungen
Im Folgenden finden Sie ein Beispiel für die nodeConfig.yaml
Verwendung von AWS SSM-Hybrid-Aktivierungen für 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: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
AWS IAM-Rollen überall
Im Folgenden finden Sie ein Beispiel nodeConfig.yaml
für Anmeldeinformationen für AWS IAM Roles Anywhere für Hybridknoten.
Wenn nodeName
Sie AWS IAM Roles Anywhere als Ihren lokalen Anbieter für Anmeldeinformationen verwenden, müssen die in Ihrer nodeadm
Konfiguration verwendeten Berechtigungen mit den Berechtigungen übereinstimmen, die Sie für Ihre IAM-Rolle für Hybrid Nodes festgelegt haben. Wenn Ihre Berechtigungen für die IAM-Rolle Hybrid Nodes beispielsweise nur zulassen, dass AWS IAM Roles Anywhere die Rolle übernimmt, wenn der Name der Rollensitzung dem CN des Host-Zertifikats entspricht, muss der nodeName
in Ihrer nodeadm
Konfiguration dem CN Ihrer Zertifikate entsprechen. DasnodeName
, was Sie verwenden, darf nicht länger als 64 Zeichen sein. Weitere Informationen finden Sie unter Anmeldedaten für Hybridknoten vorbereiten.
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
(Optional) Kubelet-Konfiguration
Sie können die Kubelet-Konfiguration und die Flags in Ihrer Konfiguration übergeben. nodeadm
Im folgenden Beispiel erfahren Sie, wie Sie ein zusätzliches Knotenlabel abc.amazonaws.com/test-label
und eine zusätzliche Konfiguration für die Einstellung shutdownGracePeriod
auf 30 Sekunden hinzufügen.
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.company.com/test-label=true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
(Optional) Container-Konfiguration
Sie können eine benutzerdefinierte containerd in Ihrer nodeadm
Konfiguration übergeben. Die Container-Konfiguration für nodeadm
akzeptiert Inline-TOML. Im folgenden Beispiel erfahren Sie, wie Sie containerd so konfigurieren, dass das Löschen entpackter Bildebenen im containerd Content Store deaktiviert wird.
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
Sie können auch die Containerd-Konfiguration verwenden, um die SELinux Unterstützung zu aktivieren. SELinux Wenn diese Option auf containerd aktiviert ist, stellen Sie sicher, dass Pods, die auf dem Knoten geplant sind, den richtigen SecurityContext haben und seLinuxOptions aktiviert sind. Weitere Informationen zur Konfiguration eines Sicherheitskontextes finden Sie in der Kubernetes-Dokumentation
Anmerkung
Red Hat Enterprise Linux (RHEL) 8 und RHEL 9 sind standardmäßig SELinux aktiviert und auf dem Host auf Strict gesetzt. Amazon Linux 2023 ist standardmäßig SELinux aktiviert und auf den permissiven Modus eingestellt. Wenn auf dem Host auf den permissiven Modus gesetzt SELinux ist, blockiert die Aktivierung auf containerd keine Anfragen, sondern protokolliert sie entsprechend der SELinux Konfiguration auf dem Host.
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