AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Bottlerocket AMI를 사용하여 Amazon EKS에서 관리형 노드 그룹을 생성하려면 어떻게 해야 하나요?

3분 분량
0

Bottlerocket Amazon Machine Image(AMI) 및 eksctl을 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS)에서 Bottlerocket 관리형 노드 그룹을 생성하는 방법을 배우고 싶습니다.

해결 방법

사전 요구 사항

해결 단계를 완료하기 전에 eksctl 버전 0.124.0 이상이 있는지 확인합니다.

버전을 확인하려면 다음 명령을 실행합니다.

$ eksctl version

bottlerocket.yaml 파일 생성

eksctl을 설치한 터미널을 엽니다. 그런 다음, 다음 예제를 사용하여 bottlerocket.yaml 파일을 생성하고 저장합니다.

참고:

  • mybottlerocket-cluster를 자신의 클러스터 이름으로 바꿉니다. 이름에는 대소문자를 구분하는 하이픈과 영숫자만 포함될 수 있습니다. 알파벳 문자로 시작해야 하며 100자를 초과할 수 없습니다.
  • bottlerocket-nodegroup을 노드 그룹의 이름으로 바꿉니다. 이름에는 대소문자를 구분하는 하이픈과 영숫자만 포함될 수 있습니다. 알파벳 문자로 시작해야 하며 100자를 초과할 수 없습니다.
  • 인스턴스 유형을 지정합니다. 예를 들어 Arm 인스턴스에 배포하려면 m5.xlarge를 Arm 인스턴스 유형으로 바꿉니다.
  • eks_bottlerocket를 Amazon Elastic Compute Cloud(Amazon EC2) SSH 키 페어의 이름으로 바꿉니다. 노드를 시작한 후 SSH를 사용하여 노드에 연결합니다.
    참고: Amazon EC2 SSH 키 페어가 없는 경우 AWS Management Console에서 하나를 생성합니다. 자세한 내용을 보려면 Amazon EC2 키 페어 및 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

참고: 범용, 컴퓨팅 최적화, 메모리 최적화 및 스토리지 최적화 인스턴스 유형에 대한 Bottlerocket 관리형 노드 그룹을 생성할 수 있습니다. Bottlerocket AMI는 가속 컴퓨팅 인스턴스 유형을 지원하지 않습니다.

노드 그룹을 생성하고 EKS 클러스터에 해당 노드를 나열합니다

  1. 다음 eksctl 명령을 실행하여 노드 그룹을 생성합니다.

    $ eksctl create nodegroup -f bottlerocket.yaml[✔]  created 1 nodegroup(s) in cluster "mybottlerocket-cluster"
  2. EKS 클러스터의 노드와 속성을 나열합니다.

    $ 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

Bottlerocket AMI 노드에 연결(선택 사항)

AWS Systems Manager 세션을 통해 새 Bottlerocket 노드에 연결합니다. AWS Systems Manager Agent(SSM Agent)는 노드 인스턴스 역할에 대한 Systems Manager 권한을 이미 설정했기 때문에 노드에서 실행됩니다. 

인스턴스 ID를 찾으려면 다음 명령을 실행합니다.

$ 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

Systems Manager 세션 시작

기본적으로 Bottlerocket에는 별도의 containerd 인스턴스에서 실행되는 제어 컨테이너가 있습니다. 이 컨테이너는 SSM Agent를 실행하며 Bottlerocket 노드에서 명령을 실행하거나 대화형 셸 세션을 시작할 수 있도록 합니다.

인스턴스를 선택하고 Systems Manager 세션을 시작합니다. 다음 예제는 i-0cf32f13f60c2f501 인스턴스에 대한 Systems Manager 세션 명령을 보여줍니다.

$ 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!

관련 정보

자체 관리형 Bottlerocket 노드 시작

Amazon EKS란 무엇인가요?

인스턴스 유형(Amazon EC2)

AWS 공식
AWS 공식업데이트됨 10달 전
댓글 없음