ArcGIS Enterprise on Kubernetes 10.9.1 を実行するために必要な最低限のハードウェアおよびインフラストラクチャについて以下に説明します。
サポート環境
システム要件および仕様は、注意書きがない限りサポートされているすべての環境に適用されます。 このリリースでは、次の環境がサポートされています。
- オンプレミス データ センター
- Red Hat OpenShift Container Platform 4.6 - 4.8
- クラウドのマネージド Kubernetes サービス
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (AKS)
コンテナー レジストリ
ArcGIS Enterprise on Kubernetes のコンテナー イメージは、プライベートの Docker Hub リポジトリからアクセスできます。 Esri は、ArcGIS Enterprise on Kubernetes をデプロイしているユーザーに、このリポジトリへのアクセス権を提供します。
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 クラスターのバージョンがサポートされています。
ArcGIS Enterprise on Kubernetes バージョン | サポートされている Kubernetes クラスターのバージョン |
---|---|
10.9.1 | 1.19 ~ 1.21 |
注意:
GKE でクラスターを作成するときは、Standard mode でオペレーションを使用する必要があります。 Autopilot モードはサポートされていません。
名前空間
ArcGIS Enterprise on Kubernetes は、独自の専用名前空間が必要です。 名前空間は、デプロイメントスクリプトの実行前に作成しておく必要があります。 また、ArcGIS Enterprise on Kubernetes の各デプロイメントに専用の名前空間が必要です。
CPU とメモリ
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 は、GKE 環境で Windows Server ノードの画像をサポートしていません。
リソース クォータ オブジェクト
ArcGIS Enterprise on Kubernetes のポッドは、CPU およびメモリへの要求と制限を定義しています。 名前空間に ResourceQuota オブジェクトがある場合は、クォータはすべてのポッドの要求と制限の合計より高い必要があります。 これらの値は、下で説明するように、選択したアーキテクチャ プロファイルによって異なります。
注意:
10.9.1 へのアップグレードを実行している場合は、まず名前空間のリソース クォータ値を 10.9.1 の要件に更新する必要があります。
クラスター ノードが適切に機能するように、要求リソースの少なくとも 10% は確保しておくことをお勧めします。
上記の確保に基づくと、各プロファイルのクォータの推奨事項は次のとおりです。 示されている制限値はプレースホルダーで、自社のスケーラビリティ要件に基づいて構成する必要があります。
標準の可用性プロファイル:
spec:
hard:
limits.cpu: "128"
limits.memory: 228Gi
requests.cpu: "22"
requests.memory: 86Gi
高い可用性プロファイル:
spec:
hard:
limits.cpu: "132"
limits.memory: 256Gi
requests.cpu: "28"
requests.memory: 108Gi
開発プロファイル:
spec:
hard:
limits.cpu: "96"
limits.memory: 164Gi
requests.cpu: "14"
requests.memory: 72Gi
セキュリティ
以下に、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 デプロイメントスクリプトが、コンテナーを実行する名前空間でサービス アカウントを作成します。 デフォルトのサービス アカウントは arcgis-admin-serviceaccount です。 クラスターに Pod セキュリティ ポリシーが含まれている場合は、サービス アカウントがコンテナーを権限付きで実行できるようにする必要があります。 OpenShift の場合は、ユーザー セクションに以下を追加することで、このサービス アカウントに、権限付きのセキュリティ コンテキスト制約へのアクセスを許可することができます。
“-system:serviceaccount: <Namespace>:arcgis-admin-serviceaccount"
- オプション 2 - 権限付きのコンテナー実行をサービス アカウントに許可できない場合は、次のコマンドをルートとして実行し、各ノードを手動で準備する必要があります。
sysctl -w vm.max_map_count=262144
- オプション 1 - ArcGIS Enterprise on Kubernetes デプロイメントスクリプトが、コンテナーを実行する名前空間でサービス アカウントを作成します。 デフォルトのサービス アカウントは arcgis-admin-serviceaccount です。 クラスターに Pod セキュリティ ポリシーが含まれている場合は、サービス アカウントがコンテナーを権限付きで実行できるようにする必要があります。 OpenShift の場合は、ユーザー セクションに以下を追加することで、このサービス アカウントに、権限付きのセキュリティ コンテキスト制約へのアクセスを許可することができます。
Kubernetes の NetworkPolicies を使用する場合、中断されないポッド間通信とポッドからサービスへの通信が ArcGIS Enterprise の名前空間で許可されていることを確認します。
また、名前空間内のポッドが Kubernetes API サーバーにアクセスできることを確認します。 API サーバーには、デフォルトの名前空間内にある Kubernetes という名前のサービスを通じてアクセス可能です。 ArcGIS Enterprise ポッドでは完全修飾ドメイン名 (FQDN) kubernetes.default.svc.cluster.local を使用して API サーバーのクエリを実行します。
注意:
クラスターのデフォルト ドメインは cluster.local です。
注意:
クラスター内のポッドは、FSGroup および SupplementalGroup ID が 117932853 での実行を許可されている必要があります。
ネットワーク
ネットワーク要件には、FQDN とロード バランサーが含まれます。 それぞれの詳細を以下に示します。
完全修飾ドメイン名
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 (インターネット向けまたは内部向け) - その他のロード バランシング サービスを使用できます。ただし、クラスター ノードごとに手動で構成する必要があります。
OpenShift Container Platform は、ingress コントローラー サービスに向いているときにルートを設定できます。
ingress コントローラー サービスの NodePort のワーカー ノードに向いている自己管理ロード バランサーを使用することができます。 詳細については、ロード バランサーのデプロイメントガイドのパラメーターの説明をご参照ください。
セルフマネージド ロード バランサーまたは NGINX などのリバース プロキシを使用している場合は、次の接続を指定します。proxy_set_header X-Forwarded-Host $host; このヘッダーは、トラフィックが ArcGIS Enterprise 組織の URL に適切にルーティングされるようにするために必要です。
システム ストレージ
ArcGIS Enterprise on Kubernetes は、システム ストレージとして永続ボリューム (PVs) が必要です。 PVs は動的または静的なボリュームとしてプロビジョニングできます。 いずれのタイプの PVs を作成する場合も、サイズを大きくしたりラベルを変更したりしてカスタマイズできます。 ArcGIS Enterprise のステートフル ワークロードには、リレーショナル データベース管理システムと NoSQL データベースが含まれます。 EBS ボリューム、Azure ディスク、vSphereVolume など、低遅延のブロック ストレージ デバイスの使用をお勧めします。
これらの永続ボリュームはデータと設定を格納するため、制限付きセキュリティ ポリシーを使用して保護する必要があります。 NFS、Azure ファイル、Gluster など、ファイル ベースのストレージに基づく永続ボリュームの場合、ディレクトリに対する権限が不正なアクセスを防ぐように設定されていることを確認します。 EBS ボリューム、Azure ディスク、iSCSI などのブロック ストレージの場合は、ブロック デバイスがアクセスを必要とするユーザーのみに制限されていることを確認します。
ストレージ ボリュームの説明と使用目的は次のとおりです。
注意:
10.9.1 の永続ボリューム要件が記載されており、前のバージョンとは異なる可能性があります。
- インメモリー - 一時システム リソースを格納します。
- アイテム パッケージ - 公開ワークフローをサポートするサイズの大きいアップロードとパッケージを格納します。
- オブジェクト - アップロードおよび保存されたコンテンツ、ホスト タイル/イメージ レイヤー キャッシュ、およびジオプロセシングの出力を格納します。 デプロイメント用に 4 つ必要です。
- キュー - 非同期ジオプロセシング ジョブを格納します。
- リレーショナル - ホスト フィーチャ データと、カスタマイズや構成設定などの管理面の情報を格納します。 デプロイメント用に 2 つ必要です。
- 時空間およびインデックス - ホスト フィーチャ データのほか、ログとインデックスを格納することで、リアルタイム データおよびビッグ データの視覚化と解析をサポートします。
- Usage metric data - GIS サービス使用状況データを格納します。
組織に合ったストレージ要件を検討し、各 PV のサイズを状況に応じて適切に定義してください。
静的 PVs
デプロイの前に静的 PV のプロビジョニングを行っている場合は、次の仕様およびラベルの使用をお勧めします。
各アーキテクチャ プロファイルに必要な 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 |
セットアップ ウィザードを使用して組織サイトを構成するとき、次のような仕様 (ボリューム名、サイズ、アプリ、層) をボリュームのバインドに使用できます。ただし、これらは必要に応じてカスタマイズできます。
ボリューム | 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 |
動的 PVs
動的なプロビジョニングの場合、StorageClass が必要です。
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 ストレージ クラスです。
デプロイ後のストレージ要件
デプロイ後は、以下に概要を説明するように、アップグレードの実行とポータル API デプロイメントの拡張のために、アイテムパッケージ PVs に追加のストレージ要件が適用されます。
デプロイしている間に構成したプロビジョニング済みのストレージのタイプは、アップグレードと拡張の要件を決定します。
- 動的 PVs - ストレージは、十分なストレージが利用可能でストレージクラスの仕様を満たす場合に、ソフトウェアによって拡張および調整されます。
- 静的 PVs - 管理者は、拡張とアップグレードのワークフローをサポートするために、デプロイしている間の指定と同じ仕様 (ラベル、サイズ、アクセス モード) を使用して、追加のアイテムパッケージ PVs をプロビジョニングする必要があります。
アップグレード
アップグレードの前には、組織のポータル API デプロイメント内の各ポッドは、アイテムパッケージ PV を使用して構成されています。 アップグレードの準備中は、追加の PV を使用して、ポータル API デプロイメント内の各ポッドを構成する必要があります。
たとえば、アップグレードの前にポータル API デプロイメントが 3 つの実行中のポッドで構成されている場合、デプロイしている間の指定と同等の仕様を使用して、合計 6 つの PVs をプロビジョニングおよび構成する必要があります。
アップグレードが完了すると、ポータル API デプロイメントは新たにプロビジョニングされた永続ボリュームと永続ボリューム クレームを使用するようになり、元のセットは削除できます。
ポータル API の拡張
ポータル API デプロイメントを拡張する (関連するポットの数を増やす) には、デプロイメントに追加される追加のポッドごとに、追加のアイテムパッケージ PV が必要です。 たとえば、組織のポータル API デプロイメントに 3 つのポッドが必要な場合、デプロイしている間の指定と同等の仕様を使用して、最低 3 つのアイテムパッケージ PVs をプロビジョニングおよび構成する必要があります。
クライアント ワークステーション
デプロイメント スクリプトは、リモートのクライアント ワークステーションから実行できる 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 Enterprise と ArcGIS Pro のリリース番号の組み合わせになります。
ArcMap から作成されたエンタープライズ ジオデータベースをデータ アイテムとして登録することはできません。