Azure CLI を使用したクラスター拡張機能のデプロイと管理

AKS クラスターに拡張機能インスタンスを作成し、更新と構成に関連するオプションを含む必須パラメーターと省略可能なパラメーターを設定できます。 拡張機能インスタンスを表示、一覧表示、更新、削除することもできます。

開始する前に、クラスター拡張機能についてお読みください。

注意

この記事で提供されている例は完全なものではなく、機能を紹介するだけのサンプルです。 コマンドとそのパラメーターの包括的な一覧については、az k8s-extension の CLI リファレンスを参照してください。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。

  • Microsoft.ContainerService および Microsoft.KubernetesConfiguration リソース プロバイダーは、サブスクリプションに登録する必要があります。 これらのプロバイダーを登録するには、次のコマンドを実行します。

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • AKS クラスター。 クラスター拡張機能はサービス プリンシパル ベースのクラスターでは機能しないため、このクラスターはマネージド ID で作成されている必要があります。 az aks create で作成される新しいクラスターの場合、マネージド ID が既定で構成されます。 既存のサービス プリンシパル ベースのクラスターの場合は、--enable-managed-identity フラグを指定して az aks update を実行してマネージド ID に切り替えます。 詳細については、マネージド ID の使用に関するページを参照してください。

  • Azure CLI バージョン >= 2.16.0 がインストールされています。 最新のバージョンを使用することをお勧めします。

  • 最新バージョンの k8s-extension Azure CLI 拡張機能。 次のコマンドを実行して拡張機能をインストールします。

    az extension add --name k8s-extension
    

    拡張機能が既にインストールされている場合は、次のコマンドを使用して、最新バージョンを実行していることを確認します。

    az extension update --name k8s-extension
    

拡張機能インスタンスの作成

k8s-extension create を使用して、必須パラメーターの値を渡して、新しい拡張機能インスタンスを作成します。 この例のコマンドは、AKS クラスターに Azure Machine Learning 拡張機能インスタンスを作成します。

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

このコマンド例では、AKS クラスターにサンプルの Kubernetes アプリケーション (Marketplace で公開) を作成します。

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

Note

クラスター拡張機能サービスでは、48 時間よりも長く機密情報を保持することはできません。 クラスター拡張機能エージェントに 48 時間よりも長くネットワーク接続がなく、クラスターに拡張機能を作成するかどうかを判断できない場合、拡張機能は Failed 状態に遷移します。 Failed 状態になった後は、新しい拡張機能インスタンスを作成するために、k8s-extension create を再び実行する必要があります。

必須のパラメーター

パラメーター名 説明
--name 拡張機能インスタンスの名前
--extension-type クラスターにインストールする拡張機能の種類。 例: Microsoft.AzureML.Kubernetes
--cluster-name 拡張機能インスタンスを作成する必要がある必要な AKS クラスターの名前。
--resource-group AKS クラスターを含むリソース グループ
--cluster-type 拡張機能インスタンスを作成する必要があるクラスターの種類。 AKS クラスターにマップする際、managedClusters を指定します。

省略可能なパラメーター

パラメーター名 説明
--auto-upgrade-minor-version 拡張機能のマイナー バージョンを自動的にアップグレードするかどうかを指定するブール型プロパティ。 既定値:true。 このパラメーターが true に設定されている場合、バージョンは動的に更新されるため、version パラメーターは設定できません。 false に設定されている場合、パッチ バージョンでも、拡張機能は自動アップグレードされません。
--version インストールする拡張機能のバージョン (拡張機能インスタンスの固定先の特定バージョン)。 auto-upgrade-minor-version が true に設定されている場合、指定しないでください。
--configuration-settings 機能を制御するために拡張機能に渡すことができる設定。 パラメーター名の後に、スペース区切りの key=value ペアとして値を渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings-file は使用できません。
--configuration-settings-file 拡張機能に構成設定を渡すために使用されるキーと値のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings は使用できません。
--configuration-protected-settings これらの設定は、GET API 呼び出しまたは az k8s-extension show コマンドを使用して取得できないため、機密設定を渡すために使用されます。 パラメーター名の後に、スペース区切りの key=value ペアとして値を渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings-file は使用できません。
--configuration-protected-settings-file 拡張機能に機密設定を渡すために使用されるキーと値のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings は使用できません。
--scope 拡張機能のインストールのスコープ - cluster または namespace
--release-namespace このパラメーターは、リリースを作成する名前空間を示します。 このパラメーターは、scope パラメーターが cluster に設定されている場合にのみ関係します。
--release-train 拡張機能の作成者は、StablePreview など、さまざまなリリース トレインでバージョンを公開できます。このパラメーターが明示的に設定されていない場合、既定値として Stable が使用されます。 --auto-upgrade-minor-version パラメーターが false に設定されている場合、このパラメーターは使用できません。
--target-namespace このパラメーターは、リリースを作成する名前空間を示します。 この拡張機能インスタンスに対して作成されたシステム アカウントのアクセス許可は、この名前空間に制限されます。 このパラメーターは、scope パラメーターが namespace に設定されている場合にのみ関係します。
--plan-name 拡張機能のプラン ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。
--plan-product 拡張機能の製品 ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。 この例は、使用される ISV オファリングの名前です。
--plan-publisher 拡張機能のパブリッシャー ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。

