探索 Azure Container Apps 中的容器

已完成

Azure Container Apps 會為您管理 Kubernetes 和容器協調流程的詳細數據。 Azure Container Apps 中的容器可以使用您選擇的任何運行時間、程式設計語言或開發堆疊。

圖表,顯示 Azure Container App 的容器如何在修訂快照集內的 Pod 中群組在一起。

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)容器映像。