次の方法で共有


Azure Container Instances のスタンバイ プール

重要

スタンバイ プールでリソースを正常に作成および管理するには、サブスクリプション内の関連リソースへのアクセスが必要です。 スタンバイ プールが正常に機能するためには、スタンバイ プール リソース プロバイダーに適切なアクセス許可が割り当てられていることを確認します。 詳細な手順については、 スタンバイ プールのロールのアクセス許可の構成に関する記事を参照してください。

Azure Container Instances のスタンバイ プールを使用すると、受信トラフィックに対応するために使用できる事前プロビジョニング済みコンテナー グループのプールを作成できます。 このプール内のコンテナー グループは、プロビジョニング、初期化、仕事を受け取るための準備が完全に完了しています。

従来のパスとスタンバイ プールのパスを使用したコンテナー作成のワークフローの図。

制限事項

Azure Container Instances のスタンバイ プールの作成と管理は、Azure portal ではまだ使用できません。

前提条件

プロバイダーの登録

Azure Cloud Shell を使用して、スタンバイ プール リソース プロバイダーをサブスクリプションに登録します。 登録は、登録済みとして表示されるまで最大で 30 分かかる場合があります。 次のコマンドを再実行して、機能が正常に登録されたタイミングを判断できます。

Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool

ロールベースのアクセス制御のアクセス許可を構成する

スタンバイ プールがサブスクリプション内のコンテナー インスタンスを作成および管理できるようにするには、スタンバイ プール リソース プロバイダーに適切なアクセス許可を割り当てます。 詳細な手順と情報については、「 Azure Container Instances でのスタンバイ プールのロールアクセス許可の構成」を参照してください。

スタンバイ プールのコンテナーの使用

新しいコンテナー グループが必要な場合は、プロビジョニングされ実行中であるスタンバイ プールからコンテナー グループを即座にプルすることができます。

スタンバイ プールは、プロビジョニングと作業を受け取る準備が完全にできているプールのコンテナー グループしか提供しません。 たとえば、プール内のインスタンスがまだ初期化中の場合、それらは実行状態ではなく、コンテナーが要求された際に提供はされません。 プール内に利用できるインスタンスがない場合、Azure Container Instances は既定の動作として新しいコンテナー グループの作成を行います。

スタンバイ プールのサイズ

スタンバイ プール内のコンテナー グループの数は、maxReadyCapacity パラメーターを設定することによって決まります。 プールのコンテナー グループが消費されると、スタンバイ プールで設定された最大準備容量が維持されるように、スタンバイ プールは自動的に補充を開始します。

現時点では、Azure Container Instances のスタンバイ プールで使用可能なリフィル ポリシーは Alwaysのみです。

設定 説明
maxReadyCapacity プール内にデプロイしたいコンテナー グループの最大数。
refillPolicy maxReadyCapacity を維持するためにコンテナー グループをすぐに補充するようにスタンバイ プールに指示します。

コンテナー グループ プロファイル

コンテナー グループ プロファイルは、プール内のコンテナーを構成する方法をスタンバイ プールに指示します。 コンテナー グループ プロファイルに何らかの変更を加えた場合は、更新内容がプール内のインスタンスに適用されるように、スタンバイ プールも更新する必要があります。

{
    "___location":"{___location}",
    "properties":{
        "containers": [
        {
            "name":"[mycontainergroupprofile]",
            "properties": {
                "command":[],
                "environmentVariables":[],
                "image":"mcr.microsoft.com/azuredocs/aci-helloworld:latest",
                "ports":[
                    {
                        "port":8000
                    }
                ],
                "resources": {
                    "requests": {
                        "cpu":1,
                        "memoryInGB":1.5
                                }
                            }
                        }
                    }
                ],
                "imageRegistryCredentials":[],
                "ipAddress":{
                "ports":[
                    {
                        "protocol":"TCP",
                        "port":8000
                    }
            ],
            "type":"Public"
            },
            "osType":"Linux",
            "sku":"Standard"
            }
        }