拡張機能インスタンスの詳細を表示する

現在インストールされている拡張機能インスタンスの詳細を表示するには、k8s-extension show を使用し、必須パラメーターの値を渡します。

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

クラスターにインストールされているすべての拡張機能を一覧表示する

クラスターにインストールされているすべての拡張機能を一覧表示するには、k8s-extension list を使用し、必須パラメーターの値を渡します。

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

拡張機能インスタンスの更新

Note

--configuration-settings および --configuration-protected-settings の更新可能な特定の設定について理解するには、特定の拡張機能の種類のドキュメントを参照してください。 --configuration-protected-settings の場合、更新する設定が 1 つだけでも、すべての設定を指定することが想定されています。 これらの設定のいずれかを省略した場合、これらの設定は古いと見なされ、削除されます。

既存の拡張機能インスタンスを更新するには、k8s-extension update を使用して、必須パラメーターの値を渡します。 次のコマンドは、Azure Machine Learning 拡張機能インスタンスの自動アップグレード設定を更新します。

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

更新に必要なパラメーター

パラメーター名 説明
--name 拡張機能インスタンスの名前
--extension-type クラスターにインストールする拡張機能の種類。 例: Microsoft.AzureML.Kubernetes
--cluster-name 拡張機能インスタンスを作成する必要がある必要な AKS クラスターの名前。
--resource-group AKS クラスターを含むリソース グループ
--cluster-type 拡張機能インスタンスを作成する必要があるクラスターの種類。 AKS クラスターにマップする際、managedClusters を指定します。

Marketplace から入手した Kubernetes アプリケーションを更新する場合は、次のパラメーターも必要です。

パラメーター名 説明
--plan-name 拡張機能のプラン ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。
--plan-product 拡張機能の製品 ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。 この例は、使用される ISV オファリングの名前です。
--plan-publisher 拡張機能のパブリッシャー ID。Azure portal の [Marketplace] ページの [使用状況情報とサポート] で確認できます。

オプションの更新パラメーター

パラメーター名 説明
--auto-upgrade-minor-version 拡張機能のマイナー バージョンを自動的にアップグレードするかどうかを指定するブール型プロパティ。 既定値:true。 このパラメーターが true に設定されている場合、バージョンは動的に更新されるため、version パラメーターは設定できません。 false に設定されている場合、パッチ バージョンでも、拡張機能は自動アップグレードされません。
--version インストールする拡張機能のバージョン (拡張機能インスタンスの固定先の特定バージョン)。 auto-upgrade-minor-version が true に設定されている場合、指定しないでください。
--configuration-settings 機能を制御するために拡張機能に渡すことができる設定。 更新を必要とする設定のみを指定する必要があります。 指定された設定は、指定された値で置き換えられます。 パラメーター名の後に、スペース区切りの key=value ペアとして値を渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings-file は使用できません。
--configuration-settings-file 拡張機能に構成設定を渡すために使用されるキーと値のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings は使用できません。
--configuration-protected-settings これらの設定は、GET API 呼び出しまたは az k8s-extension show コマンドを使用して取得できないため、機密設定を渡すために使用されます。 設定を更新する際は、すべての設定が指定済みである必要があります。 一部の設定を省略した場合、これらの設定は古いと見なされ、削除されます。 パラメーター名の後に、スペース区切りの key=value ペアとして値を渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings-file は使用できません。
--configuration-protected-settings-file 拡張機能に機密設定を渡すために使用されるキーと値のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings は使用できません。
--scope 拡張機能のインストールのスコープ - cluster または namespace
--release-train 拡張機能の作成者は、StablePreview など、さまざまなリリース トレインでバージョンを公開できます。このパラメーターが明示的に設定されていない場合、既定値として Stable が使用されます。 autoUpgradeMinorVersion パラメーターが false に設定されている場合、このパラメーターは使用できません。

拡張機能インスタンスを削除する

クラスター上の拡張機能インスタンスを削除するには、k8s-extension-delete を使用し、必須パラメーターの値を渡します。

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Note

この拡張機能を表す Azure リソースはただちに削除されます。 Kubernetes クラスターで実行されているエージェントがネットワークに接続していて、目的の状態を取得するために Azure サービスに再びアクセスできる場合にのみ、この拡張機能に関連するクラスターの Helm リリースが削除されます。

次のステップ