システム要件

10.9 で ArcGIS Enterprise on Kubernetes を実行するために必要な最低限のハードウェアおよびインフラストラクチャについて以下に説明します。

サポート環境

システム要件および仕様は、注意書きがない限りサポートされているすべての環境に適用されます。 このリリースでは、次の環境がサポートされています。

  • オンプレミス データ センター
    • Red Hat OpenShift Container Platform 4.6 以降
  • クラウドのマネージド Kubernetes サービス
    • Microsoft Azure Kubernetes Service (AKS)
    • Amazon Elastic Kubernetes Service (EKS)

コンテナー レジストリ

ArcGIS Enterprise on Kubernetes のコンテナー イメージは、プライベートの Docker Hub リポジトリからアクセスできます。 Esri は、ArcGIS Enterprise on Kubernetes をデプロイしているユーザーに、このリポジトリへのアクセス権を提供します。 詳細については、Esri 担当者にお問い合わせください。

Esri ライセンス

デプロイしている間に ArcGIS Enterprise 組織を認証するには、JSON 形式のユーザー タイプ ライセンス ファイル (*.json ファイル)、および ECP または PRVC 形式のサーバー ライセンス ファイル (*.ecp または *.prvc ファイル) が必要です。 これらのライセンス ファイルを取得するには、「ライセンス アクションの実行」権限を使用して My Esri にアクセスします。

  • My Esri にサイン インします。
  • [組織] > [ライセンス] を選択します。
  • [Esri 製品のライセンス使用][開始] をクリックします。
  • [製品] には、ArcGIS Enterprise を選択します。[バージョン] には、目的の ArcGIS Enterprise のバージョンを選択します。[ライセンス タイプ] リストから、ArcGIS Server および Portal for ArcGIS 用のライセンス ファイルを生成するための手順を実行し、該当する場合は、サーバー ロール、ユーザー タイプおよびアプリケーションをそれらのライセンス ファイルに含めます。

Kubernetes クラスター

ArcGIS Enterprise on Kubernetes をデプロイするには、上記のプラットフォームのいずれかに Kubernetes クラスターが必要です。 サポートされている各環境で、Kubernetes クラスターのバージョンは 1.19 以降である必要があります。

名前空間

ArcGIS Enterprise on Kubernetes は、独自の専用名前空間が必要です。 名前空間は、デプロイメントスクリプトの実行前に作成しておく必要があります。 また、ArcGIS Enterprise on Kubernetes の各デプロイメントに専用の名前空間が必要です。

計算

ArcGIS Enterprise on Kubernetes は、3 つのアーキテクチャ プロファイルのいずれかを使用してデプロイされます。 リソース (CPUメモリ) の要求と制限および全体的な計算要件の推奨事項は、選択したプロファイルによって異なります。 各プロファイルの推奨事項を以下に示します。

各アーキテクチャ プロファイルの最小ノード要件は以下のとおりです。 各ワーカー/エージェント ノードには、8 CPU および 32 GiB のメモリ以上を推奨します。

アーキテクチャ プロファイル最小ワーカー/エージェント ノード最小 CPU の合計最小 GiB の合計

標準の可用性

3

24

96

高い可用性

4

32

128

開発

2

16

64

注意:

ArcGIS Enterprise on Kubernetes は、x86_64 アーキテクチャ (64 ビット) に準拠した CPU のみでサポートされています。

ArcGIS Enterprise on Kubernetes デプロイメント内のポッドは、クラスター内のワーカー ノード全体に分散しています。 デプロイメントを拡張する場合や、別の ArcGIS Enterprise デプロイメントをクラスターに追加する場合は、ハードウェアを適切にプロビジョニングする必要があります。 これには、ノードあたりの最大ポッド数のデフォルト値を増やす必要がある場合があります。 最初に作成されるポッドの数は、アーキテクチャ プロファイルによって異なります。 水平方向に拡張するか、新しい機能を追加すると、ポッド数が増加します。

リソース クォータ

ArcGIS Enterprise on Kubernetes のポッドは、CPU およびメモリへの要求と制限を定義しています。 名前空間に ResourceQuota オブジェクトがある場合は、クォータはすべてのポッドの要求と制限の合計より高い必要があります。 これらの値は、下で説明するように、選択したアーキテクチャ プロファイルによって異なります。

クラスター ノードが適切に機能するように、要求リソースの少なくとも 10% は確保しておくことをお勧めします。

上記の確保に基づくと、各プロファイルのクォータの推奨事項は次のとおりです。 示されている制限値はプレースホルダーで、実際のスケーラビリティ要件に基づいて構成する必要があります。

標準の可用性プロファイル:

