Amazon EKS で Bottlerocket AMI を使用してマネージドノードグループを作成する方法を教えてください。

所要時間2分
0

eksctl を使用して Bottlerocket Amazon マシンイメージ (Bottlerocket AMI) を起動し、Amazon Elastic Kubernetes Service (Amazon EKS) にマネージドノードグループを作成したいと考えています。

解決方法

前提条件

1.    eksctl バージョン 0.124.0 以降を使用していることを確認してください。

2.    次のコマンドを実行してバージョンを確認します。

$ eksctl version

bottlerocket.yaml ファイルを作成する

1.    eksctl をインストールしたターミナルを開きます。次の手順を実行して新しいファイルを作成します。

2.    mybottlerocket-cluster を使用しているクラスターの名前に置き換えてください。名前には、英数字 (大文字と小文字を区別) とハイフンのみを使用できます。先頭はアルファベットでなければならず、100 文字を超えてはなりません。

3.    bottlerocket-nodegroup を使用しているノードグループの名前に置き換えてください。名前には、英数字 (大文字と小文字を区別) とハイフンのみを使用できます。先頭はアルファベットでなければならず、100 文字を超えてはなりません。

4.    インスタンスタイプを指定します。例えば、ARM インスタンスにデプロイするには、m5.xlarge を ARM インスタンスタイプに置き換えます。

5.    eks_bottlerocket を Amazon Elastic Compute Cloud (Amazon EC2) SSH キーペアの名前に置き換えてください。起動したら、SSH を使用してノードに接続します。

**注:**Amazon EC2 SSH キーペアがない場合は、AWS マネジメントコンソールで作成してください。詳細については、Amazon EC2 キーペアと Linux インスタンスを参照してください。

6.    例の中の残りの値をすべ使用している値に置き換えてください。置き換えたら、bottlerocket.yaml ファイルを保存します。

---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
 
metadata:
  name: mybottlerocket-cluster
  region: us-west-2
  version: '1.23'
 
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 が管理するノードグループは、すべてのデフォルトインスタンスタイプに作成できます。これらには、静的スケーリング (T シリーズ)、汎用 (M シリーズ)、コンピューティング最適化 (C シリーズ)、メモリ最適化 (R シリーズ)、Graviton2 ARM ベースのインスタンスタイプがあります。Bottlerocket AMI は、高速コンピューティングインスタンスタイプ (P、G、Inf1) をサポートしていません。

Bottlerocket AMI の詳細については、「Amazon EKS に最適化された 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.operatingSystem
NODE                                          ARCH    OS-Image                                OS
ip-192-168-xx-xx.us-west-2.compute.internal   amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux
ip-192-168-xx-xx.us-west-2.compute.internal   amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux
ip-192-168-xx-xx.us-west-2.compute.internal   amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux

Bottlerocket AMI ノードへの接続 (オプション)

AWS Systems Manager (AWS SSM) セッションを通じて新しい Bottlerocket ノードに接続します。ノードインスタンスロールの AWS SSM 権限をすでにオンにしているため、AWS SSM エージェントはノード上で実行されています。AWS SSM の詳細については、「AWS Systems Manager とは?」を参照してください。

1.    次のコマンドを実行してインスタンス 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.providerID
NODE                                           ARCH    OS-Image                                OS      InstanceId
ip-192-168-xx-xx.us-west-2.compute.internal    amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux   aws:///us-west-2b/i-0cf32f13f60c2f501
ip-192-168-xx-xx.us-west-2.compute.internal    amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux   aws:///us-west-2b/i-0f31328a5d21cb092
ip-192-168-xx-xx.us-west-2.compute.internal    amd64   Bottlerocket OS 1.11.1 (aws-k8s-1.23)   linux   aws:///us-west-2b/i-08c218b729ecf9b5d

SSM セッションを開始する

デフォルトでは、Bottlerocket には containerd の別のインスタンスで実行されるコントロールコンテナがあります。このコンテナは AWS SSM エージェントを実行し、Bottlerocket ノードでコマンドを実行したり、インタラクティブなシェルセッションを開始したりできます。

1.    以前に特定したインスタンスの 1 つを選択し、SSM セッションを起動します。次の例は、i-0cf32f13f60c2f501 インスタンスの SSM セッションコマンドを示しています。

$ 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 とは

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