探索 Azure Container Apps 中的容器
Azure Container Apps 會為您管理 Kubernetes 和容器協調流程的詳細數據。 Azure Container Apps 中的容器可以使用您選擇的任何運行時間、程式設計語言或開發堆疊。
Azure Container Apps 支援任何以 Linux 為基礎的 x86-64 (linux/amd64
) 容器映像。 沒有必要的基底容器映像,如果容器損毀,它就會自動重新啟動。
配置
下列程式代碼是容器應用程式資源範本 properties.template
區段中 containers
陣列的範例。 摘錄顯示使用 Azure Resource Manager (ARM) 範本時設定容器時的一些可用組態選項。 範本 ARM 組態區段的變更會觸發新的容器應用程式修訂。
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
}
]
"probes":[
{
"type":"liveness",
"httpGet":{
"path":"/health",
"port":8080,
"httpHeaders":[
{
"name":"Custom-Header",
"value":"liveness probe"
}]
},
"initialDelaySeconds":7,
"periodSeconds":3
// file is truncated for brevity
多個容器
您可以在單一容器應用程式中定義多個容器,以實作 側車模式。 容器應用程式中的容器會共用硬碟和網路資源,並體驗相同的應用程式生命週期。
側車容器的範例包括:
- 從共用磁碟區上的主要應用程式容器讀取記錄的代理程式,並將其轉送至記錄服務。
- 重新整理共用磁碟區中主要應用程式容器所使用的快取的背景進程。
注意
在單一容器應用程式中執行多個容器是進階使用案例。 在大部分您想要執行多個容器的情況下,例如實作微服務架構時,請將每個服務部署為個別的容器應用程式。
若要在容器應用程式中執行多個容器,請在容器應用程式範本的容器陣列中新增多個容器。
容器註冊庫
您可以在 Container Apps 設定中提供認證,以部署裝載於私人登錄的映像。
若要使用容器登錄,您可以在容器應用程式資源範本的 properties.configuration 區段中,定義 registries 陣列中的必要字段。 passwordSecretRef 字段會識別您定義密碼之 secrets 陣列名稱中的秘密名稱。
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
新增登錄資訊后,儲存的認證可用來在部署應用程式時,從私人登錄提取容器映像。
局限性
Azure Container Apps 有下列限制:
- 特殊許可權容器:Azure Container Apps 無法執行具特殊許可權的容器。 如果您的程式嘗試執行需要根存取的進程,容器內的應用程式就會發生運行時錯誤。
-
作業系統:需要以Linux為基礎之(
linux/amd64
)容器映像。