Megosztás a következőn keresztül:


Tárolók az Azure Container Appsben

Az Azure Container Apps kezeli Ön helyett a Kubernetes és a tárolóvezénylés részleteit. Az Azure Container Appsben található tárolók bármilyen, Ön által választott futtatókörnyezetet, programnyelvet vagy fejlesztői vermet használhatnak.

Azure Container Apps: Tárolók

Az Azure Container Apps a következőket támogatja:

  • Bármely Linux-alapú x86-64 (linux/amd64) tárolórendszerkép
  • Tárolók bármely nyilvános vagy privát tárolóregisztrációs adatbázisból
  • Opcionális oldalkocsi- és inittárolók

A funkciók közé tartoznak a következők is:

  • Az alkalmazások a template konfigurációs szakasz használatával határozzák meg a tároló lemezképét és egyéb beállításait. template A konfigurációs szakasz módosításai új tárolóalkalmazás-változatot aktiválnak.
  • Ha egy tároló összeomlik, az automatikusan újraindul.

A feladatok funkciói a következők:

  • A feladatvégrehajtások a template konfigurációs szakasz használatával határozzák meg a tároló lemezképét és egyéb beállításait az egyes végrehajtások indításakor.
  • Ha egy tároló nem nulla kilépési kóddal lép ki, a feladat végrehajtása sikertelenként van megjelölve. A feladat konfigurálható a sikertelen végrehajtások újrapróbálkozására.

Konfiguráció

A legtöbb tárolóalkalmazás egyetlen tárolóval rendelkezik. Speciális helyzetekben előfordulhat, hogy egy alkalmazás oldalkocsis és init tárolókkal is rendelkezik. A tárolóalkalmazás-definíciókban a fő alkalmazás és az oldalkocsis tárolók a szakasz tömbjében containers properties.template , az Init-tárolók pedig a initContainers tömbben jelennek meg. Az alábbi részlet az alkalmazás tárolóinak beállításakor elérhető konfigurációs beállításokat mutatja be.

{
  "properties": {
    "template": {
      "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": "/appsettings",
              "volumeName": "appsettings-volume"
            }
          ],
          "probes": [
            {
              "type": "liveness",
              "httpGet": {
                "path": "/health",
                "port": 8080,
                "httpHeaders": [
                  {
                    "name": "Custom-Header",
                    "value": "liveness probe"
                  }
                ]
              },
              "initialDelaySeconds": 7,
              "periodSeconds": 3
            },
            {
              "type": "readiness",
              "tcpSocket": {
                "port": 8081
              },
              "initialDelaySeconds": 10,
              "periodSeconds": 3
            },
            {
              "type": "startup",
              "httpGet": {
                "path": "/startup",
                "port": 8080,
                "httpHeaders": [
                  {
                    "name": "Custom-Header",
                    "value": "startup probe"
                  }
                ]
              },
              "initialDelaySeconds": 3,
              "periodSeconds": 3
            }
          ]
        }
      ]
    },
    "initContainers": [
      {
        "name": "init",
        "image": "[parameters('init_container_image')]",
        "resources": {
          "cpu": 0.25,
          "memory": "0.5Gi"
        },
        "volumeMounts": [
          {
            "mountPath": "/appsettings",
            "volumeName": "appsettings-volume"
          }
        ]
      }
    ]
    ...
  }
  ...
}
Beállítás Leírás Megjegyzések
image A tárolóalkalmazás tárolólemezképének neve. Ez az érték a következő formában jelenik meg repository/<IMAGE_NAME>:<TAG>: .
name A tároló rövid neve. Jelentéskészítéshez és azonosításhoz használatos.
command A tároló indítási parancsa. Egyenértékű a Docker belépési mezőjével .
args Parancsargumentumok indítása. A tömb bejegyzései össze vannak adva, hogy létrehozzák az indítási parancsnak átadott paraméterlistát.
env Környezeti változókat definiáló név-érték párok tömbje. Használja secretRef a mező helyett egy value titkos kódra való hivatkozáshoz.
resources.cpu A tárolóhoz lefoglalt CPU-k száma. Lásd a vCPU és a memóriafoglalás követelményeit
resources.memory A tárolóhoz lefoglalt RAM mennyisége. Lásd a vCPU és a memóriafoglalás követelményeit
volumeMounts Mennyiségi csatlakoztatási definíciók tömbje. A tárolóhoz ideiglenes vagy állandó tárolóköteteket határozhat meg. A tárolókötetekkel kapcsolatos további információkért lásd : Tárolócsatlakozások használata az Azure Container Appsben.
probes A tárolóban engedélyezett állapotminták tömbje. A mintavételi beállításokról további információt az Azure Container Apps állapottesztjei című témakörben talál.

