Azure Kubernetes Service (AKS) で Flyte を使用してデータと機械学習パイプラインを構築してデプロイする
この記事では、Azure Kubernetes Service (AKS) で Flyte を使用する方法を説明します。 Flyte は、機械学習、データ エンジニアリング、データ分析スタックが統合されたオープンソースのワークフロー オーケストレーターで、堅牢で信頼性の高いアプリケーションを構築するのに役立ちます。 Kubernetes ネイティブのワークフロー自動化ツールとして Flyte を使用する場合は、インフラストラクチャとリソース管理の範囲を広げることなく、実験とビジネス価値の提供に集中できます。 Flyte は Microsoft によって正式にサポートされていないため、ご自身の判断で使用してください。
詳細については、Flyte の概要に関するページを参照してください。
重要
オープンソース ソフトウェアは、AKS のドキュメントとサンプル全体で説明されています。 デプロイするソフトウェアは、AKS サービス レベル アグリーメント、限定保証、Azure サポートから除外されます。 AKS と共にオープンソース テクノロジを使用する場合は、それぞれのコミュニティとプロジェクト保守担当者から受けられるサポート オプションを調べ、計画を策定してください。
たとえば、Ray の GitHub リポジトリでは、応答時間、目的、サポート レベルが異なる複数のプラットフォームについて説明しています。
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」を参照してください。
flytekit
とflytectl
がインストールされている。 詳細については、Flyte のインストールに関するページを参照してください。
Note
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 クラスターを作成する
az group create
コマンドを使用して、AKS クラスター用の Azure リソース グループを作成します。az group create --name $RESOURCE_GROUP --location $LOCATION
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 クラスターに接続する
az aks get-credentials
コマンドを使用して、AKS クラスターに接続するようにkubectl
を構成します。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 チャートを検索する
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
helm repo update
コマンドを使用してリポジトリを更新します。helm repo update
AKS に Flyte チャートをデプロイする
このセクションでは、flyte-binary Helm チャートをデプロイして、AKS で Flyte を使用してデータと機械学習パイプラインの構築とデプロイを開始できるようにします。 flyte-binary チャートは、基本的な単一の Flyte 実行可能ファイルのデプロイです。
kubectl create namespace
コマンドを使用して、Flyte デプロイの名前空間を作成します。kubectl create namespace <namespace-name>
helm install
コマンドを使用して Flyte Helm チャートをインストールします。 この例では、flyte-binary
チャートを使用します。helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
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 用のリファレンス実装も保持します。
データと機械学習パイプラインの構築とデプロイを開始するには、次の記事を参照してください。
Azure Kubernetes Service