Helfen Sie mit, diese Seite zu verbessern
Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle 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.
Starten selbstverwalteter Bottlerocket-Knoten
Anmerkung
Verwaltete Knotengruppen bieten möglicherweise einige Vorteile für Ihren Anwendungsfall. Weitere Informationen finden Sie unter Verwaltete Knotengruppen.
In diesem Thema wird beschrieben, wie Sie Auto Scaling Scaling-Gruppen von Bottlerocket-Knoteneksctl
-Dokumentation.
Weitere Informationen zu direkten Upgrades finden Sie unter Update-Operator für Bottlerocket
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 Bottlerocket-Knoten in erweiterten Amazon EKS-Clustern auf AWS Outposts starten, aber Sie können sie nicht in lokalen Clustern auf Outposts starten. AWS Weitere Informationen finden Sie unter auf Amazon EKSAWS Outposts.
-
Sie können auf Amazon-EC2-Instances mit
x86
- oder Arm-Prozessoren bereitstellen. Sie können jedoch nicht auf Instances bereitstellen, die über Inferentia-Chips verfügen. -
Bottlerocketist AWS CloudFormation kompatibel mit. Es gibt jedoch keine offizielle CloudFormation Vorlage, die kopiert werden kann, um Bottlerocket Knoten für Amazon EKS bereitzustellen.
-
Bottlerocket-Images werden nicht mit einem SSH-Server oder einer Shell geliefert. Sie können out-of-band Zugriffsmethoden verwenden, um die SSH Aktivierung des Admin-Containers zu ermöglichen und einige Bootstrapping-Konfigurationsschritte mit Benutzerdaten zu durchlaufen. Weitere Informationen finden Sie in diesen Abschnitten im bottlerocket README.md
auf GitHub:
Bottlerocket-Knoten mit eksctl
starten
Für diesen Vorgang ist eksctl
Version 0.184.0
oder höher erforderlich. Sie können Ihre -Version mit dem folgenden Befehl überprüfen:
eksctl version
Eine Installations- und Upgrade-Anleitung für eksctl
finden Sie in der Dokumentation zu eksctl
unter Installation
Anmerkung
Dieses Verfahren funktioniert nur für Cluster, die mit eksctl
erstellt wurden.
-
Kopieren Sie den folgenden Inhalt auf Ihr Gerät. Ersetzen Sie
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 alphanumerischen Zeichen beginnen und darf nicht länger als 100 Zeichen sein. Der Name muss innerhalb des AWS-Region und AWS-Konto , in dem Sie den Cluster erstellen, eindeutig sein. Ersetzen Siemy-cluster
durch einen Namen für Ihre Knotengruppe. Der Knotengruppenname 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 Sieng-bottlerocket
durch einen Arm-Instance-Typ. Ersetzen Siem5.large
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 Management Console erstellen. Weitere Informationen finden Sie unter Amazon-EC2-Schlüsselpaare im Amazon-EC2-Benutzerhandbuch. Ersetzen Siemy-ec2-keypair-name
durch Ihre eigenen Werte. Nachdem Sie das Ersetzen vorgenommen haben, führen Sie den geänderten Befehl aus, um dieexample values
bottlerocket.yaml
-Datei zu erstellen.Wenn Sie einen Arm Amazon-EC2-Instance-Typ angeben, überprüfen Sie die Überlegungen inAmazon-EKS-optimierte Arm-Amazon-Linux-AMIsbevor Sie eine Bereitstellung durchführen. Anweisungen zum Bereitstellen mit einem benutzerdefinierten AMI finden Sie unter Erstellen von Bottlerocket
auf GitHub und Benutzerdefinierter AMI-Support in der eksctl
-Dokumentation. Um eine verwaltete Knotengruppe bereitzustellen, stellen Sie ein benutzerdefiniertes AMI mithilfe einer Startvorlage bereit. Weitere Informationen finden Sie unter Anpassen verwalteter Knoten mit Startvorlagen.Wichtig
Um eine Knotengruppe in Subnetzen oder AWS lokalen Zonensubnetzen bereitzustellen AWS Outposts AWS Wavelength, übergeben Sie bei der Erstellung des Clusters keine Subnetze der AWS lokalen Zone. AWS Outposts AWS Wavelength 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 es
durch AWS-Region das, in dem sich Ihr Cluster befindet.region-code
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 -
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
" -
(Optional) Erstellen Sie ein persistentes Kubernetes-Volume
auf einem Bottlerocket-Knoten, indem Sie das Amazon-EBS-CSI-Plugin verwenden. Der standardmäßige Amazon-EBS-Treiber basiert auf Dateisystem-Tools, die nicht in Bottlerocket enthalten sind. Weitere Informationen zur Erstellung einer Speicherklasse mit dem Treiber finden Sie unter Amazon EBS-Speicher verwenden. -
(Optional) Standardmäßig setzt
kube-proxy
den Kernelparameternf_conntrack_max
auf einen Standardwert, der sich von dem unterscheiden kann, was Bottlerocket ursprünglich beim Booten festgelegt hat. Um die Standardeinstellungvon Bottlerocket beizubehalten, bearbeiten Sie die kube-proxy
-Konfiguration im folgenden Befehl.kubectl edit -n kube-system daemonset kube-proxy
Fügen Sie
--conntrack-max-per-core
und--conntrack-min
zu denkube-proxy
-Argumenten im folgenden Beispiel hinzu. Eine Einstellung von0
impliziert keine Änderung.containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config
- --conntrack-max-per-core=0 - --conntrack-min=0
-
(Optional) Stellen Sie eine Beispielanwendung bereit, um Ihre Bottlerocket-Knoten zu testen.
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.
Nein Pods im Cluster benötigen aus anderen Gründen Zugriff auf den Amazon EC2 EC2-Instance-Metadaten-Service (IMDS), z. B. zum Abrufen der aktuellen Version. AWS-Region
Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
.