AI Center
2020.10
バナーの背景画像
AI Center
最終更新日 2024年3月11日

1. Azure AKS クラスターをプロビジョニングする

このセクションでは、高可用性のマルチノード構成で AI Fabric が実行されるように AKS クラスターをプロビジョニングするうえで必要な手順について詳しく説明します。

注:
  • 現在、AI Fabric のインストールは、新しい専用の AKS クラスター上でサポートされています。不明なポリシーや制限がある共有クラスターは、問題の回避策が別途必要になることがあるので、公式にはサポートされていません。
  • AI Fabric の使用率が非常に高く、AI/ML の幅広いユース ケースをサポートするために水平スケーリングを必要とする組織の場合
  • 複数のゾーンにわたってデプロイした可用性の高いソリューションが必要
  • 障害復旧とスケーリングの目的で、コア サービスと ML サービスの両方に複数のレプリカが必要
  • Azure で管理している高可用性 Kubernetes クラスター
  • Azure で管理している高可用性コンテナー レジストリ
  • Azure で管理している高可用性クラウド ストレージ
  • Horizontal Pod Autoscaler。ワークロードに基づいてコア サービスのポッド数をスケーリング
  • Kubernetes Cluster Autoscaler。CPU と GPU の両方のノード プール向けに、AKS クラスターにあるノードをオンデマンドで自動的に多くする
  • GPU のリソースが確実に本来の目的に使用されるような GPU の taint
  • Cert Manager で証明書をプロビジョニングおよび管理

前提条件

  1. 2 つ以上のノードプールで構成される AKS クラスター。GPU ノードと適切な taint で構成される、少なくとも 1 つのノードプール。
  2. クラスターと同じリソース グループの Azure コンテナー レジストリ
  3. クラスターと同じリソース グループの 1 つのストレージ アカウント
  4. クラスターと同じリソース グループの 1 つの Application Insights インスタンス
  5. データベースを作成済みの SQL Server

インストール手順の概要

このセクションでは手順の概要を説明し、次の 2 つのセクションでこのプロセスについて詳しく説明します。

  1. AKS クラスター、Azure コンテナー レジストリ、1 つのストレージ アカウント、1 つの Application Insights インスタンスを作成します。
  2. Oneinstaller は、以下を入力として使用します。

    AKS Cluster name
    AKS Cluster Resource Group
    AKS Worker Resource Group
    ACR Endpoint
    ACR Name (Username)
    ACR Password
    Storage Account Name
    Storage Account Key
    Application Insights Key
    Flag to indicate whether to expose kotsadm service or not
    DNS Prefix Name for aifabricAKS Cluster name
    AKS Cluster Resource Group
    AKS Worker Resource Group
    ACR Endpoint
    ACR Name (Username)
    ACR Password
    Storage Account Name
    Storage Account Key
    Application Insights Key
    Flag to indicate whether to expose kotsadm service or not
    DNS Prefix Name for aifabric
  3. 次に、shell.azure.com にログインし、"az account set --subscription" を使用して正しいサブスクリプション ID を設定します。
  4. シェルには、kubectl がインストールされている必要があります。
  5. 次に、one-installer バンドルをシェルにコピーし、展開して bash setup.sh を実行します。上記の値はコマンド ラインで渡すことができます。コマンド ラインで渡さない場合は、インストーラーから再度入力を求められます。
  6. プラットフォームの入力に「azure」と入力します。その後、他のすべてがプロビジョニングされます。

One-Installer によってインストールされるコンポーネント

  • aifabric 名前空間に Kotsadmin および kots アプリケーションをインストール
  • istio-system 名前空間に Istio をインストール
  • 提供されるストレージ アカウント (バケットと同等) でコンテナーを作成
  • ストレージ アカウントに CORS ポリシーを適用
  • 指定された dns プレフィックスを istio ゲートウェイのパブリック IP に割り当て
  • cert-manager 名前空間に Cert Manager をインストール
  • Velero を (velero 名前空間に) インストールし、バックアップを作成して、定期的なバックアップをスケジュール

