Microsoft Azure Kubernetes Serviceでのアプリケーション ゲートウェイ Ingress コントローラーの使用
クラスターレベルの Ingress コントローラーを使用して、トラフィックを Microsoft Azure Kubernetes Service (AKS) 上の ArcGIS Enterprise デプロイメントにルーティングします。 詳細については、「 クラスターレベルの Ingress コントローラー 」をご参照ください。
注意:
このワークフローは、ArcGIS Enterprise 組織を作成する前に実行する必要があります。 ロード バランサーが配置されて構成されたら、ArcGIS Enterprise Manager にはブラウザーからアクセスできます。
前提条件
一般的な前提条件 を確認し、次の AKS 固有の前提条件が満たされていることを確認してください。
AKS に Kubernetes クラスターを準備 している必要があります。
アプリケーション ゲートウェイ Ingress コントローラーをクラスターにデプロイする必要があります。 Azure Application Gateway をサブスクリプション内に配置している必要もあります。 アプリケーション ゲートウェイで使用するためにアプリケーション ゲートウェイ Ingress コントローラーを適切に配置し構成する方法に関する詳細については、 Azure のドキュメント をご参照ください。
Azure CLI はクライアント コンピューターにインストールする必要があります。 AKS クラスターが存在するサブスクリプションに対して CLI から認証できることを確認してください。
Kubectl はクライアント コンピューターにインストールする必要があります。 作成したクラスターに関連付けられている Kubernetes API Server に接続してコマンドを発行できることを確認してください。
Ingress オブジェクトの証明書情報を格納するための TLS シークレット を作成しておく必要があります。 このシークレット内に格納された TLS 証明書は、ArcGIS Enterprise on Kubernetes デプロイメント名前空間用に選択した完全修飾ドメイン名に対して有効である必要があります。
選択肢の DNS プロバイダーに DNS レコードを作成しておく必要があります。これは、ArcGIS Enterprise on Kubernetes デプロイメント用に選択した完全修飾ドメイン名にアプリケーション ゲートウェイのフロントエンド IP アドレスをマッピングします。
クラスターレベルの Ingress コントローラーの実装
クラスターレベルの Ingress コントローラーを実装して、トラフィックを Microsoft AKS 上の ArcGIS Enterprise デプロイメントにルーティングするには、次の手順を実行します。
layer-7-templatesフォルダーに含まれるテンプレートを開くか、次の例をクライアント コンピューター上のファイルにコピーします。apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: arcgis-enterprise-ingress namespace: <deploymentNamespace> annotations: kubernetes.io/ingress.class: azure/application-gateway appgw.ingress.kubernetes.io/ssl-redirect: "true" appgw.ingress.kubernetes.io/backend-protocol: "https" appgw.ingress.kubernetes.io/backend-hostname: <deploymentFQDN> appgw.ingress.kubernetes.io/health-probe-hostname: <deploymentFQDN> appgw.ingress.kubernetes.io/health-probe-port: "443" appgw.ingress.kubernetes.io/health-probe-status-codes: "200-399" appgw.ingress.kubernetes.io/health-probe-path: "/<context>/admin" appgw.ingress.kubernetes.io/request-timeout: "600" labels: id: custom-ingress-resource spec: tls: - hosts: - <deploymentFQDN> secretName: <tlsSecretName> rules: - host: <deploymentFQDN> http: paths: - backend: service: name: arcgis-ingress-nginx port: number: 443 path: /<context> pathType: Prefix次の値を置き換えます。
deploymentFQDN- 最初のデプロイメント時に指定した完全修飾ドメイン名を指定します。tlsSecretName- デプロイメント名前空間内に作成された TLS シークレットの名前を指定します。namespace- ArcGIS Enterprise on Kubernetes を配置した名前空間を指定します。context- デプロイメント時に指定したコンテキストを指定します。注意:
この値は 2 か所に表示され、両方のインスタンスで置き換えられる必要があります。
appgw.ingress.kubernetes.io/health-probe-pathアノテーション内の値を更新していることを確認してください。
クライアント コンピューター上のファイルを保存します。
例:
ingress.yaml次のいずれかを実行して、Ingress オブジェクトを作成します。
次のコマンドを使用して、Ingress YAML データをクラスターに適用します。
kubectl apply -f ingress.yamlデプロイメント スクリプトをサイレントに実行 する際は、
CLUSTER_INGRESS_CONTROLLER_YAML_FILENAMEを Ingress YAML ファイルの場所に設定します。
このワークフローを完了したら、arcgis-enterprise-ingress という Ingress オブジェクトが作成されます。 アプリケーション ゲートウェイ Ingress コントローラーはこの Ingress オブジェクト YAML に定義されている情報を使用して、トラフィックを ArcGIS Enterprise デプロイメントにルーティングするよう関連するアプリケーション ゲートウェイを構成します。 この Ingress が正常に適用されると、ArcGIS Enterprise デプロイメントはアプリケーション ゲートウェイを通じてアクセスできるようになります。
注意:
新しく作成された Ingress を使用して正しい接続を作成するには、arcgis-ingress-controller デプロイメントを更新する必要がある場合があります。 Ingress を作成した後で ArcGIS Enterprise Manager にアクセスしたときにエラーが表示された場合は、次の操作を実行してみてください。
kubectl rollout restart deployment/arcgis-ingress-controller -n <deploymentNamespace>