spec: 
    hard: 
      limits.cpu: "120" 
      limits.memory: 196Gi 
      requests.cpu: "22" 
      requests.memory: 86Gi

高い可用性プロファイル:

spec: 
    hard: 
      limits.cpu: "132" 
      limits.memory: 256Gi 
      requests.cpu: "28" 
      requests.memory: 108Gi

開発プロファイル:

spec: 
    hard: 
      limits.cpu: "86" 
      limits.memory: 154Gi 
      requests.cpu: "14" 
      requests.memory: 58Gi

セキュリティ

以下に、ArcGIS Enterprise on Kubernetes のセキュリティ要件を説明します。

ロールベースのアクセス制御

Kubernetes クラスターでロールベースのアクセス制御 (RBAC) が有効になっている必要があります。 ArcGIS Enterprise on Kubernetes のデプロイでは、cluster-admin 権限は必要ありません。 cluster-admin 権限がない場合、ユーザーは最小の名前空間管理権限を持っている必要があります。 名前空間に RoleBinding を作成することで、ユーザーに defaultClusterRole 管理権限を割り当てることができます。

Pod セキュリティ ポリシー (OpenShift のセキュリティコンテキストの制約) と仮想メモリ

ArcGIS Enterprise on Kubernetes は Elasticsearch をデプロイして ArcGIS Enterprise の組織のさまざまな機能をサポートします。 デフォルトでは、Elasticsearch は mmapfs ディレクトリを使用して必要なインデックスを格納します。 オペレーティング システムのデフォルトの mmap 数の制限は、デプロイメントには不十分です。 Elasticsearch は、vm.max_map_count のデフォルト値として 262144 を推奨します。 デフォルト値を変更するには、各ノードで上位 (ルート) 権限が必要です。

Kubernetes クラスターで、コンテナーを権限付きまたは権限なしとして実行できるかどうかに応じて、次のアクションが必要です。

  • 権限付きで実行 - ArcGIS Enterprise on Kubernetes は、Elasticsearch を実行しているノードで権限付きの init コンテナーを実行します。追加アクションは不要です。
  • 権限なしで実行 - Kubernetes クラスターに Pod セキュリティが定義され、コンテナーを権限付きとして実行できない場合は、次のオプションを適用する必要があります。
    • オプション 1 - ArcGIS Enterprise on Kubernetes デプロイメントスクリプトが、コンテナーを実行する名前空間でサービス アカウントを作成します。 デフォルトのサービス アカウントは rcgis-admin-serviceaccount です。 クラスターに Pod セキュリティ ポリシーが含まれている場合は、サービス アカウントがコンテナーを権限付きで実行できるようにする必要があります。 OpenShift の場合は、ユーザー セクションに以下を追加することで、このサービス アカウントに、権限付きのセキュリティ コンテキスト制約へのアクセスを許可することができます。
      “-system:serviceaccount: <Namespace>:arcgis-admin-serviceaccount"
      
    • オプション 2 - 権限付きのコンテナー実行をサービス アカウントに許可できない場合は、次のコマンドをルートとして実行し、各ノードを手動で準備する必要があります。
      sysctl -w vm.max_map_count=262144
      

ノードの準備ができたら、権限付きコンテナーを実行しないよう、デプロイメントスクリプトを次のように記述する必要があります。

  • /setup/.install/arcgis-enterprise/arcgis-enterprise.properties ファイルに移動します。
  • "ALLOWED_PRIVILEGED_CONTAINERS=${ALLOWED_PRIVILEGED_CONTAINERS:-true}""ALLOWED_PRIVILEGED_CONTAINERS=${ALLOWED_PRIVILEGED_CONTAINERS:-false}" に更新します。
  • ファイルを保存します。

デプロイメントスクリプトは、init コンテナーを権限付きとして実行しません。

KubernetesNetworkPolicies を使用する場合、中断されないポッド間通信とポッドからサービスへの通信が ArcGIS Enterprise の名前空間で許可されていることを確認します。

また、名前空間内のポッドが Kubernetes API サーバーにアクセスできることを確認します。 API サーバーには、デフォルトの名前空間内にある Kubernetes という名前のサービスを通じてアクセス可能です。 デフォルトの名前空間内のポッドは、kubernetes.default.svc ホスト名を使用して API サーバーをクエリします。

ネットワーク

ネットワーク要件には、完全修飾ドメイン名とロード バランサーが含まれます。 それぞれの詳細は次のとおりです。

完全修飾ドメイン名

