Prozkoumání kontejnerů v Azure Container Apps

Dokončeno

Azure Container Apps spravuje podrobnosti o Kubernetes a orchestraci kontejnerů za vás. Kontejnery v Azure Container Apps můžou používat libovolný modul runtime, programovací jazyk nebo vývojový zásobník podle vašeho výběru.

diagram znázorňující, jak se kontejnery pro Azure kontejnerovou aplikaci seskupují v podech uvnitř revizních snímků

Azure Container Apps podporuje jakoukoli image kontejneru x86-64 (linux/amd64) založené na Linuxu. Neexistuje žádný požadovaný základní obraz kontejneru, a pokud se kontejner zhroutí, automaticky se restartuje.

Konfigurace

Následující kód je příkladem pole containers v části properties.template šablony prostředku kontejnerové aplikace. Výňatek ukazuje některé z dostupných možností konfigurace při nastavování kontejneru při použití šablon Azure Resource Manageru (ARM). Změny v oddílu konfigurace ARM šablony aktivují novou revizi aplikace kontejneru.

"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

Více kontejnerů

V jedné aplikaci s kontejnery můžete definovat více kontejnerů k implementaci vzoru sidecar . Kontejnery v aplikaci kontejneru sdílejí pevný disk a síťové prostředky a mají stejný životní cyklus aplikace.

Mezi příklady sidecar kontejnerů patří:

  • Agent, který čte záznamy z primárního kontejneru aplikace na sdíleném svazku a předává je do logovací služby.
  • Proces na pozadí, který aktualizuje mezipaměť používanou primárním kontejnerem aplikace ve sdíleném svazku.

Poznámka

Spouštění více kontejnerů v jedné aplikaci kontejneru je případ rozšířeného použití. Ve většině situací, kdy chcete spustit více kontejnerů, například při implementaci architektury mikroslužeb, nasaďte každou službu jako samostatnou aplikaci kontejneru.

Pokud chcete v aplikaci kontejneru spustit více kontejnerů, přidejte do pole kontejnerů šablony aplikace kontejneru více kontejnerů.

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 požadovaná pole v poli registrů v části properties.configuration šablony prostředku aplikace kontejneru. Pole passwordSecretRef identifikuje název tajného klíče v názvu pole tajných kódů, ve kterém jste definovali heslo.

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

Při přidání informací o registru se uložené přihlašovací údaje dají použít k načtení image kontejneru z privátního registru při nasazení aplikace.

Omezení

Azure Container Apps má následující omezení:

  • privilegovaných kontejnerů: Azure Container Apps nemůže spouštět privilegované kontejnery. Pokud se váš program pokusí spustit proces, který vyžaduje kořenový přístup, dojde v aplikaci v kontejneru k chybě za běhu.
  • operačního systému: Vyžadují se image kontejnerů založené na Linuxu (linux/amd64).