¿Cómo utilizo la AMI de Bottlerocket para crear un grupo de nodos gestionado en Amazon EKS?
Quiero aprender a crear un grupo de nodos gestionado por Bottlerocket en Amazon Elastic Kubernetes Service (Amazon EKS) con la imagen de máquina de Amazon (AMI) de Bottlerocket y eksctl.
Resolución
Requisito previo
Antes de completar los pasos de resolución, confirme que tiene la versión 0.124.0 o posterior de eksctl.
Para comprobar la versión, ejecute el siguiente comando:
$ eksctl version
Cree un archivo bottlerocket.yaml
Abra la terminal en la que instaló eksctl. A continuación, use el siguiente ejemplo para crear y guardar el archivo bottlerocket.yaml.
Nota:
- Sustituya mybottlerocket-cluster por el nombre de su clúster. El nombre solo puede contener guiones y caracteres alfanuméricos que distingan entre mayúsculas y minúsculas. Debe comenzar con un carácter alfabético y no puede tener más de 100 caracteres.
- Sustituya bottlerocket-nodegroup por un nombre para su grupo de nodos. El nombre solo puede contener guiones y caracteres alfanuméricos que distingan entre mayúsculas y minúsculas. Debe comenzar con un carácter alfabético y no puede tener más de 100 caracteres.
- Especifique el tipo de instancia. Por ejemplo, para implementar en una instancia de Arm, reemplace m5.xlarge por un tipo de instancia de Arm.
- Sustituya eks_bottlerocket por el nombre de un par de claves SSH de Amazon Elastic Compute Cloud (Amazon EC2). Después de lanzar los nodos, utilice SSH para conectarse a ellos.
Nota: Si no tiene un par de claves SSH de Amazon EC2, cree uno en la consola de administración de AWS. Para obtener más información, consulte Pares de claves de Amazon EC2 e instancias de Linux.
--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: mybottlerocket-cluster region: us-west-2 version: '1.27' managedNodeGroups: - name: bottlerocket-nodegroup instanceType: m5.xlarge minSize: 2 maxSize: 4 desiredCapacity: 3 amiFamily: Bottlerocket labels: { role: br-worker } tags: nodegroup-type: Bottlerocket ssh: allow: true publicKeyName: eks_bottlerocket
Nota: Puede crear grupos de nodos administrados por Bottlerocket para tipos de instancias de uso general, optimizadas para computación, optimizadas para memoria y optimizadas para almacenamiento. La AMI de Bottlerocket no admite los tipos de instancias de computación acelerada.
Cree el grupo de nodos y enumere sus nodos en el clúster EKS
-
Ejecute el siguiente comando eksctl para crear un grupo de nodos:
$ eksctl create nodegroup -f bottlerocket.yaml[✔] created 1 nodegroup(s) in cluster "mybottlerocket-cluster"
-
Enumere los nodos del clúster de EKS y sus atributos:
$ kubectl get nodes -o=custom-columns=NODE:.metadata.name,ARCH:.status.nodeInfo.architecture,OS-Image:.status.nodeInfo.osImage,OS:.status.nodeInfo.operatingSystemNODE ARCH OS-Image OS ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux
Conéctese a los nodos AMI de Bottlerocket (opcional)
Conéctese a los nuevos nodos de Bottlerocket mediante una sesión de AWS Systems Manager. AWS Systems Manager Agent (SSM Agent) se ejecuta en el nodo porque ya ha activado el permiso de Systems Manager para la función de instancia del nodo.
Ejecute el siguiente comando para buscar los ID de instancia:
$ kubectl get nodes -o=custom-columns=NODE:.metadata.name,ARCH:.status.nodeInfo.architecture,OS-Image:.status.nodeInfo.osImage,OS:.status.nodeInfo.operatingSystem,InstanceId:.spec.providerIDNODE ARCH OS-Image OS InstanceId ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-0cf32f13f60c2f501 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-0f31328a5d21cb092 ip-192-168-xx-xx.us-west-2.compute.internal amd64 Bottlerocket OS 1.17.0 (aws-k8s-1.27) linux aws:///us-west-2b/i-08c218b729ecf9b5d
Iniciar una sesión de Systems Manager
De forma predeterminada, Bottlerocket tiene un contenedor de control que se ejecuta en una instancia independiente de containerd. Este contenedor ejecuta SSM Agent y le permite ejecutar comandos o iniciar sesiones de shell interactivas en los nodos de Bottlerocket.
Elija una instancia e inicie una sesión de Systems Manager. El siguiente ejemplo muestra un comando de sesión de Systems Manager para la instancia i-0cf32f13f60c2f501:
$ aws ssm start-session --target i-0cf32f13f60c2f501 --region us-west-2 Starting session with SessionId: EKS-Test-User-0077e4c89ad2bc888 Welcome to Bottlerocket's control container!
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 10 meses
- OFICIAL DE AWSActualizada hace un mes
- OFICIAL DE AWSActualizada hace 2 meses