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.
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.