Amazon EMR on EKS の垂直的自動スケーリングのセットアップ
このトピックは、Amazon EKS クラスターが垂直的自動スケーリングを使用して Amazon EMR Spark ジョブを送信できるように準備するのに役立ちます。セットアッププロセスでは、以下のセクションのタスクを確認または完了する必要があります。
トピック
前提条件
クラスターに垂直的自動スケーリング Kubernetes 演算子をインストールする前に、以下のタスクを完了します。前提条件のいずれかを既に完了している場合は、その前提条件をスキップして、次の前提条件に進むことができます。
-
AWS CLI の最新バージョンのインストールまたは更新 – AWS CLI を既にインストールしている場合は、最新バージョンであることを確認してください。
-
kubectl をインストールする – kubectl は Kubernetes API サーバーと通信するために使用するコマンドラインツールです。Amazon EKS クラスターに垂直的自動スケーリング関連のアーティファクトをインストールしてモニタリングするには kubectl が必要です。
-
Operator SDK をインストールする
— Amazon EMR on EKS は、クラスターにインストールする垂直的自動スケーリング演算子の存続期間中、Operator SDK をパッケージマネージャーとして使用します。 -
Docker をインストールする
— Amazon EKS クラスターにインストールする垂直的自動スケーリング関連の Docker イメージを認証して取得するには、Docker CLI にアクセスする必要があります。 -
Kubernetes メトリクスサーバーをインストールする – まずメトリクスサーバーをインストールして、垂直ポッドオートスケーラーが Kubernetes API サーバーからメトリクスを取得できるようにする必要があります。
-
Amazon EKS – eksctl の使用開始 (バージョン 1.24 以降) — 垂直的自動スケーリングは Amazon EKS バージョン 1.24 以降でサポートされています。クラスターを作成したら、Amazon EMR で使用できるように登録します。
-
Amazon EMR ベースイメージ URI (リリース 6.10.0 以上) を選択する — 垂直的自動スケーリングは Amazon EMR リリース 6.10.0 以降でサポートされています。
Amazon EKS クラスターに Operator Lifecycle Manager (OLM) をインストールする
Operator SDK CLI を使用して、以下の例に示すように、垂直的自動スケーリングを設定する Amazon EMR on EKS クラスターに Operator Lifecycle Manager (OLM) をインストールします。セットアップが完了すると、OLM を使用して Amazon EMR 垂直的自動スケーリング演算子のライフサイクルをインストールして管理できます。
operator-sdk olm install
インストールを検証するには、以下の olm status
コマンドを実行します。
operator-sdk olm status
コマンドが以下の出力例のような成功した結果を返すことを確認します。
INFO[0007] Successfully got OLM status for version X.XX
インストールが成功しなかった場合は、「Amazon EMR on EKS 垂直自動スケーリングのトラブルシューティング」を参照してください。
Amazon EMR on EKS の垂直的自動スケーリング演算子をインストールする
以下の手順を使用して Amazon EKS クラスターに垂直的自動スケーリング演算子をインストールします。
-
インストールを完了するために使用する以下の環境変数を設定します。
-
$REGION
はクラスターの AWS リージョンを指します。例えば、us-west-2
と指定します。 -
$ACCOUNT_ID
はリージョンの Amazon ECR アカウント ID を指します。詳細については、「リージョン別の Amazon ECR レジストリアカウント」を参照してください。 -
$RELEASE
はクラスターに使用したい Amazon EMR リリースを指します。垂直的自動スケーリングでは、Amazon EMR リリース 6.10.0 以降を使用する必要があります。
-
-
次に、演算子の Amazon ECR レジストリへの認証トークンを取得します。
aws ecr get-login-password \ --region
region-id
| docker login \ --username AWS \ --password-stdin $ACCOUNT_ID.dkr.ecr.region-id
.amazonaws.com -
Amazon EMR on EKS 垂直的自動スケーリング演算子を以下のコマンドでインストールします。
ECR_URL=$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com && \ REPO_DEST=dynamic-sizing-k8s-operator-olm-bundle && \ BUNDLE_IMG=emr-$RELEASE-dynamic-sizing-k8s-operator && \ operator-sdk run bundle \ $ECR_URL/$REPO_DEST/$BUNDLE_IMG\:latest
これにより、Amazon EKS クラスターのデフォルト名前空間に垂直的自動スケーリング演算子のリリースが作成されます。このコマンドを使用して別の名前空間にインストールします。
operator-sdk run bundle \ $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/dynamic-sizing-k8s-operator-olm-bundle/emr-$RELEASE-dynamic-sizing-k8s-operator:latest \ -n
operator-namespace
注記
指定した名前空間が存在しない場合、OLM は演算子をインストールしません。詳細については、「Kubernetes 名前空間が見つからない」を参照してください。
-
kubectl Kubernetes コマンドラインツールを使用して、演算子が正常にインストールされたことを確認します。
kubectl get csv -n
operator-namespace
kubectl
コマンドは、新しくデプロイされた垂直的自動スケーラー演算子を [フェーズ] ステータスが [成功] で返します。インストールやセットアップに問題がある場合は、「Amazon EMR on EKS 垂直自動スケーリングのトラブルシューティング」を参照してください。