Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Container Apps za vás spravuje podrobnosti o orchestraci Kubernetes a kontejnerů. Kontejnery ve službě Azure Container Apps můžou využívat jakýkoli modul runtime a programovací jazyk nebo libovolnou vývojovou sadu.
Azure Container Apps podporuje:
- Libovolná image kontejneru x86-64
linux/amd64() založená na Linuxu - Kontejnery z libovolného veřejného nebo privátního registru kontejneru
- Volitelné sidecar a inicializační kontejnery
Mezi funkce patří:
- Aplikace používají
templatekonfigurační oddíl k definování image kontejneru a dalších nastavení. Změny v sekcitemplatekonfigurace spustí novou revizi aplikace kontejneru. - Pokud kontejner spadne, automaticky se restartuje.
Mezi vlastnosti úloh patří:
- Spuštění úloh používají
templatekonfigurační oddíl k definování obrazu kontejneru a dalších nastavení při zahájení každého spuštění. - Pokud se kontejner ukončí s nenulovým ukončovacím kódem, označí se spuštění úlohy jako neúspěšné. Úlohu můžete nakonfigurovat tak, aby se zopakovala neúspěšná spuštění.
Konfigurace
Většina aplikací typu kontejner má jeden kontejner. V pokročilých scénářích může mít aplikace také sidecar a init kontejnery. V definici aplikace kontejneru jsou hlavní aplikace a její sidecar kontejnery uvedeny v poli containers v části properties.template, a inicializační kontejnery jsou uvedeny v poli initContainers. Následující výňatek ukazuje dostupné možnosti konfigurace při nastavování kontejnerů aplikace.
{
"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"
}
]
}
]
...
}
...
}
| Nastavení | Popis | Poznámky |
|---|---|---|
image |
Název kontejnerového obrazu pro vaši kontejnerovou aplikaci. | Tato hodnota má formu repository/<IMAGE_NAME>:<TAG>. Nepoužívejte statické značky, jako jsou latest image kontejnerů. Použití statických značek může vést k problémům s ukládáním do mezipaměti a může ztížit řešení potíží s aplikací. Místo toho pro každé nasazení používejte jedinečné značky, jako je hodnota hash Gitu nebo datum a čas, abyste zajistili správné sledování a nasazení aktualizací. |
name |
Uživatelsky přívětivý název kontejneru | Používá se pro hlášení a identifikaci. |
command |
Spouštěcí příkaz kontejneru. | Ekvivalent pole vstupního bodu Dockeru |
args |
Spusťte argumenty příkazu. | Položky v poli jsou spojeny dohromady a vytvoří seznam parametrů, který se předá spouštěcímu příkazu. |
env |
Pole párů název/hodnota, které definují proměnné prostředí. | Místo pole secretRef použijte value, když odkazujete na tajemství. |
resources.cpu |
Počet procesorů přidělených kontejneru | Viz požadavky na přidělení virtuálních procesorů a paměti |
resources.memory |
Množství paměti RAM přidělené kontejneru. | Viz požadavky na přidělení virtuálních procesorů a paměti |
volumeMounts |
Pole definic připojení objemů. | Můžete definovat dočasné nebo trvalé úložné svazky pro svůj kontejner. Další informace o svazcích úložiště najdete v tématu Použití připojení úložiště v Azure Container Apps. |
probes |
Pole zdravotních sond povoleno v kontejneru | Další informace o nastavení sond najdete v tématu Sondy stavu v Azure Container Apps. |
Požadavky na přidělení virtuálních procesorů a paměti
Při použití plánu Consumption se celkový počet procesorů a paměti přidělených všem kontejnerům v aplikaci kontejneru musí sčítat do jedné z následujících kombinací.
| virtuální procesory (jádra) | Memory (Paměť) |
|---|---|
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 |
Poznámka:
Aplikace využívající plán Consumption pouze v prostředí Consumption jsou omezené na maximálně 2 jádra a 4Gi paměti.
Více kontejnerů
V pokročilých scénářích můžete v jedné aplikaci kontejneru spustit více kontejnerů. Tento vzor použijte pouze v konkrétních instancích, ve kterých jsou kontejnery úzce svázané.
Pro většinu scénářů mikroslužeb je osvědčeným postupem nasadit každou službu jako samostatnou aplikaci kontejneru.
Více kontejnerů ve stejné aplikaci kontejneru sdílí pevný disk a síťové prostředky a dochází ke stejnému životnímu cyklu aplikace.
Existují dva způsoby, jak spouštět další kontejnery v aplikaci pro kontejnery: sidecar kontejnery a inicializační kontejnery.
Vedlejší kontejnery
V jedné aplikaci kontejneru můžete definovat více kontejnerů k implementaci sidecar pattern.
Mezi příklady sidecar kontejnerů patří:
Agent, který čte protokoly z primárního kontejneru aplikace na sdíleném svazku a předává je do protokolovací služby.
Proces na pozadí, který aktualizuje mezipaměť používanou primárním kontejnerem aplikace ve sdíleném svazku.
Tyto scénáře jsou příklady a nejsou jediným způsobem, jak implementovat sidecar.
Pokud chcete v aplikaci kontejneru spustit více kontejnerů, přidejte do pole šablony aplikace kontejneru více kontejnerů containers .
Inicializační kontejnery
V aplikaci kontejneru můžete definovat jeden nebo více inicializačních kontejnerů . Inicializační kontejnery běží před primárním kontejnerem aplikace a používají se k provádění inicializačních úloh, jako je stahování dat nebo příprava prostředí.
Inicializační kontejnery jsou definovány v initContainers poli šablony aplikace kontejneru. Kontejnery běží v pořadí, v jakém jsou definovány v poli, a musí se úspěšně dokončit před spuštěním primárního kontejneru aplikace.
Poznámka:
Inicializační kontejnery v aplikacích používajících vyhrazený plán nebo spuštěné pouze v prostředí Consumption nemají přístup ke spravované identitě za běhu.
Registry kontejnerů
Image hostované v privátních registrech můžete nasadit zadáním přihlašovacích údajů v konfiguraci Container Apps.
Pokud chcete použít registr kontejneru, definujete registr v registries poli v properties.configuration části šablony prostředku aplikace kontejneru. Pole passwordSecretRef identifikuje název tajného kódu v secrets názvu pole, ve kterém jste definovali heslo.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
Uložené přihlašovací údaje slouží k načtení image kontejneru z privátního registru při nasazení vaší aplikace.
Následující příklad ukazuje, jak nakonfigurovat přihlašovací údaje služby Azure Container Registry v aplikaci kontejneru.
{
...
"configuration": {
"secrets": [
{
"name": "docker-hub-password",
"value": "my-docker-hub-password"
}
],
...
"registries": [
{
"server": "docker.io",
"username": "someuser",
"passwordSecretRef": "docker-hub-password"
}
]
}
}
Poznámka:
Docker Hub omezuje počet stahování imagí Dockeru. Po dosažení limitu se kontejnery ve vaší aplikaci nespustí. Pokud se chcete tomuto problému vyhnout, použijte registr s dostatečnými limity, například Azure Container Registry.
Spravovaná identita v rámci Azure Container Registry
Spravovanou identitu Azure můžete použít k ověření ve službě Azure Container Registry místo použití uživatelského jména a hesla. Další informace najdete v tématu Spravované identity v Azure Container Apps.
Pokud chcete používat spravovanou identitu s registrem, musí být v aplikaci povolená identita a musí mít přiřazenou acrPull roli v registru. Ke konfiguraci registru použijte ID prostředku spravované identity pro identitu přiřazenou uživatelem nebo system pro identitu přiřazenou systémem ve identity vlastnosti registru. Při použití spravované identity nekonfigurujte uživatelské jméno a heslo.
{
"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"
}]
}
...
}
}
Další informace o konfiguraci identit přiřazených uživatelem najdete v tématu Přidání identity přiřazené uživatelem.
Omezení
Azure Container Apps má následující omezení:
Privilegované kontejnery: Azure Container Apps neumožňuje režim privilegovaných kontejnerů s přístupem na úrovni hostitele.
Operační systém: Vyžadují se image kontejnerů založené na Linuxu (
linux/amd64).Maximální velikost obrázku:
- Profil zátěže Consumption podporuje obrazy kontejnerů s celkovou velikostí až 8 GB pro každou aplikaci nebo repliku úlohy.
- Vyhrazené profily pracovního zatížení podporují větší obrazy kontejnerů. Vzhledem k tomu, že profil vyhrazené úlohy může spouštět více aplikací nebo úloh, sdílí několik imagí kontejnerů dostupné místo na disku. Skutečná podporovaná velikost image se liší v závislosti na prostředcích využívaných jinými aplikacemi a úlohami.