Selbstverwaltetes erstellen Bottlerocket Knoten - Amazon EKS

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.

Selbstverwaltetes erstellen Bottlerocket Knoten

Anmerkung

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

In diesem Thema wird beschrieben, wie Sie Auto Scaling Scaling-Gruppen von Bottlerocket-Knoten starten, die sich bei Ihrem Amazon-Cluster registrieren. EKS Bottlerocket ist ein LinuxEin basiertes Open-Source-Betriebssystem AWS , das Sie zum Ausführen von Containern auf virtuellen Maschinen oder Bare-Metal-Hosts verwenden können. Nachdem die Knoten dem Cluster beigetreten sind, können Sie sie bereitstellen Kubernetes Anwendungen für sie. Weitere Informationen zur Bottlerocket, siehe Bottlerocket AMI mit Amazon verwenden auf EKS GitHub und benutzerdefinierte AMI Unterstützung in der Dokumentation. eksctl

Informationen zu direkten Upgrades finden Sie unter Bottlerocket Update Operator unter GitHub.

Wichtig
  • EKSAmazon-Knoten sind EC2 Standard-Amazon-Instances, und sie werden Ihnen auf der Grundlage der normalen EC2 Amazon-Instance-Preise in Rechnung gestellt. Weitere Informationen finden Sie unter EC2Amazon-Preise.

  • Sie können Bottlerocket-Knoten in EKS erweiterten Amazon-Clustern auf AWS Outposts starten, aber Sie können sie nicht in lokalen Clustern auf Outposts starten. AWS Weitere Informationen finden Sie unter Stellen Sie Amazon EKS vor Ort mit AWS Outposts bereit.

  • Sie können auf EC2 Amazon-Instances bereitstellen mit x86 oder Arm Prozessoren. Sie können die Bereitstellung jedoch nicht auf Instanzen durchführen, die Inferentia Chips.

  • Bottlerocket ist kompatibel mit AWS CloudFormation. Es gibt jedoch keine offizielle CloudFormation Vorlage, die zur Bereitstellung kopiert werden kann Bottlerocket Knoten für AmazonEKS.

  • Bottlerocket Bilder werden nicht mit einem geliefert SSH Server oder eine Shell. Sie können out-of-band Zugriffsmethoden verwenden, um Folgendes zuzulassen SSH den Admin-Container zu aktivieren und einige Bootstrapping-Konfigurationsschritte mit Benutzerdaten zu bestehen. Weitere Informationen finden Sie in diesen Abschnitten in der Datei READMEbottlerocket .md auf GitHub:

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

eksctl version

Anweisungen zur Installation oder zum Upgrade finden Sie in der eksctl Dokumentation unter Installation. eksctl NOTE: Dieses Verfahren funktioniert nur für Cluster, die mit erstellt wurdeneksctl.

+. Kopieren Sie die folgenden Inhalte auf Ihr Gerät. Ersetzen my-cluster mit dem Namen Ihres Clusters. Der Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphanumerischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein. Der Name muss innerhalb der AWS Region und des AWS Kontos, in dem Sie den Cluster erstellen, eindeutig sein. Ersetzen ng-bottlerocket mit einem 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-Instanzen durchzuführen, ersetzen Sie m5.large durch einen Arm-Instanztyp. Ersetzen my-ec2-keypair-name mit dem Namen eines EC2 SSH Amazon-Schlüsselpaars, mit dem Sie nach dem Start eine Verbindung SSH zu Ihren Knoten herstellen können. Wenn Sie noch kein EC2 Amazon-Schlüsselpaar haben, können Sie eines in der erstellen AWS Management Console. Weitere Informationen finden Sie unter EC2Amazon-Schlüsselpaare im EC2Amazon-Benutzerhandbuch. Ersetzen Sie alle verbleibenden example values mit deinen eigenen Werten. Sobald Sie die Ersetzungen vorgenommen haben, führen Sie den modifizierten Befehl aus, um die bottlerocket.yaml Datei zu erstellen.

+ Wenn Sie einen EC2 Arm-Amazon-Instance-Typ angeben, lesen Sie AMIs vor der Bereitstellung die Überlegungen in EKSAmazon-optimiertem Arm Amazon Linux. Anweisungen zur Bereitstellung mithilfe eines benutzerdefinierten AMI Tools finden Sie unter Building Bottlerocket on GitHub und benutzerdefinierte AMI Unterstützung in der Dokumentation. eksctl Um eine verwaltete Knotengruppe bereitzustellen, stellen Sie AMI mithilfe einer Startvorlage eine benutzerdefinierte Knotengruppe bereit. Weitere Informationen finden Sie unter Passen Sie verwaltete Knoten mit Startvorlagen an.

+IMPORTANT: Um eine Knotengruppe in AWS Outposts-, AWS Wavelength- oder AWS Local Zone-Subnetzen bereitzustellen, übergeben Sie beim Erstellen des Clusters keine AWS Outposts-, AWS Wavelength- oder AWS Local Zone-Subnetze. 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 region-code mit der AWS Region, in der sich Ihr Cluster befindet.

+

cat >bottlerocket.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.30' iam: withOIDC: true nodeGroups: - name: ng-bottlerocket instanceType: m5.large desiredCapacity: 3 amiFamily: Bottlerocket ami: auto-ssm 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
  1. Stellen Sie den Treiber mit dem folgenden Befehl bereit.

    eksctl create nodegroup --config-file=bottlerocket.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"
  2. (Optional) Erstellen Sie ein Kubernetes persistenter Datenträger auf einem Bottlerocket Knoten, der das EBSCSIAmazon-Plugin verwendet. Der EBS Standardtreiber von Amazon basiert auf Dateisystem-Tools, die nicht im Lieferumfang von enthalten sind Bottlerocket. Weitere Hinweise zum Erstellen einer Speicherklasse mithilfe des Treibers finden Sie unterSpeichern Sie Kubernetes-Volumes bei Amazon EBS.

  3. (Optional) kube-proxy Setzt den nf_conntrack_max Kernel-Parameter standardmäßig auf einen Standardwert, der von dem abweichen kann Bottlerocket wird ursprünglich beim Systemstart festgelegt. Zu behalten Bottlerocket’s Standardeinstellung, edit the `kube-proxy Konfiguration mit dem folgenden Befehl.

    kubectl edit -n kube-system daemonset kube-proxy

    Fügen Sie --conntrack-max-per-core und --conntrack-min zu den kube-proxy-Argumenten im folgenden Beispiel hinzu. Eine Einstellung von0impliziert keine Änderung.

    containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --conntrack-max-per-core=0 - --conntrack-min=0
  4. (Optional) Stellen Sie eine Beispielanwendung bereit, um Ihre zu testen Bottlerocket Knoten.

  5. Wir empfehlen das Blockieren Pod Zugriff auf, IMDS wenn die folgenden Bedingungen zutreffen:

    • Sie planen, all Ihren IAM Rollen zuzuweisen Kubernetes Dienstkonten, sodass Pods haben nur die Mindestberechtigungen, die sie benötigen.

    • Nein Pods im Cluster benötigen aus anderen Gründen Zugriff auf den EC2 Amazon-Instance-Metadatenservice (IMDS), z. B. 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.