Salta al contenuto

Come posso utilizzare l'AMI Bottlerocket per creare un gruppo di nodi gestiti in Amazon EKS?

3 minuti di lettura
0

Desidero utilizzare l'AMI Bottlerocket per creare un gruppo di nodi gestiti in Amazon Elastic Kubernetes Service (Amazon EKS).

Risoluzione

Per creare un gruppo di nodi gestiti da Bottlerocket, puoi utilizzare eksctl con un file di configurazione.

Prerequisiti

  • eksctl versione 0.124.0 o successiva
  • Un cluster Amazon EKS esistente
  • Se desideri l'accesso SSH ai nodi, hai bisogno di una coppia di chiavi SSH di Amazon Elastic Compute Cloud (Amazon EC2)

Per creare un gruppo di nodi gestiti utilizzando l'AMI Bottlerocket, completa i seguenti passaggi:

Verifica la versione di eksctl

Per verificare la versione di eksctl, esegui questo comando:

eksctl version

Se devi installare o aggiornare eksctl, consulta Opzioni di installazione per eksctl.

Crea il file di configurazione

Importante: Bottlerocket supporta tipi di istanza per uso generico, ottimizzati per il calcolo, ottimizzati per la memoria e ottimizzati per lo storage. Bottlerocket non supporta le istanze a calcolo accelerato.

Crea un file chiamato bottlerocket.yaml con la seguente configurazione:

---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: mybottlerocket-cluster
  region: your-region
  version: '1.31'

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: your-ec2-keypair-name

Nota: sostituisci mybottlerocket-cluster con il nome del tuo cluster. Sostituisci your-region con la tua Regione AWS. Sostituisci your-ec2-keypair-name con il nome della tua coppia di chiavi SSH di Amazon EC2. Se non disponi di una coppia di chiavi di Amazon EC2, consulta Creazione di una coppia di chiavi per l'istanza Amazon EC2.

Crea il gruppo di nodi gestiti

Per creare il gruppo di nodi gestiti, esegui questo comando:

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

Il comando crea il gruppo di nodi e registra i nodi nel cluster. Il completamento di questo processo richiede alcuni minuti.

Verifica i nodi

Per verificare che i nodi siano in esecuzione, esegui questo comando:

kubectl get nodes -o wide

L'output mostra i nodi Bottlerocket con il loro stato, la versione di Kubernetes e le informazioni sul sistema operativo.

Esempio di output:

NAME                                           STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                                       KERNEL-VERSION   CONTAINER-RUNTIME
ip-[IP_ADDRESS].us-west-2.compute.internal   Ready    <none>   5m    v1.31.0   [IP_ADDRESS] <none>        Bottlerocket OS 1.20.0 (aws-k8s-1.31)        5.15.0           containerd://1.7.11

Connettiti ai nodi Bottlerocket

I nodi Bottlerocket non includono un server o una shell SSH per impostazione predefinita. Per connetterti ai nodi Bottlerocket per la risoluzione dei problemi, utilizza Gestione sessione di AWS Systems Manager.

Per connetterti a un nodo Bottlerocket, completa i seguenti passaggi:

  1. Recupera l'ID dell'istanza del nodo Bottlerocket dalla console Amazon EC2 o eseguendo questo comando:

    kubectl get nodes -o wide
  2. Utilizza l'ID dell'istanza per avviare una sessione di Gestione sessione. Per ulteriori informazioni sull'avvio di una sessione, consulta Avvio di una sessione (console Systems Manager).

Nota: la policy IAM AmazonSSMManagedInstanceCore nella configurazione del gruppo di nodi consente a Gestione sessione di accedere ai nodi Bottlerocket.

Informazioni correlate

Crea nodi Bottlerocket self-managed

Semplifica il ciclo di vita dei nodi con gruppi di nodi gestiti

Using a Bottlerocket AMI with Amazon EKS (Utilizzo di un'AMI Bottlerocket con Amazon EKS) sul sito web GitHub

AWS UFFICIALEAggiornata 5 mesi fa