Amazon Elastic Kubernetes Service でのクラスターのデプロイ

Amazon Web Services (AWS)ArcGIS Enterprise on Kubernetes をデプロイする前に、ArcGIS Enterprise のシステム要件を満たす Amazon Elastic Kubernetes Service (EKS) クラスターを準備する必要があります。

EKS クラスターの準備には、Kubernetes クラスターと対応するノードの設定など、サポートされている環境間で共通の手順、および AWS Identity and Access Management (IAM) ロールの構成など、環境固有の手順が含まれます。

次の手順をよく確認し、環境を準備する方法については、AWS ドキュメントをご参照ください。

  1. Amazon Virtual Private Cloud (VPC) を作成します。

    Amazon EKS の要件ArcGIS Enterprise on Kubernetes のスケーラビリティ要件の両方を満たす VPC を作成する必要があります。

    Kubernetes の大規模なデプロイメントでは多数の IP アドレスが消費されます。 クラスターを作成したら、VPC と関連するサブネットの CIDR (Classless Inter-Domain Routing) 範囲は変更できません。

    必要な IP アドレスの数はクラスター内のワークロードの数に大きく依存しますが、スケーラビリティ テストは、最小のサブネットマスクである /18 で各サブネットを構成する必要があることを示しています。 これにより、1 サブネットあたり 16,000 以上の IP アドレスを使用できます。

  2. 必要に応じて、シークレットのエンベロープ暗号化を有効化し、Key Management Service (KMS) キーを作成します。

    EKS クラスターの ectd に格納されたシークレットのエンベロープ暗号化を有効化することをお勧めします。 これを行うには、対称暗号化キーが Amazon EKS に存在する必要があります。

    注意:

    クラスターに対してエンベロープ暗号化を有効化すると、無効化することができなくなります。 必要な場合、既存のクラスター上でエンベロープ暗号化を有効化できます。

  3. EKS クラスターを作成します。

    EKS クラスターを作成するときに、前のステップで作成した VPC、サブネット、IAM ロール、KMS キーを参照します。 基になるノードは構成できないため、ArcGIS Enterprise on KubernetesAWS Fargate ではサポートされていません。

    クラスターの Kubernetes バージョンは、システム要件にリストされているバージョンに一致する必要があります。

  4. ノード グループ IAM ロールを作成します。

    クラスターを作成したら、ワーカー ノード グループを作成する必要があります。 ノード グループを作成するには、関連付けられている EC2 インスタンスがアクセスできる AWS サービスを定義する追加の IAM ロールが必要です。

  5. ノード グループを作成します。

    作成後、クラスターにはスケジュール可能なワーカー ノードがなくなります。 ワークロードをクラスターにデプロイするには、関連付けられているポッドをスピン アップするためのノード グループが少なくとも 1 つ必要です。 今後、クラスターのアップグレードを合理化できるように、管理されたノード グループを使用することをお勧めします。

  6. kubectl の構成を更新します。

    クラスターを作成した後、AWS Command Line Interface (CLI) を使用して、cluster-admin 接続情報を kubeconfig ファイルに抽出します。 次のコマンドを使用します。

    aws eks update-kubeconfig -name <CLUSTER_NAME> --region <REGION>
    
  7. クラスター IAM ロールを作成します。

    Amazon EKS クラスターには、そのクラスターがアクセスできるリソースを定義する IAM ロールが必要です。 ArcGIS Enterprise on Kubernetes には AWS が示す概要以外の要件はありません。

  8. OpenID Connect (OIDC) ID プロバイダーを作成します。

    クラスター内から他の AWS サービスとやり取りするために、AWS では OIDC プロバイダーが推奨されています。 このプロバイダーは Kubernetes クラスターを AWS 組織とフェデレートして、AWS リソースにアクセスする Kubernetes サービス アカウントをマッピングします。 ArcGIS Enterprise on Kubernetes では、AWS Load Balancer Controller と Amazon Elastic Block Store (EBS) Container Storage Interface (CSI) Driver の操作を許可するために、これが推奨されています。 この 2 つのアドオンにより、ArcGIS Enterprise on Kubernetes のデプロイに必要な管理者の労力が大幅に軽減されます。

  9. Load Balancer Controller アドオンをインストールします。

    AWS Load Balancer Controller により、デプロイメント処理中にネットワーク ロード バランサー (内部または外部) をプロビジョニングできます。 また、コントローラーは、ターゲット グループ、セキュリティ グループ、他の設定の作成も行って、ネットワーク ロード バランサーからワーカー ノードまでのルート検索を管理します。

    ロード バランサーを手動で作成した場合、これらの設定を手動で構成する必要があります。 最初に、IAM ロールと Kubernetes サービス アカウントを作成します。 次に、AWS Load Balancer Controller ワークロードをクラスターにデプロイします。

  10. Amazon EBS CSI Driver アドオンをインストールします。

    Amazon EBS CSI Driver は Amazon EKS 1.23 以降の要件で、クラスター内で Persistent Volumes Claims (PVC) を介した EBS ボリュームの動的なプロビジョニングを可能にします。 最初に、IAM ロールと、CSI ドライバーの Kubernetes サービス アカウントを作成します。 次に、CSI ドライバー ワークロードをクラスターにデプロイします。

    EBS ボリュームの最新のクラスを活用するには、gp3 タイプを参照するストレージ クラスを作成することをお勧めします。 次のコマンドを使用して、適切な YAML ファイルをクラスターに適用する必要があります。

    kubectl apply -f <storageClass.yaml>
    

    詳細については、サンプルのデフォルト ストレージ クラス YAML とサンプルのバックアップ ストレージ クラス YAML をご参照ください。

Kubernetes クラスターに名前空間を作成したら、EKS クラスターで ArcGIS Enterprise をデプロイおよび構成できるようになります。 デプロイするときは、ロード バランサーを作成するよう ArcGIS Enterprise に必ず指示してください。 組織を構成する場合は、作成したストレージ クラスを必ず参照してください。