Amazon EKS リソーススケーリング実行ブロック - Amazon Application Recovery Controller (ARC)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EKS リソーススケーリング実行ブロック

EKS リソーススケーリング実行ブロックを使用すると、マルチリージョンリカバリプロセスの一部として EKS リソースをスケーリングできます。実行ブロックを設定するときは、非アクティブ化されているリージョンの容量に対するスケーリングする容量の割合を定義します。

EKS アクセスエントリのアクセス許可を設定する

EKS リソーススケーリングの実行ブロックを追加する前に、EKS クラスター内の Kubernetes リソースでアクションを実行するために必要なアクセス許可をリージョンスイッチに提供する必要があります。リージョン切り替えへのアクセスを提供するには、次のリージョン切り替えアクセスポリシーを使用して、リージョン切り替えが計画の実行に使用する IAM ロールの EKS アクセスエントリを作成する必要があります。 arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

リージョン切り替え EKS アクセスポリシー

以下の情報は、EKS アクセスポリシーに関する詳細を提供します。

名前: AmazonARCRegionSwitchScalingPolicy

ポリシー ARN: arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

Kubernetes API グループ Kubernetes resources Kubernetes 動詞 (許可)

*

*/スケール

の取得、更新

*

*/ステータス

get

オートスケーリング

水平ポッドオートスケーラー

取得、パッチ適用

リージョンスイッチの EKS アクセスエントリを作成する

次の例では、リージョンスイッチが Kubernetes リソースに対して特定のアクションを実行できるように、必要なアクセスエントリとアクセスポリシーの関連付けを作成する方法について説明します。この例では、アクセス許可は、IAM ロール の EKS クラスター my-cluster の名前空間 my-namespace1 に適用されますarn:aws:iam::555555555555:role/my-role

これらのアクセス許可を設定するときは、実行ブロック内の両方の EKS クラスターに対してこれらのステップを実行してください。

前提条件

開始する前に、クラスターの認証モードを API_AND_CONFIG_MAPまたは に変更しますAPI。認可モードを変更すると、アクセスエントリの API が追加されます。詳細については、「Amazon EKS ユーザーガイド」の「アクセスエントリを使用するように認証モードを変更する」を参照してください。

アクセスエントリを作成する

最初のステップでは、次のような AWS CLI コマンドを使用してアクセスエントリを作成します。

aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:user/my-user --type STANDARD

詳細については、「Amazon EKS ユーザーガイド」の「アクセスエントリの作成」を参照してください。

アクセスエントリの関連付けを作成する

次に、次のような AWS CLI コマンドを使用して、リージョンスイッチアクセスポリシーへの関連付けを作成します。

aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1 --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

詳細については、「Amazon EKS ユーザーガイド」の「アクセスポリシーとアクセスエントリの関連付け」を参照してください。

実行ブロックの 2 番目の EKS クラスターを他のリージョンで繰り返して、両方のクラスターにリージョンスイッチでアクセスできるようにします。

設定

EKS リソーススケーリング実行ブロックを設定するには、まず正しいアクセス許可が設定されていることを確認します。詳細については、「EKS アクセスエントリのアクセス許可を設定する」を参照してください。

リージョンスイッチは現在、apps/v1、Deployment、apps/v1 の ReplicaSet リソースをサポートしています。

次に、実行ブロック設定に次の値を入力します。

  1. ステップ名: 名前を入力します。

  2. ステップの説明 (オプション): ステップの説明を入力します。

  3. アプリケーション名: myApplication など、EKS アプリケーションの名前を入力します。

  4. Kubernetes リソースの種類: デプロイなど、アプリケーションのリソースの種類を入力します。

  5. リージョンのリソース: リージョンごとに、EKS クラスター ARN、リソース名前空間など、EKS クラスターの情報を入力します。

  6. アクティブ化されたリージョンの容量と一致する割合: アクティブ化されたリージョンで一致するソースリージョンで実行中のポッドの希望する割合を入力します。

  7. キャパシティモニタリングアプローチ: ドロップダウンメニューで、EKS リソースのモニタリングアプローチを選択します。

  8. タイムアウト: タイムアウト値を入力します。

次に、保存ステップを選択します。

仕組み

プランの実行中、リージョンスイッチは、アクティブ化するリージョン内のターゲットリソースについて、過去 24 時間のサンプルされたレプリカの最大数を取得します。次に、次の式を使用して、送信先リソースに必要なレプリカ数を計算します。 ceil(percentToMatch * Source replica count)

レプリケート先の準備完了レプリカ数が希望する値よりも少ない場合、リージョンスイッチはレプリケート先のリソースレプリカ値を希望する容量にスケーリングします。レプリカの準備が整うまで待機し、必要に応じてノードの自動スケーラーを活用してノード容量を増やします。

オプションの hpaNameフィールドが空でない場合、リージョンは HorizontalPodAutoscaler にパッチを適用し、次のパッチを使用して実行中または実行後に自動スケールダウンを防止します。 {"spec":{"behavior":{"scaleDown":{"selectPolicy":"Disabled"}}}}

パッチ内のリソースのレプリカフィールドと HorizontalPodAutoscaler フィールドを無視するように、GitOps ツールなどのドリフト修正ツールを必ず設定してください。

計画評価の一環として評価されるもの

リージョンスイッチがプランを評価すると、リージョンスイッチは設定された EKS 実行ブロックとアクセス許可に対していくつかのチェックを実行します。リージョンスイッチは、プランの IAM ロールに EKS クラスターを記述し、関連するアクセスエントリポリシーを一覧表示するための正しいアクセス許可があることを確認します。リージョンスイッチは、IAM ロールが正しいアクセスエントリポリシーに関連付けられていることも検証するため、リージョンスイッチには Kubernetes リソースを操作するために必要なアクセス許可が付与されます。最後に、リージョンスイッチは、設定された EKS クラスターと Kubernetes リソースが存在することを確認します。

さらに、リージョンスイッチは、必要なモニタリングデータ (Kubernetes レプリカ数) が正常に収集および保存されていることをチェックし、リージョンスイッチプランの実行に必要な実行中のポッドの数をキャプチャします。