Amazon Web Services (AWS) に ArcGIS Enterprise on Kubernetes をデプロイする前に、ArcGIS Enterprise のシステム要件を満たす Amazon Elastic Kubernetes Service (EKS) クラスターを準備する必要があります。
EKS クラスターの準備には、Kubernetes クラスターと対応するノードの設定など、サポートされている環境間で共通の手順、および AWS Identity and Access Management (IAM) ロールの構成など、環境固有の手順が含まれます。
次の手順をよく確認し、環境を準備する方法については、AWS ドキュメントをご参照ください。
- 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 アドレスを使用できます。
- 必要に応じて、シークレットのエンベロープ暗号化を有効化し、Key Management Service (KMS) キーを作成します。
EKS クラスターの ectd に格納されたシークレットのエンベロープ暗号化を有効化することをお勧めします。 これを行うには、対称暗号化キーが Amazon EKS に存在する必要があります。
注意:
クラスターに対してエンベロープ暗号化を有効化すると、無効化することができなくなります。 必要な場合、既存のクラスター上でエンベロープ暗号化を有効化できます。
- EKS クラスターを作成します。
EKS クラスターを作成するときに、前のステップで作成した VPC、サブネット、IAM ロール、KMS キーを参照します。 基になるノードは構成できないため、ArcGIS Enterprise on Kubernetes は AWS Fargate ではサポートされていません。
クラスターの Kubernetes バージョンは、システム要件にリストされているバージョンに一致する必要があります。
- ノード グループ IAM ロールを作成します。
クラスターを作成したら、ワーカー ノード グループを作成する必要があります。 ノード グループを作成するには、関連付けられている EC2 インスタンスがアクセスできる AWS サービスを定義する追加の IAM ロールが必要です。
- ノード グループを作成します。
作成後、クラスターにはスケジュール可能なワーカー ノードがなくなります。 ワークロードをクラスターにデプロイするには、関連付けられているポッドをスピン アップするためのノード グループが少なくとも 1 つ必要です。 今後、クラスターのアップグレードを合理化できるように、管理されたノード グループを使用することをお勧めします。
- kubectl の構成を更新します。
クラスターを作成した後、AWS Command Line Interface (CLI) を使用して、cluster-admin 接続情報を kubeconfig ファイルに抽出します。 次のコマンドを使用します。
aws eks update-kubeconfig -name <CLUSTER_NAME> --region <REGION>
- クラスター IAM ロールを作成します。
Amazon EKS クラスターには、そのクラスターがアクセスできるリソースを定義する IAM ロールが必要です。 ArcGIS Enterprise on Kubernetes には AWS が示す概要以外の要件はありません。
- 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 のデプロイに必要な管理者の労力が軽減されます。
- Load Balancer Controller アドオンをインストールします。
EKS では、管理者はさまざまな方法でトラフィックをクラスターにルーティングできます。 ロード バランサーを使用するには、管理者は Load Balancer Controller をインストールする必要があります。 AWS Load Balancer Controller は、Kubernetes クラスターの AWS Elastic Load Balancer を管理します。
管理者は、デプロイメント プロセス中にデプロイメント スクリプトからロード バランサーをプロビジョニングできます。 スクリプトが実行されると、Load Balancer Controller はネットワーク ロード バランサー (内部または外部)、ターゲット グループ、セキュリティ グループ、他の設定を作成して、ワーカー ノードへのルーティングを管理します。
あるいは、管理者はクラスターレベルの Ingress を使用してトラフィックをルーティングすることもできますが、この場合は追加の手順が必要です。 管理者がクラスターレベルの Ingress コントローラーを使用する場合、スクリプトは ALB (Application Load Balancer) をプロビジョニングしません。 EKS でアプリケーション負荷分散を使用するための追加の手順については、こちらをご参照ください。 Load Balancer Controller は、クラスターレベルの Ingress コントローラーを使用し、ALB、ターゲット グループ、セキュリティ グループ、他の設定を作成して、ワーカー ノードへのルーティングを管理します。
- Amazon EBS CSI Driver アドオンをインストールします。
Amazon EBS CSI Driver は Amazon EKS 1.23 以降の要件で、クラスターで PVC (Persistent Volumes Claims) を使用して EBS ボリュームの動的なプロビジョニングを可能にします。 最初に、IAM ロールと、CSI ドライバーの Kubernetes サービス アカウントを作成します。 次に、CSI ドライバー ワークロードをクラスターにデプロイします。
EBS ボリュームの最新のクラスを使用するには、gp3 タイプを参照するストレージ クラスを作成することをおすすめします。 次のコマンドを使用して、適切な .yaml ファイルをクラスターに適用します。
kubectl apply -f <storageClass.yaml>
詳細については、サンプルのデフォルト ストレージ クラスの .yaml ファイルとサンプルのバックアップ ストレージ クラスの .yaml ファイルをご参照ください。
Kubernetes クラスターに名前空間を作成したら、EKS クラスターを構成して ArcGIS Enterprise にデプロイできます。 デプロイするときは、ロード バランサーを作成するよう ArcGIS Enterprise を設定します。 組織を構成する場合は、作成したストレージ クラスを参照します。