Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure Container Apps kezeli a Kubernetes és a tárolóvezénylés részleteit. Az Azure Container Apps tárolói tetszőleges futtatókörnyezetet, programozási nyelvet vagy fejlesztési vermet használhatnak.
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
templatekonfigurációs szakasz használatával határozzák meg a tároló lemezképét és egyéb beállításait.templateA 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
templatekonfigurá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 egy alkalmazás oldalkocsis és inicializáló tárolókkal is rendelkezhet. A tárolóalkalmazás-definícióban a fő alkalmazás és az oldalkocsis tárolók a containers szakasz properties.template tömbjében, 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 konténerképének neve. | Ez az érték a következő formában jelenik meg repository/<IMAGE_NAME>:<TAG>: . Kerülje a statikus címkék használatát, például latest tárolólemezképekhez. A statikus címkék használata gyorsítótárazási problémákhoz vezethet, és megnehezítheti az alkalmazás hibaelhárítását. Ehelyett használjon egyedi címkéket minden egyes üzembe helyezéshez, például egy Git-kivonatot vagy dátumot és időt, hogy a frissítések megfelelően legyenek nyomon követve és üzembe helyezve. |
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 a secretRef-t a value mező helyett, amikor egy titkos kódra hivatkozik. |
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. | Saját tárolóedényéhez 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 konténerben engedélyezett egészségügyi szondá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
Amikor a fogyasztási csomagot használja, a konténeralkalmazás összes konténerének lefoglalt teljes processzor- és memóriamennyiségének az alábbi kombinációk egyikére kell összeadódnia.
| vCPU-k (processzormagok) | 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 |
Megjegyzés:
A csak fogyasztási környezetben a Fogyasztási tervet használó alkalmazások legfeljebb 2 magot és 4Gi memóriát használhatnak.
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 a oldalkocsis mintaimplementá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.
Megjegyzés:
Az inicializáló tárolók a dedikált csomagot használó vagy csak használatalapú környezetben futó alkalmazásokban nem férnek hozzá a felügyelt identitáshoz futásidőben.
Tárolóregisztrációs adatbázisok
Úgy telepíthet képeket privát regisztrációs adatbázisokból, hogy megadja a hitelesítési adatokat a Container Apps konfigurációjában.
Tárolóregiszter használatához a regisztert a registries tömbben, a tárolóalkalmazás erőforrássablonjának properties.configuration szakaszában kell meghatároznia. 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"
}
]
}
}
Megjegyzés:
A Docker Hub korlátozza a Docker-rendszerképek letöltéseinek számát. A korlát elérésekor az alkalmazás tárolói 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:
Kiemelt jogosultságú konténerek: Az Azure Container Apps nem engedélyezi a gazdagépszintű hozzáféréssel rendelkező kiemelt jogosultságú konténereket.
Operációs rendszer: Linux-alapú (
linux/amd64) tárolólemezképek szükségesek.Maximális képméret:
- A fogyasztási munkaterhelési profil minden alkalmazáshoz vagy feladatreplikához összesen legfeljebb 8 GB méretű konténerké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.