詳細なインフラストラクチャの設定

AKS クラスターを作成する

AKS クラスターが既にインストールされている場合は、この手順をスキップしてください。Kubernetes バージョンは 1.16、1.17、または 1.18 である必要があります。他のバージョンは、現在サポートされていません。

  1. Azure でリソース グループを作成します。リソース グループ レベルで所有者ロールを持っている必要があります。
  2. ポータルで Kubernetes Service を検索し、AKS の新しいインスタンスを作成します。
  3. 手順 1a で作成したリソース グループを選択し、選択した適切なクラスター名を付けます。
  4. Kubernetes バージョンが 1.16、1.17、または 1.18 であることを確認してください。
  5. ワーカー ノードのノード サイズを選択します (推奨される最小サイズは、3 つのノードの Standard_D2_v3)
  6. [認証] タブで、以下を行います。
    • 認証方法として [システム割り当てマネージド ID] を選択します。
  7. [ネットワーク] タブで、以下を行います。
    • [ネットワーク構成] を [Azure CNI] に設定します。
    • [ネットワーク ポリシー] を [Azure] に設定します。
    • 他のフィールドはそのままにします。
  8. [統合] タブで、以下を行います。
    • 同じリソース グループにコンテナー レジストリがある場合は、そのレジストリを選択すると、実行時に作成された Docker イメージをプッシュするために使用されます。
    • または、[新規作成] を選択し、適切なレジストリ名を付けて、[管理ユーザー] を [有効] に設定します。
  9. [タグ] タブで、必要に応じて適切なタグを設定します。
  10. [レビューと作成] をクリックして、クラスターを作成します。

ノード プールを作成する

AI Center では、クラスターに少なくとも 2 つのノード プールを作成する必要があります。1 つはクラスターの作成時に作成されますが、さらにもう 1 つ作成する必要があります。これらのノード プールのうち 1 つは、GPU がアタッチされているノードでなければなりません。このようなノード プールが存在するかどうかを確認するには、ノード プールで taint を使用します。

taint nvidia.com/gpu=present:NoSchedule でそれを確認します。

この taint でノード プールを作成するには、以下のコマンド (サンプル) を使用します。

az aks nodepool add --name gpunodepool \)\)
      --enable-cluster-autoscaler \)\)
      --resource-group ${RESOURCEGROUP} \)\)
      --cluster-name ${AKSCLUSTERNAME} \)\)
      --node-vm-size Standard_NC6 \)\)
      --node-taints nvidia.com/gpu=present:NoSchedule \)\)
      --labels accelerator=nvidia \)\)
      --node-count 0 \)\)
      --min-count 0 \)\)
      --max-count 3az aks nodepool add --name gpunodepool \)\)
      --enable-cluster-autoscaler \)\)
      --resource-group ${RESOURCEGROUP} \)\)
      --cluster-name ${AKSCLUSTERNAME} \)\)
      --node-vm-size Standard_NC6 \)\)
      --node-taints nvidia.com/gpu=present:NoSchedule \)\)
      --labels accelerator=nvidia \)\)
      --node-count 0 \)\)
      --min-count 0 \)\)
      --max-count 3

--node-vm-size の値は、GPU に使用するノードの種類に基づいて変更できます。Azure でサポートされている GPU 仮想マシンのサイズについては、こちらで確認してください。

ストレージ アカウントを作成する

クラスターがデプロイされているリソース グループに、ストレージ アカウントを作成します。このストレージ アカウントを使用して、AI Fabric 関連のファイルを保存するコンテナーを作成します。

  1. ポータルでストレージ アカウントを検索します。
  2. 新しいストレージ アカウントを作成します。
  3. 上記のリソース グループを選択します。
  4. ストレージ アカウントに適切な名前を付けます。
  5. 残りの設定は既定のままにします。タグを追加して、アカウントを作成します。

Application Insights インスタンスを作成する

AI Fabric がログを公開するリソース グループに、1 つの Application Insights インスタンスを作成します。

  1. ポータルで「Application Insights」を検索します。
  2. 新しいインスタンスを作成します。
  3. 上記のリソース グループを選択します。
  4. インスタンスに適切な名前を付けます。
  5. リソース モードで [クラシック] を選択します。
  6. タグを追加して作成します。

AI Fabric のインストール手順

AKS クラスターがプライベートの場合は、こちらで追加の手順について詳しく説明しています。

シェルを開く

上記のインフラストラクチャを設定したら、shell.azure.com を開き、以下のコマンドを使用して、現在のサブスクリプションをリソース グループが存在するサブスクリプションに設定します。

az account set --subscription <subscription-id>
az extension add --name application-insightsaz account set --subscription <subscription-id>
az extension add --name application-insights

インストーラーをダウンロードする

まず、インストーラーの zip ファイルをこちらからダウンロードし、AI Center サーバーに移動します。また、以下のコマンドを使用すると、マシンから直接ダウンロードできます。

wget https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gzwget https://download.uipath.com/aifabric/online-installer/v2020.10.2/aifabric-installer-v20.10.2.tar.gz

ファイルを展開し、以下のコマンドを使用してメイン フォルダーに移動します。

tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2tar -xvf aifabric-installer-v20.10.2.tar.gz
cd ./aifabric-installer-v20.10.2

セットアップを実行する

次に、以下のコマンドを使用して setup.sh を実行します。

bash setup.sh --resourceGroup <YOUR RESOURCE GROUP> --clusterName <YOUR CLUSTER NAME> --exposeKots n --acrHost <YOUR CONTAINER REGISTRY> --acrUser <YOUR CR USERNAME> --acrKey <YOUR CR KEY> --workerResourcegroup <YOUR WORKER RG> --dnsPrefix aicapp --storageAccountName <YOUR STORAGE ACCOUNT> --storageAccountAccessKey <YOUR STORAGE ACCOUNT ACCESS KEY> --appInsightsKey <YOUR ACCESS KEY> --platform azure --email <YOUR EMAIL>bash setup.sh --resourceGroup <YOUR RESOURCE GROUP> --clusterName <YOUR CLUSTER NAME> --exposeKots n --acrHost <YOUR CONTAINER REGISTRY> --acrUser <YOUR CR USERNAME> --acrKey <YOUR CR KEY> --workerResourcegroup <YOUR WORKER RG> --dnsPrefix aicapp --storageAccountName <YOUR STORAGE ACCOUNT> --storageAccountAccessKey <YOUR STORAGE ACCOUNT ACCESS KEY> --appInsightsKey <YOUR ACCESS KEY> --platform azure --email <YOUR EMAIL>

以下で説明するとおり、セットアップする環境に応じて適宜値を変更してください。

上記のコマンドのパラメーターは以下のとおりです (それらのパラメーターをコマンドで渡さないと、インストーラーから再度入力を求められます)。

platform: azure

resourceGroup: クラスターおよびその他のリソースを作成したリソース グループ

workerResourcegroup: AKS はクラスターとともに別のリソース グループを作成して、クラスターのワークロードを維持します。その名前を指定してください。ポータルで元のリソース グループ名を検索すると、もう 1 つのリソース グループ名も取得されます。その名前は通常、MC_<rg-name><cluster-name><region> のようになっています。



clusterName: AKS クラスター名

exposeKots: Kotsadmin をインターネット上で公開するかどうか。(y/n)

acrHost: AKS で選択されたコンテナー レジストリに移動して、以下のとおりサーバー名を取得します。



acrUser: 作成されたレジストリ名です。

acrKey: ACR ページの [アクセス キー] に移動し、そこで確認できたいずれかのパスワードを指定します。



dnsPrefix: AI Fabric の Ingress に使用される DNS プレフィックス (aicenter、aim-app など)

storageAccountName: 手順 3 で同じリソース グループに作成されたストレージ アカウント名

storageAccountAccessKey → ストレージ アカウント ページの [アクセス キー] に移動します。[キーの表示] をクリックし、key1 または key2 のいずれかのキーをコピーして渡します。



appInsightsKey: 作成されたリソースの Application insights キー(以下のスクリーンショットの [インストルメンテーション キー])



email: 証明書の有効期限の詳細を通知するために使用されるメール ID

重要:

初回インストール時に、Application Insights が見つからないエラーが発生してインストールが失敗することがあります。その場合は、re-run を渡すか、次のコマンドを使用して az extension をインストールし、インストールを再実行します。

az extension add --name application-insights

AKS プライベート クラスター

AKS クラスターがプライベートの場合、上記のインストール プロセスとはいくつかの違いがあります。

  1. AKS クラスターと同じネットワーク内に 1 つの Ubuntu 仮想マシンを作成します。
  2. そこに、kubectl、az、helm、jq コマンド ライン ツールをインストールします。
  3. AKS クラスターと同じ名前の Azure クライアントがある場合、クラスターの VNet に問い合わせて、アクセス ポリシーに従いこのクライアントをコントリビューターとして追加します (これは、プライベート ロード バランサーの作成に必要な操作です)。
  4. Azure にログインし、AKS クラスターの正しいサブスクリプション ID を設定します。
    az login
    az account set --subscription <subscription-id>az login
    az account set --subscription <subscription-id>
  5. bash setup.sh コマンドで、別のパラメーター isPrivate y を渡す必要があります。
  6. Istio と KotsAdmin は、プライベート ロード バランサーの IP アドレス上に公開されます。
  7. この場合、Expose_kots フラグは無視され、kotsadmin サービスに 1 つの内部ロード バランサーが割り当てられます。
  8. プライベート IP アドレスはパブリック DNS 名を持つことができないため、Istio の自己署名証明書を作成します。
  9. Kotsadmin ページでは、Ingress Host が oneinstaller の出力からの Istio プライベート IP です。外部 IP アドレスを実行して取得することで、いつでも確認できます。
    kubectl -n istio-system get svc istio-ingressgatewaykubectl -n istio-system get svc istio-ingressgateway
  10. AKS VNet にアクセスできるプライベート ネットワークから、https://<istio-private-ip>/ai-app で AI Fabric を使用できます。
  11. これをインターネットに公開する場合は、一般に公開されているゲートウェイからポート 443 上のこの内部 IP にトラフィックをリダイレクトする必要があります。
  • 一般公開用のゲートウェイを作成します。
  • トラフィックをポート 443 から <istio-private-ip>:443 に送信するようにゲートウェイを設定します。
  • Kotsadmin で、ゲートウェイのパブリック IP、またはこのゲートウェイを Ingress Host としてポイントする DNS エントリを使用します。
  • バックエンド サーバーに接続するには、ゲートウェイ構成に TLS 証明書の詳細が必要です。AI Fabric 用に自身の証明書を更新する場合は、kotsadmin からアップロードできます。


  • また、ゲートウェイで健全性チェックが必要な場合は、URL /ai-deployer/actuator/health を使用できます。