ArcGIS Enterprise on Kubernetes は、完全修飾ドメイン名 (FQDN) (たとえば map.company.com) が必要です。 完全修飾ドメイン名は、既存のドメイン名システム (DNS)、または Amazon Route 53 などのクラウド DNS サービスを使用して作成することができます。 デプロイ後、DNS レコードを作成できますが、その値はデプロイしている間に指定する必要があります。 このリリースでは、デプロイ後に FQDN を変更することはできません。

ロード バランサー

各ワーカー ノードでトラフィックを転送するには、ロード バランサーが必要です。 AKS または EKS を使用している場合は、デプロイメントスクリプトから次のロード バランサーをプロビジョニングできます。手動による構成は不要です。

  • Azure Load Balancer (パブリック向けまたは内部向け) - プロビジョニングされる静的なパブリック IP アドレスおよび DNS ラベルは、デプロイメントスクリプトで指定できます。
  • AWS Network Load Balancer および Classic Load Balancer (インターネット向けまたは内部向け) - その他のロード バランシング サービスを使用できます。ただし、クラスター ノードごとに手動で構成する必要があります。

OpenShift Container Platform は、ingress コントローラー サービスに向いているときにルートを設定できます。

ingress コントローラー サービスの NodePort のワーカー ノードに向いている自己管理ロード バランサーを使用することができます。 詳細については、ロード バランサーのデプロイメントガイドのパラメーターの説明をご参照ください。

注意:
AKS での Azure CNI プラグインは、このリリースではサポートされていません。

ストレージ

ArcGIS Enterprise on Kubernetes は、システム ストレージとして永続ボリューム (PVs) が必要です。 PVs は動的または静的なボリュームとしてプロビジョニングできます。 いずれのタイプの PVs を作成する場合も、サイズを大きくしたりラベルを変更したりしてカスタマイズできます。 ArcGIS Enterprise のステートフル ワークロードには、リレーショナル データベース管理システムと NoSQL データベースが含まれます。 EBS ボリューム、Azure ディスク、vSphereVolume など、低遅延のブロック ストレージ デバイスの使用をお勧めします。

これらの永続ボリュームはデータと設定を格納するため、制限付きセキュリティ ポリシーを使用して保護する必要があります。 NFS、Azure ファイル、Gluster など、ファイル ベースのストレージに基づく永続ボリュームの場合、ディレクトリに対する権限が不正なアクセスを防ぐように設定されていることを確認します。 EBS ボリューム、Azure ディスク、iSCSI などのブロック ストレージの場合は、ブロック デバイスがアクセスを必要とするユーザーのみに制限されていることを確認します。

ストレージ ボリュームの説明と使用目的は次のとおりです。

  • メモリ内 - 一時システム リソースを格納します。
  • アイテム パッケージ - 公開ワークフローをサポートするサイズの大きいアップロードとパッケージを格納します。
  • オブジェクト - アップロードおよび保存されたコンテンツ、ホスト タイル/イメージ レイヤー キャッシュ、およびジオプロセシングの出力を格納します。 デプロイメント用に 4 つ必要です。
  • キュー - 非同期ジオプロセシング ジョブを格納します。
  • リレーショナル - ホスト フィーチャ データと、カスタマイズや構成設定などの管理面の情報を格納します。 デプロイメント用に 2 つ必要です。
  • 時空間およびインデックス - ホスト フィーチャ データのほか、ログとインデックスを格納するストレージを提供します。リアルタイム データおよびビッグ データの視覚化と解析をサポートします。
  • 使用状況指標ビューアー - GIS サービスの使用状況を表示するデフォルトおよびカスタム ダッシュボードを格納します。
  • 使用状況指標データ - GIS サービス使用状況データを格納します。

組織のニーズに合ったストレージ要件を検討し、各 PV のサイズを状況に応じて適切に定義してください。

静的 PVs

デプロイの前に静的 PVs のプロビジョニングを行っている場合は、次の仕様およびラベルの使用をお勧めします。

各アーキテクチャ プロファイルに必要な PVs の数が提供されています。

体積デプロイメントプロファイル標準の可用性プロファイル高い可用性プロファイル

in-memory-volume

1

1

1

item-packages-volume

1

2

2

object-volume

1

4

12

queue-volume

1

2

2

relational-volume

2

2

2

spatiotemporal-and-index-volume

1

3

5

usage-metric-volume

1

1

1

usage-metric-viewer-volume

1

1

1

セットアップ ウィザードを使用して組織サイトを構成するとき、次の仕様 (ボリューム名、サイズ、アプリ、層) がボリュームのバインドに使用されます。ただし、これらは必要に応じてカスタマイズできます。

体積GiB 単位の容量 (最小)アクセス モードラベル (デフォルト)

in-memory-volume

16

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=ignite

item-packages-volume

16

ReadWriteOnce

arcgis/tier=api,

arcgis/app=sharing

object-volume

