Azure 容器執行個體 待命集區 (預覽)
重要
Azure 容器執行個體 待命集區目前處於預覽狀態。 若您同意補充的使用規定即可取得預覽。 在公開上市 (GA) 之前,此功能的某些領域可能會變更。
Azure 容器執行個體 待命集區可讓您建立預先布建容器群組的集區,以回應連入流量。 集區中的容器群組已完整布建、初始化,並準備好接收工作。
限制
Azure 容器執行個體 的待命集區無法在 Azure 入口網站 中使用。
必要條件
功能註冊
使用 Azure Cloud Shell 對訂用帳戶註冊待命集區資源提供者和待命集區預覽功能。 註冊最多可能需要 30 分鐘才能成功顯示為已註冊。 您可以重新執行下列命令,以判斷功能何時成功註冊。
Register-AzResourceProvider -ProviderNameSpace Microsoft.ContainerInstance
Register-AzResourceProvider -ProviderNamespace Microsoft.StandbyPool
Register-AzProviderFeature -FeatureName StandbyContainerGroupPoolPreview -ProviderNamespace Microsoft.StandbyPool
角色型存取控制權限
若要允許待命集區在您的訂用帳戶中建立容器群組,請將適當的許可權指派給待命集區資源提供者。
- 在 Azure 入口網站中,瀏覽到訂用帳戶。
- 選取您想要調整許可權的訂用帳戶。
- 選取存取控制 (IAM)。
- 選取 [新增] 和 [新增角色指派]。
- 在 [ 角色] 索引標籤下,搜尋 待命容器群組集區參與者 並加以選取。
- 移至 [ 成員] 索引標籤。
- 選取 + 選取成員。
- 搜尋 待命集區資源提供者 ,然後加以選取。
- 移至 [ 檢閱 + 指派] 索引標籤。
- 套用變更。
- 重複上述步驟也會將 Azure 容器執行個體 參與者角色和網路參與者轉為待命集區資源提供者。
如需指派角色的詳細資訊,請參閱使用 Azure 入口網站指派 Azure 角色。
從待命集區使用容器
當您需要新的容器群組時,您可以立即從布建和執行的待命集區提取一個。
待命集區只會從已完全布建且準備好接收工作的集區中提供容器群組。 例如,當集區中的實例仍在初始化時,它們不會處於執行中狀態,而且在要求容器時不會提供。 如果集區中沒有可用的實例,Azure 容器執行個體 預設會回到新的容器群組建立。
待命集區大小
待命集區中的容器群組數目取決於設定 maxReadyCapacity
參數。 從集區取用容器群組時,待命集區會自動開始重新填滿,以確保您的待命集區維持設定的就緒容量上限。
Azure 容器實例上待命集區的唯一可用重新填入原則是 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"
}
}
設定對應
組態對應是一個屬性,可以與容器群組配置文件相關聯,並用來套用類似環境變數和秘密磁碟區的容器組態。 不過,使用環境變數或秘密磁碟區時,需要重新啟動Pod,變更才會生效。 藉由使用組態對應,即可套用設定,而不需重新啟動容器。 這可啟用頻外更新,讓容器可以在不重新啟動的情況下讀取新的值。
Azure 容器執行個體 可以搭配或不使用組態對應來建立,而且可以使用設定對應在建立后的任何時間點更新。 更新現有執行中容器群組中的組態對應可以快速完成,而不會造成容器重新啟動。
如需詳細資訊,請參閱 使用設定對應。
{
"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 容器實例的待命集區支援機密容器。 若要利用 機密容器 ,請將 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 容器執行個體 支援與受控識別的整合。 從待命集區要求容器並包括 identity
參數和設定時,會執行套用受控識別。 受控識別不是直接在容器群組配置檔中支持的屬性。
{
"location": "{location}",
"properties": {
"standByPoolProfile":{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerGroupPools/{standbyPoolName}"
},
"containerGroupProfile": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ContainerInstance/containerGroupProfiles/{mycontainergroupprofile}",
"revision": {revisionNumber}
},
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity}": {}
},
"containers": [
{
"name": "{mycontainergroupprofile}",
"properties": {
"configMap": {
"keyValuePairs": {
"{newKey}": "{newValue}"
}
}
}
}
]
}
}
可用性區域
Azure 容器執行個體 的待命集區支援跨可用性區域建立和要求容器。 目前,只有使用 2024-08-01-preview 版的待命集區 REST API 才能建立區域性待命集區,而且僅適用於印度中部區域。
建立區域性待命集區
PUT https://management.azure.com/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.StandbyPool/standbyContainerGroupPools/myStandbyPool?api-version=2024-08-01-preview
Request Body
{
"properties": {
"elasticityProfile": {
"maxReadyCapacity": 20,
"refillPolicy": "always"
},
"containerGroupProperties": {
"containerGroupProfile": {
"id": "/subscriptions/{SubscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroupProfiles/mycontainergroupprofile",
"revision": 1
},
"subnetIds": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNET/subnets/mySubnet"
}
]
},
"zones": [
"1",
"2",
"3"
]
},
"location": "West Central US"
}
下一步
建立 Azure 容器執行個體 的待命集區。