RedHat OpenShift (RHOS) に ArcGIS Enterprise on Kubernetes をデプロイする前に、ArcGIS Enterprise のシステム要件を満たす RHOS クラスターを準備する必要があります。
RedHat OpenShift クラスターの準備には、Kubernetes クラスターと対応するノードの設定など、サポートされている環境間で共通の手順、および専用のセキュリティ コンテキスト (SCC) の制約の作成やアプリケーションへの ingress の処理など、環境固有の手順が含まれます。
次の手順を確認し、環境を準備する方法については、RedHat OpenShift ドキュメントをご参照ください。
- RedHat OpenShift クラスターを作成します。
さまざまな方法で RHOS クラスターをデプロイできます。 オンプレミスの配置については、RedHat のドキュメントをご参照ください。 クラウドベースの配置については、「RedHat OpenShift on AWS (ROSA)」または「Azure RedHat OpenShift」のドキュメントをご参照ください。
- oc (kubectl) の構成を更新します。
クラスターを作成した後、OpenShift Command Line Interface (CLI) を使用して、認証ユーザー接続情報を kubeconfig ファイルに抽出します。 これを行うには、次のコマンドを使用します。
oc login https://<serverName>:<serverPort>
- ストレージ クラスを作成します。
組織とワークロードのニーズに合わせて reclaimPolicy と allowVolumeExpansion をカスタマイズするには、Cinder、Manila、または vSphere Volume などのサポートされているプロビジョナーのいずれかを参照するストレージ クラスを作成することをお勧めします。 次のコマンドを使用して、適切な YAML ファイルをクラスターに適用する必要があります。
詳細については、サンプルのデフォルトのストレージ クラス YAML とサンプルの バックアップのストレージ クラス YAML の例をご参照ください。oc apply -f <storageClass.yaml>
- セキュリティ コンテキストの制約を管理します。
OpenShift では、SCC は、スケジュール設定前にポッド向けにカスタマイズされた入場コントローラーとして機能します。 許可されたグループが system:authenticated であるため、デフォルトで、すべてのポッドが restricted または restricted-v2 SCC に基づいて許可されます。
セットアップによっては、ArcGIS Enterprise の要件を満たすために追加の権限を許可する必要があります。 以下を確認してください。- 特定の fsGroup でのポッドの実行を許可します。
新しくプロビジョニングされたブロック ストレージの永続ボリュームに対するボリューム権限を初期化するためにハードコーディングされた fsGroup 値が ArcGIS Enterprise ワークロードにあります。 デフォルトでは任意の範囲として実行されるため、この fsGroup を SCC で許可する必要があります。 これを行うには、次のセクションとともに、restricted または restricted-v2 SCC のコピーを更新する必要があります。
fsGroup: ranges: - max: 117932853 min: 117932853 type: MustRunAs groups: - 'system:serviceaccounts:<deployment-project>'
- ingress コントローラーの権限付きポートでのバインドを許可します。
4.11 よりも前の OpenShift のバージョンの場合、制限されたコンテキストでは、ingress コントローラーに必要な NET_BIND_SERVICE 機能をポッドに追加できません。 制限されたポリシーおよび追加された次のセクションから新しい SCC のクローンを作成する必要があります。
allowedCapabilities: - NET_BIND_SERVICE
この SCC では、arcgis-ingress-serviceaccount サービス アカウントが ingress コントローラーを正しく起動できるようにする必要があります。
oc adm policy add-scc-to-user restricted-esri system:serviceaccount:<deployment-project>:arcgis-ingress-serviceaccount
OpenShift バージョン 4.11 以降の場合、restricted-v2 SCC の必要な機能がすでに許可されています。
- 最大メモリ マップ エリアを増やします。
時空間 StatefulSet では、基になるノードの vm.max_map_count の値を高くする必要があります。 これは、init コンテナーを使用してデフォルトで有効になっていますが、コマンドでは、実行する基のホストへの権限付きアクセスが必要になります。
sysctl -w vm.max_map_count=262144
ワーカー ノードを起動時に変更するには、ブートストラップ中にそのコマンドを実行するように Ignition 構成ファイルに変更を加えます。 ALLOW_PRIVILEGED_CONTAINERS のプロパティは、デプロイメント スクリプトで false に設定する必要があります。
詳細については、RedHat OpenShift のドキュメントをご参照ください。
または、init コントローラーが必要な sysctl コマンドを実行できるように権限付きコンテナーを実行するためのアクセス権を arcgis-elastic-serviceaccount サービス アカウントに付与する必要があります。
oc adm policy add-scc-to-user privileged-esri system:serviceaccount:<deployment-project>:arcgis-elastic-serviceaccount
詳細については、サンプルの SCC YAML ファイルをご参照ください。
- 特定の fsGroup でのポッドの実行を許可します。
- Red Hat OpenShift Routes を構成します。
OpenShift には、すぐに使用できる ingress コントローラーが含まれており、ArcGIS Enterprise on Kubernetes に付属する ingress コントローラーと組み合わせて使用できます。 コマンド ラインを使用して OpenShift Route を作成している場合、サンプルの yaml を使用して作成できます。 OpenShift コンソールを使用してルートを設定するには、最初にデプロイメント スクリプトを実行し、次に内部サービス ターゲットを参照するルートを作成する必要があります。
デプロイメント スクリプト内で OpenShift Route の質問に yes と答えることにより、arcgis-ingress-controller サービスは外部に公開されなくなり、ClusterIP タイプとして作成されます。
クライアント SSL の終了先によっては、セキュリティで保護されたルートは re-encrypt または passthrough を終了モードとして使用する必要があります。 re-encrypt の選択ではルートの入力として TLS 証明書が必要になり、passthrough では外部クライアントへのデプロイメント フェーズ中に定義された TLS 証明書が提示されます。