構成マップ

構成マップは、コンテナー グループ プロファイルに関連付けることができ、環境変数やシークレット ボリュームと同様にコンテナー構成を適用するために使用できるプロパティです。 しかし、環境変数やシークレット ボリュームを使用する場合は、変更を適用するためにはポッドの再起動が必要になります。 構成マップを使用することで、コンテナーを再起動することなく構成を適用することができます。 これによって、コンテナーが再起動なしで新しい値を読み取ることができるアウトオブバンド更新が可能になります。

Azure Container Instances は、構成マップの有無に関係なく作成でき、作成後の任意のタイミングで構成マップを使用して更新することができます。 既存の実行中のコンテナー グループ内の構成マップの更新は、コンテナーを再起動することなく、すばやく実行できます。

詳細については、「構成マップの使用」を参照してください。

{
    "properties": {
        "containers": [
            {
                "name": "{mycontainergroupprofile}",
                "properties": {
                    "image": "mcr.microsoft.com/azuredocs/aci-helloworld",
                    "ports": [
                        {
                            "port": 80,
                            "protocol": "TCP"
                        }
                    ],
                    "resources": {
                        "requests": {
                            "memoryInGB": 0.5,
                            "cpu": 0.5
                        }
                    },
                    "configMap": {
                        "keyValuePairs": {
                            "key1": "value1",
                            "key2": "value2"
                        }
                    }
                }
            }
        ],
        "osType": "Linux",
        "ipAddress": {
            "type": "Public",
            "ports": [
                {
                    "protocol": "tcp",
                    "port": 80
                }
            ]
        }
    },
    "___location": "{___location}"
}

機密コンテナー

Azure Container Instances のスタンバイ プールは、機密コンテナーをサポートしています。 機密コンテナーを利用するには、コンテナー グループ プロファイル内で sku タイプを Confidential に更新します。

重要

構成マップを使用して渡された値は、ファイル マウントがコンテナーで利用できるようになるまでは、セキュリティ ポリシーには含まれず、ランタイムによっても検証されません。 データまたはアプリケーションのセキュリティに影響を与える可能性のある値は、実行中にアプリケーションによって信頼されることができず、代わりに環境変数を使用してコンテナーで使用できるようにする必要があります。

{
    "___location":"{___location}",
    "properties":{
        "containers": [
        {
            "name":"{mycontainergroupprofile}",
            "properties": {
                "command":[],
                "environmentVariables":[],
                "image":"mcr.microsoft.com/azuredocs/aci-helloworld:latest",
                "ports":[
                    {
                        "port":8000
                    }
                ],
                "resources": {
                    "requests": {
                        "cpu":1,
                        "memoryInGB":1.5
                                }
                            }
                        }
                    }
                ],
                "imageRegistryCredentials":[],
                "ipAddress":{
                "ports":[
                    {
                        "protocol":"TCP",
                        "port":8000
                    }
            ],
            "type":"Public"
            },
            "osType":"Linux",
            "sku":"Confidential"
            }
        }


可用性ゾーン

重要

Azure Container Instances の可用性ゾーンは現在プレビュー段階です。 プレビュー版は、追加使用条件に同意することを条件に使用できます。 この機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。

Azure Container Instances のスタンバイ プールは、複数の可用性ゾーンにまたがるコンテナーの作成と要求をサポートしています。 特定のゾーン内のインスタンスを含むスタンバイ プールを作成するには、スタンバイ プール作成要求で zones パラメーターを指定します。

az standby-container-group-pool create \
   --resource-group myResourceGroup \
   --___location WestCentralUS \
   --name myStandbyPool \
   --max-ready-capacity 20 \
   --refill-policy always \
   --zones 1,2,3 \
   --container-profile-id "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile"

次の手順

Azure Container Instances のスタンバイ プールを作成します