Selbstverwaltete Ubuntu Linux-Knoten erstellen - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

Selbstverwaltete Ubuntu Linux-Knoten erstellen

Anmerkung

Verwaltete Knotengruppen bieten möglicherweise einige Vorteile für Ihren Anwendungsfall. Weitere Informationen finden Sie unter Vereinfachung des Knotenlebenszyklus mit verwalteten Knotengruppen.

In diesem Thema wird beschrieben, wie Sie Auto Scaling-Gruppen von Knoten von Ubuntu in Amazon Elastic Kubernetes Service (EKS) oder Knoten von Ubuntu Pro in Amazon Elastic Kubernetes Service (EKS) starten, die bei Ihrem Amazon-EKS-Cluster registriert sind. Ubuntu und Ubuntu Pro für EKS basieren auf dem offiziellen Ubuntu Minimal LTS, enthalten den benutzerdefinierten AWS-Kernel, der gemeinsam mit AWS entwickelt wurde, und wurden speziell für EKS erstellt. Ubuntu Pro bietet zusätzliche Sicherheit durch die Unterstützung erweiterter EKS-Supportzeiträume, Kernel-Live-Patches, FIPS-Konformität und die Möglichkeit, eine unbegrenzte Anzahl von Pro-Containern auszuführen.

Nachdem die Knoten dem Cluster beigetreten sind, können Sie darin containerisierte Anwendungen bereitstellen. Weitere Informationen finden Sie in der Dokumentation zu Ubuntu in AWS und zum Benutzerdefinierten AMI-Support in der eksctl-Dokumentation.

Wichtig
  • Amazon-EKS-Worker-Knoten sind Standard-Amazon-EC2-Instances und werden Ihnen basierend auf normalen Amazon-EC2-Instance-Preisen berechnet. Weitere Informationen dazu finden Sie unter Amazon EC2 – Preise.

  • Sie können Ubuntu-Knoten in erweiterten Amazon-EKS-Clustern in AWS-Outposts starten, aber Sie können sie nicht in lokalen Clustern in AWS Outposts starten. Weitere Informationen finden Sie unter Bereitstellung von Amazon EKS On-Premises mit AWS Outposts.

  • Sie können auf Amazon-EC2-Instances mit x86- oder Arm -Prozessoren bereitstellen. Bei Instances mit Inferentia-Chips muss jedoch möglicherweise zuerst das Neuron SDK installiert werden.

Für diesen Vorgang ist eksctl Version 0.214.0 oder höher erforderlich. Sie können Ihre -Version mit dem folgenden Befehl überprüfen:

eksctl version

Anweisungen zum Installieren oder Aktualisieren von eksctl finden Sie unter Installation in der eksctl-Dokumentation. HINWEIS: Dieses Verfahren funktioniert nur für Cluster, die mit eksctl erstellt wurden.

  1. Kopieren Sie den folgenden Inhalt auf Ihr Gerät. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Es muss mit einem alphabetischen Zeichen beginnen und darf nicht mehr als 100 Zeichen umfassen. Ersetzen Sie ng-ubuntu durch einen Namen für Ihre Knotengruppe. 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. Um die Bereitstellung auf Arm-Instances durchzuführen, ersetzen Sie m5.large durch einen Arm-Instance-Typ. Ersetzen Sie my-ec2-keypair-name mit dem Namen eines Amazon-EC2-SSH-Schlüsselpaars ein, das Sie für die Verbindung über SSH in Ihre Arbeitsknoten verwenden können, nachdem sie gestartet wurden. Wenn Sie noch kein Amazon-EC2-Schlüsselpaar haben, können Sie eines in der AWS-Managementkonsole erstellen. Weitere Informationen finden Sie unter Amazon-EC2-Schlüsselpaare im Amazon-EC2-Benutzerhandbuch. Ersetzen Sie alle verbleibenden Beispielwerte durch Ihre eigenen Werte. Nachdem Sie das Ersetzen vorgenommen haben, führen Sie den geänderten Befehl aus, um die ubuntu.yaml-Datei zu erstellen.

    Wichtig

    Um einen Knotengruppe in den Subnetzen AWS Outposts, AWS Wavelength oder AWS Local Zone bereitzustellen, übergeben Sie beim Erstellen des Clusters keine Subnetze von AWS Outposts, AWS Wavelength oder AWS Local Zone. Sie müssen die Subnetze im folgenden Beispiel angeben. Weitere Informationen finden Sie unter Verwenden von Config-Dateien und im Config-Datei-Schema in der eksctl-Dokumentation. Ersetzen Sie den region-code durch die AWS-Region, in der sich Ihr Cluster befindet.

    cat >ubuntu.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.33' iam: withOIDC: true nodeGroups: - name: ng-ubuntu instanceType: m5.large desiredCapacity: 3 amiFamily: Ubuntu2204 iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName: my-ec2-keypair-name EOF

    Um eine Ubuntu Pro-Knotengruppe zu erstellen, ändern Sie einfach den amiFamily-Wert in UbuntuPro2204.

  2. Stellen Sie den Treiber mit dem folgenden Befehl bereit.

    eksctl create nodegroup --config-file=ubuntu.yaml

    Eine Beispielausgabe sieht wie folgt aus.

    Mehrere Zeilen werden ausgegeben, während die Knoten erstellt werden. Die letzte Ausgabezeile ähnelt der folgenden Beispielzeile.

    [✔] created 1 nodegroup(s) in cluster "my-cluster"
  3. (Optional) Stellen Sie eine Beispielanwendung bereit, um Ihre Ubuntu-Knoten zu testen.

  4. Wir empfehlen, den Pod-Zugriff auf das IMDS zu blockieren, wenn die folgenden Bedingungen erfüllt sind:

    • Sie planen, allen Ihren Kubernetes-Servicekonten IAM-Rollen zuzuweisen, damit Pods nur die Mindestberechtigungen haben, die sie benötigen.

    • Keine Pods im Cluster benötigen aus anderen Gründen Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS), beispielsweise zum Abrufen der aktuellen AWS-Region.

    Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist.