次の方法で共有


Azure Kubernetes Service (AKS) で Flyte を使用してデータと機械学習パイプラインを構築してデプロイする

この記事では、Azure Kubernetes Service (AKS) で Flyte を使用する方法を説明します。 Flyte は、機械学習、データ エンジニアリング、データ分析スタックが統合されたオープンソースのワークフロー オーケストレーターで、堅牢で信頼性の高いアプリケーションを構築するのに役立ちます。 Kubernetes ネイティブのワークフロー自動化ツールとして Flyte を使用する場合は、インフラストラクチャとリソース管理の範囲を広げることなく、実験とビジネス価値の提供に集中できます。 Flyte は Microsoft によって正式にサポートされていないため、ご自身の判断で使用してください。

詳細については、Flyte の概要に関するページを参照してください。

重要

オープンソース ソフトウェアは、AKS のドキュメントとサンプル全体で説明されています。 デプロイするソフトウェアは、AKS サービス レベル アグリーメント、限定保証、Azure サポートから除外されます。 AKS と共にオープンソース テクノロジを使用する場合は、それぞれのコミュニティとプロジェクト保守担当者から受けられるサポート オプションを調べ、計画を策定してください。

Microsoft は、AKS 上に展開するオープンソース パッケージを構築する責任を負います。 その責任には、ビルド、スキャン、署名、検証、修正プログラム プロセスの完全な所有権と、コンテナー イメージ内のバイナリの制御権が伴います。 詳細については、AKS の脆弱性の管理に関するページと「AKS のサポート範囲」を参照してください。

Flyte のユース ケース

Flyte は、次のようなさまざまなユース ケースに使用できます。

  • 効率化された損益財務計算のモデルを提供する。
  • ペタバイト単位のデータを処理して、新しい領域の 3D マッピングを効率的に実行する。
  • 以前のバージョンにすばやくロールバックし、パイプラインのバグの影響を最小限に抑える。

詳細については、 Flyte チュートリアルを参照してください。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
    • 複数のサブスクリプションがある場合は、az account set --subscription <subscription-id> コマンドを使用して正しいサブスクリプションを選択してください。
  • インストールされて構成されている Azure CLI。 az --version コマンドを使用してバージョンを確認します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。
  • Helm CLI がインストールされ、更新済みである。 helm version コマンドを使用してバージョンを確認します。 インストールまたはアップグレードする必要がある場合は、Helm のインストールに関するページを参照してください。
  • kubectl CLI がインストールされ、更新済みである。 az aks install-cli コマンドを使用するか Install kubectl を使用して、ローカルにインストールします。
  • ローカルの Docker 開発環境。 詳細については、「Get Docker」を参照してください。
  • flytekitflytectl がインストールされている。 詳細については、Flyte のインストールに関するページを参照してください。

Azure Cloud Shell を使用している場合は、Azure CLI、Helm、kubectl が既にインストールされています。

環境変数を設定する

  • この記事全体で使用する環境変数を設定します。 プレースホルダーの値は、実際の値に置き換えます。

    export RESOURCE_GROUP="<resource-group-name>"
    export LOCATION="<location>"
    export CLUSTER_NAME="<cluster-name>"
    export DNS_NAME_PREFIX="<dns-name-prefix>"
    

AKS クラスターを作成する

  1. az group create コマンドを使用して、AKS クラスター用の Azure リソース グループを作成します。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. az aks create コマンドを --enable-azure-rbac--enable-managed-identity--enable-aad--dns-name-prefix パラメーターと共に使用して AKS クラスターを作成します。

    az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-azure-rbac --enable-managed-identity --enable-aad --dns-name-prefix $DNS_NAME_PREFIX  --generate-ssh-keys
    

ご利用の AKS クラスターに接続する

  • kubectl コマンドを使用して、AKS クラスターに接続するように az aks get-credentials を構成します。

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    

Flyte Helm リポジトリを追加する

  • helm repo add コマンドを使用して、Flyte Helm リポジトリを追加します。

    helm repo add flyteorg https://flyteorg.github.io/flyte
    

Flyte Helm チャートを検索する

  1. helm search repo コマンドを使用して、Flyte Helm チャートを検索します。

    helm search repo flyteorg
    

    次の出力例は、使用できる Flyte Helm チャートの一部を示しています。

    NAME                    CHART VERSION   APP VERSION     DESCRIPTION
    flyteorg/flyte          v1.12.0                         A Helm chart for Flyte Sandbox
    flyteorg/flyte-binary   v1.12.0         1.16.0          Chart for basic single Flyte executable deployment
    flyteorg/flyte-core     v1.12.0                         A Helm chart for Flyte core
    flyteorg/flyte-deps     v1.12.0                         A Helm chart for Flyte dependencies
    flyteorg/flyte-sandbox  0.1.0           1.16.1          A Helm chart for the Flyte local sandbox
    flyteorg/flyteagent     v0.1.10                         A Helm chart for Flyte Agent
    
  2. helm repo update コマンドを使用してリポジトリを更新します。

    helm repo update
    

AKS に Flyte チャートをデプロイする

このセクションでは、flyte-binary Helm チャートをデプロイして、AKS で Flyte を使用してデータと機械学習パイプラインの構築とデプロイを開始できるようにします。 flyte-binary チャートは、基本的な単一の Flyte 実行可能ファイルのデプロイです。

  1. kubectl create namespace コマンドを使用して、Flyte デプロイの名前空間を作成します。

    kubectl create namespace <namespace-name>
    
  2. helm install コマンドを使用して Flyte Helm チャートをインストールします。 この例では、flyte-binary チャートを使用します。

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. kubectl get services コマンドを使用して、Flyte デプロイが実行されていることを確認します。

    kubectl get services --namespace <namespace-name> --output wide
    

    次の要約された出力例は、Flyte デプロイを示しています。

    NAME                            TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
    flyteorg-flyte-binary-grpc      ClusterIP      xx.x.xx.xxx    <none>          81/TCP           1m
    flyteorg-flyte-binary-http      ClusterIP      xx.x.xx.xxx    <none>          80/TCP           1m
    flyteorg-flyte-binary-webhook   ClusterIP      xx.x.xx.xxx    <none>          80/TCP           1m
    

次のステップ

この記事では、Helm チャートを使用して AKS に Flyte をインストールする方法を学習しました。 この Flyte プロジェクトは、すべての依存関係を自動的に構成し、運用グレードの Flyte クラスターをデプロイする AKS 用のリファレンス実装も保持します。

データと機械学習パイプラインの構築とデプロイを開始するには、次の記事を参照してください。