16

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=minio

queue-volume

16

ReadWriteOnce

arcgis/tier=queue,

arcgis/app=rabbitmq

relational-volume

16

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=postgres

spatiotemporal-and-index-volume

16

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=elasticsearch

usage-metric-volume

30

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=prometheus

usage-metric-viewer-volume

1

ReadWriteOnce

arcgis/tier=storage,

arcgis/app=grafana

動的 PVs

動的なプロビジョニングの場合、StorageClass が必要です。 セットアップ ウィザードを使用して組織サイトを構成するとき、StorageClass のデフォルト名は arcgis-storage-default です。

StorageClass の reclaimPolicy パラメーターは retain に設定する必要があります。

注意:
すべての VM タイプが Azure のプレミアム ディスクをサポートしているわけではありません。 プレミアム ディスクは、VM タイプがサポートしている場合に使用します。
  • 以下は、AKS で Azure Premium ディスクにより StorageClass を定義した例です。
    kind: StorageClass 
    apiVersion: storage.k8s.io/v1 
    metadata: 
      name: arcgis-storage-default 
    provisioner: kubernetes.io/azure-disk 
    parameters: 
      kind: Managed 
      storageaccounttype: Premium_LRS 
    reclaimPolicy: Retain
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    
  • 以下は、EKS で、GP2 タイプの EBS ボリュームにより StorageClass を定義した例です。
    kind: StorageClass 
    apiVersion: storage.k8s.io/v1 
    metadata: 
      name: arcgis-storage-default  
    provisioner: kubernetes.io/aws-ebs 
    parameters: 
      fsType: ext4 
      type: gp2 
    reclaimPolicy: Retain
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    

AKS または EKS クラスターとともに提供されるデフォルトのストレージクラスを使用することもできます。 AKS では、default (azure disk) または managed-premium ストレージ クラスです。 EKS では、GP2 ストレージ クラスです。

クライアント ワークステーション

デプロイメントスクリプトは、bash シェルを使用してリモートのクライアント ワークステーションから実行できる Bash スクリプトです。

クライアント ワークステーションの設定時に以下が必要です (ダウンロード用リンクを記載しています)。

  • Kubectl
  • 環境固有のコマンド ライン インターフェイス (CLI)

Kubectl は、デプロイメントスクリプトの実行前に必ず必要です。 Kubectl のインストールとセットアップを使用して Kubernetes コマンド ライン ツールをダウンロードします。

デプロイメントを管理する場合は、環境固有のコマンド ライン ツールを使用できます。 次のリンクを使用して、環境固有の CLI をダウンロードしてください。

TLS 証明書

ArcGIS Enterprise on Kubernetes は、NGINX ベースの ingress コントローラーを使用します。 この ingress コントローラーは、スコープされた名前空間であり、ArcGIS Enterprise の名前空間への ingress トラフィックのみを待機するようにデプロイされます。 TLS は、証明書の共通名と Subject Alternative Names (サブジェクトの別名) に FQDN が含まれている必要があります。 CA 署名証明書または自己署名証明書を使用できますが、セキュリティ上の理由から、CA 署名証明書を強くお勧めします。これが ingress コントローラーのデフォルトの TLS 証明書です。 デプロイメントスクリプトでは、次の証明書オプションを使用して ingress トラフィックに TLS 証明書を適用できます。

  • プライベート キーと証明書を含む既存の TLS シークレット
  • プライベート キーと証明書を含む *.pfx ファイル
  • PEM 形式のプライベート キーと証明書
  • 自己署名証明書

ArcGIS Enterprise on Kubernetes では、ingress コントローラーに対し、Kubernetes cert-manager によって発行および管理された TLS 証明書を使用できます。 この証明書は、ArcGIS Enterprise と同じ名前空間の TLS シークレットに格納する必要があります。 TLS シークレットは、デプロイしている間または ArcGIS Enterprise 組織の作成後に参照される可能性があります。

ArcGIS Enterprise on Kubernetes および ArcGIS Pro

ArcGIS Enterprise on Kubernetes のサービスを利用するには、ArcGIS Pro 2.7 以降が必要です。 前のバージョンはサポートされていません。

サービスを ArcGIS Enterprise on Kubernetes に公開するには、ArcGIS Pro 2.8 以降が必要です。

エンタープライズ ジオデータベースからデータ ストア アイテムを登録する場合、ジオデータベースのバージョンは 10.9.0.2.8 以降でなければなりません。 ジオデータベースのバージョン番号は ArcGIS EnterpriseArcGIS Pro のリリース番号の組み合わせになります。

ArcMap から作成されたエンタープライズ ジオデータベースをデータ アイテムとして登録することはできません。