vCPU- és memóriafoglalási követelmények

A használatalapú csomag használatakor a tárolóalkalmazás összes tárolójának lefoglalt teljes PROCESSZOR- és memóriamennyiségnek az alábbi kombinációk egyikéhez kell hozzáadnia.

vCPU-k (magok) Memory (Memória)
0.25 0.5Gi
0.5 1.0Gi
0.75 1.5Gi
1.0 2.0Gi
1.25 2.5Gi
1.5 3.0Gi
1.75 3.5Gi
2.0 4.0Gi
2.25 4.5Gi
2.5 5.0Gi
2.75 5.5Gi
3.0 6.0Gi
3.25 6.5Gi
3.5 7.0Gi
3.75 7.5Gi
4.0 8.0Gi

Feljegyzés

A csak használatalapú környezetben a Használat csomagot használó alkalmazások legfeljebb 2 magra és 4Gi memóriára korlátozódnak.

Több tároló

Speciális esetekben több tárolót is futtathat egyetlen tárolóalkalmazásban. Ezt a mintát csak azokban az esetekben használja, ahol a tárolók szorosan kapcsolódnak egymáshoz.

A legtöbb mikroszolgáltatási forgatókönyv esetében az ajánlott eljárás az egyes szolgáltatások külön tárolóalkalmazásként való üzembe helyezése.

Ugyanazon tárolóalkalmazás több tárolója osztozik a merevlemezen és a hálózati erőforrásokon, és ugyanazt az alkalmazás életciklusát tapasztalja.

A tárolóalkalmazásokban kétféleképpen futtathat további tárolókat: oldalkocsis tárolókat és init-tárolókat.

Oldalkocsis tárolók

Egyetlen tárolóalkalmazásban több tárolót is definiálhat az oldalkocsi-minta implementálásához.

Ilyenek például az oldalkocsis tárolók:

  • Egy ügynök, amely naplókat olvas az elsődleges alkalmazástárolóból egy megosztott köteten , és továbbítja őket egy naplózási szolgáltatásnak.

  • Egy háttérfolyamat, amely frissíti a megosztott kötet elsődleges alkalmazástárolója által használt gyorsítótárat.

Ezek a forgatókönyvek példák, és nem csak az oldalkocsik implementálásának módjait jelölik.

Ha több tárolót szeretne futtatni egy tárolóalkalmazásban, adjon hozzá egynél több tárolót a containers tárolóalkalmazás-sablon tömbjéhez.

Init-tárolók

Egy vagy több inicializálási tárolót definiálhat egy tárolóalkalmazásban. Az Init-tárolók az elsődleges alkalmazástároló előtt futnak, és inicializálási feladatok végrehajtására szolgálnak, például adatok letöltésére vagy a környezet előkészítésére.

Az Init-tárolók a initContainers tárolóalkalmazás-sablon tömbjében vannak definiálva. A tárolók a tömbben meghatározott sorrendben futnak, és az elsődleges alkalmazástároló elindítása előtt sikeresen be kell fejeződniük.

Feljegyzés

A dedikált csomagot használó vagy csak használatalapú környezetben futó alkalmazások tárolói nem férnek hozzá a felügyelt identitásokhoz futásidőben.

Tárolóregisztrációs adatbázisok