Azure ゲートウェイの設定に関する詳細説明

  1. AKS と同じ VNet または AKS VNet とピア接続されている VNet にリンクされた、Azure アプリケーション ゲートウェイ インスタンスを作成します。
  2. Istio ロード バランサーのプライベート IP でバックエンド プール エントリを作成します。
  3. HTTP 設定のエントリをポート 443 を使用して作成します。自己署名証明書を使用する場合は、ドキュメント (https://docs.microsoft.com/ja-jp/azure/application-gateway/self-signed-certificates) に従って自己署名証明書とサーバー証明書を作成します (サーバー証明書の生成時に、共通名フィールドに Istio LB を入力します)。また、ホスト名の設定で [特定のドメイン名でオーバーライドする] を選択して、Istio LB の IP を入力します。


  4. [信頼されたルート証明書] フィールドに CA 証明書をアップロードします。
  5. 上記の kotsadmin で作成したサーバー証明書をアップロードします。ゲートウェイのパブリック IP を使用して、kotsadmin からデプロイメントをトリガーします。
  6. 上記で作成したサーバー証明書とキーから、-openssl pkcs12 -export -out contoso.pfx -inkey fabrikam.key -in fabrikam.crt ような pfx ファイルを生成します。
  7. ゲートウェイとポート 443 でのリスナー エントリを作成し、そこに pfx ファイルをアップロードします。
  8. 上記のリスナー、http 設定、およびバックエンド ターゲットを選択して、ゲートウェイのルールを作成します。
  9. https を使用した正常性プローブ エントリを作成し、ホストに Istio ロード バランサーの IP アドレスを設定します。 パスにこの /ai-deployer/actuator/health を設定し、手順 3 で作成した上記の http 設定を選択します。


インフラストラクチャのプロビジョニング

要件
所有者アクセス権を持つ Azure リソース グループ 
リソース グループを作成したリージョンで十分な vCPU を利用できるようにする 利用可能な vCPU の最小数は 16 です。次のコマンドを実行して、リソース グループをホストしているリージョンで何が利用可能かを確認します。az vm list-skus --location westeurope --output table | grep virtualMachines
リソース グループを作成したリージョンで適切なマシン タイプが利用できることを確認する 既定では、マシンは Standard_D8s_v3 & Standard_NC6 です。次のコマンドを実行して、リソース グループをホストしているリージョンで何が利用可能かを確認します。 az vm list-skus --location westeurope --output table | grep virtualMachines
必須タグが追加されていることを確認する会社の Azure サブスクリプションでのプロビジョニング時に、リソースのタグ付けに必要な必須タグがあるかどうかを確認してください。
インフラストラクチャ プロビジョニング スクリプトをダウンロードする

UiPath ai-customer-scripts リポジトリ (たとえば、https://github.com/UiPath/ai-customer-scripts/blob/master/platform/aks/aks-arm.zip) から aks-arm.zip フォルダーをダウンロードします。



開始前の要件

要件
Orchestrator 20.10 のインストールが動作している詳しくは、こちらをご覧ください。
SQL Server 2008 R2 以上がある。詳しくは、こちらをご覧ください。
SQL Server 認証を有効化する必要がある SQL Server 管理者に連絡してください。
データベースおよびロールの作成が可能な SQL 資格情報 SQL Server 管理者に連絡してください。
対応しているブラウザーを使用している参照
起動ディスクが 200 GB 以上である詳しくは、こちらをご覧ください。
ワーカー ノードで、合計 500 GB 以上のセカンダリ ディスクが未フォーマットである詳しくは、こちらをご覧ください。
AI Fabric マスター ノードから Orchestrator に接続する。ドメイン名を使用して接続可能であること telnet <Orchestrator-Domain-Name> <port> AI Fabric UCP ノードの telnet <SQL-Server-IP> <port> が動作する必要があります。
AI Fabric マスター ノードからデータベースに接続する。telnet <SQL-Server-IP> <port> AI Fabric UCP ノードの telnet <SQL-Server-IP> <port> が動作する必要があります。
Robot/Studio マシンから AI Fabric マスター ノードに接続する telnet <UCP-Host-IP> 33443 Robot/Studio マシンで telnet <UCP-Host-IP> 33390 が動作する必要があります。すなわち、Robot/Studio マシンはポート 33443 および 33390 上のサーバーのクライアントになります。
インストーラーで必要なエンドポイントに AI Fabric マシンから接続する。 AI Fabric マシンからこれらのエンドポイントへのアウトバウンド アクセスがブロックされていてはなりません。
信頼できる認証機関からのドメイン証明書 (AI Fabric マシン用) 詳しくは、こちらをご覧ください。
AI Fabric のライセンス ファイル。詳しくは、こちらをご覧ください。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.