nodeadmReferenz für Hybridknoten - Amazon EKS

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.

nodeadmReferenz 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-Repository unter verfügbar. GitHub Die für Amazon-Instances verwendete nodeadm 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

-p,

--credential-provider

TRUE

Zu installierender Anmeldeinformationsanbieter. Unterstützte Werte sind iam-ra und ssm. Weitere Informationen finden Sie unter Anmeldedaten für Hybridknoten vorbereiten.

-s,

--containerd-source

FALSE

Quelle fürcontainerd. nodeadmunterstützt die Installation containerd über die Betriebssystemdistribution, Docker-Pakete und das Überspringen containerd der Installation.

Werte

distro- Dies ist der Standardwert. nodeadminstalliert das vom Node-Betriebssystem verteilte containerd Paket. distroist kein unterstützter Wert für Red Hat Enterprise Linux (RHEL) -Betriebssysteme.

docker- installiert nodeadm ein von containerd Docker erstelltes und verteiltes Paket. dockerist kein unterstützter Wert für Amazon Linux 2023

none- installiert nodeadm das containerd Paket nicht. Sie müssen es manuell installieren, containerd bevor Sie es ausführennodeadm init.

-t,

--timeout

FALSE

Maximale Dauer des Installationsbefehls. Die Eingabe folgt dem Format für die Dauer. Zum Beispiel 1h23m. Das Standard-Download-Timeout für den Installationsbefehl ist auf 20 Minuten festgelegt.

-h, --help

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

-c,

--config-source

TRUE

Quelle der Nodeadm-Konfiguration. Bei Hybridknoten sollte die Eingabe einem URI mit Dateischema folgen.

-h, --help

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

-c,

--config-source

TRUE

Quelle der nodeadm Konfiguration. Bei Hybridknoten sollte die Eingabe einem URI mit Dateischema folgen.

-s,

--skip

FALSE

Phaseninit, die übersprungen werden sollen. Es wird nicht empfohlen, eine der Phasen zu überspringen, es sei denn, dies hilft, ein Problem zu beheben.

Werte

install-validationüberspringt die Überprüfung, ob der weiterführende Installationsbefehl erfolgreich ausgeführt wurde.

-h, --help

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

-c,

--config-source

TRUE

nodeadmQuelle der Konfiguration. Bei Hybridknoten sollte die Eingabe einem URI mit Dateischema folgen.

-t,

--timeout

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.

-s,

--skip

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

pod-validationüberspringt die Überprüfung, ob alle Pods auf dem Knoten laufen, mit Ausnahme von Daemon-Sets und statischen Pods.

node-validationüberspringt die Überprüfung, ob der Knoten gesperrt wurde.

init-validationüberspringt die Überprüfung, ob der Knoten erfolgreich initialisiert wurde, bevor das Upgrade ausgeführt wird.

-h, --help

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 uninstallWird 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

-s,

--skip

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

pod-validationüberspringt die Überprüfung, ob alle Pods auf dem Knoten laufen, mit Ausnahme von Daemon-Sets und statischen Pods.

node-validationüberspringt die Überprüfung, ob der Knoten gesperrt wurde.

init-validationüberspringt die Überprüfung, ob der Knoten erfolgreich initialisiert wurde, bevor das Upgrade ausgeführt wird.

-h,

--help

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

-c, --config-source

TRUE

Quelle der Konfiguration. nodeadm Bei Hybridknoten sollte die Eingabe einem URI mit Dateischema folgen.

-h, --help

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