Magánregisztrációs adatbázisokban üzemeltetett rendszerképeket úgy helyezhet üzembe, hogy hitelesítő adatokat ad meg a Container Apps konfigurációjában.

Tárolóregisztrációs adatbázis használatához a tárolóalkalmazás erőforrássablonjának szakaszában található tömbben registries properties.configuration kell meghatároznia a beállításjegyzéket. A passwordSecretRef mező azonosítja a titkos kód nevét abban a secrets tömbnévben, ahol a jelszót definiálta.

{
  ...
  "registries": [{
    "server": "docker.io",
    "username": "my-registry-user-name",
    "passwordSecretRef": "my-password-secret-name"
  }]
}

A mentett hitelesítő adatokkal lekérhet egy tárolólemezképet a privát beállításjegyzékből az alkalmazás üzembe helyezésekor.

Az alábbi példa bemutatja, hogyan konfigurálhatja az Azure Container Registry hitelesítő adatait egy tárolóalkalmazásban.

{
  ...
  "configuration": {
    "secrets": [
      {
        "name": "docker-hub-password",
        "value": "my-docker-hub-password"
      }
    ],
    ...
    "registries": [
      {
        "server": "docker.io",
        "username": "someuser",
        "passwordSecretRef": "docker-hub-password"
      }
    ]
  }
}

Feljegyzés

A Docker Hub korlátozza a Docker-rendszerképek letöltéseinek számát. A korlát elérésekor az alkalmazásban lévő tárolók nem indulnak el. A probléma elkerülése érdekében használjon megfelelő korlátozásokkal rendelkező beállításjegyzéket, például az Azure Container Registryt .

Felügyelt identitás az Azure Container Registry használatával

Azure-beli felügyelt identitással hitelesítést végezhet az Azure Container Registryben felhasználónév és jelszó használata helyett. További információ: Felügyelt identitások az Azure Container Appsben.

A felügyelt identitás beállításjegyzékkel való használatához engedélyezni kell az identitást az alkalmazásban, és szerepkört kell hozzárendelni acrPull a beállításjegyzékhez. A beállításjegyzék konfigurálásához használja a felügyelt identitás erőforrás-azonosítóját egy felhasználó által hozzárendelt identitáshoz, vagy system a rendszer által hozzárendelt identitáshoz a identity beállításjegyzék tulajdonságában. Ne konfiguráljon felhasználónevet és jelszót felügyelt identitás használatakor.

{
    "identity": {
        "type": "SystemAssigned,UserAssigned",
        "userAssignedIdentities": {
            "<IDENTITY1_RESOURCE_ID>": {}
        }
    }
    "properties": {
        "configuration": {
            "registries": [
            {
                "server": "myacr1.azurecr.io",
                "identity": "<IDENTITY1_RESOURCE_ID>"
            },
            {
                "server": "myacr2.azurecr.io",
                "identity": "system"
            }]
        }
        ...
    }
}

További információ a felhasználó által hozzárendelt identitások konfigurálásáról: Felhasználó által hozzárendelt identitás hozzáadása.

Korlátozások

Az Azure Container Appsre a következő korlátozások vonatkoznak:

  • Emelt szintű tárolók: Az Azure Container Apps nem engedélyezi a gazdagépszintű hozzáféréssel rendelkező kiemelt tárolókat.

  • Operációs rendszer: Linux-alapú (linux/amd64) tárolólemezképek szükségesek.

  • Maximális képméret:

    • A használati számítási feladatok profilja minden alkalmazáshoz vagy feladatreplikához legfeljebb 8 GB-os tárolólemezképeket támogat.
    • A dedikált számítási feladatok profiljai támogatják a nagyobb tárolólemezképeket. Mivel egy dedikált számítási feladatprofil több alkalmazást vagy feladatot is futtathat, több tárolólemezkép is osztozik a rendelkezésre álló lemezterületen. A tényleges támogatott képméret a más alkalmazások és feladatok által felhasznált erőforrásoktól függően változik.

Következő lépések