Containers in Azure Container Apps Preview

Azure Container Apps beheert de details van Kubernetes en container-orchestrations voor u. Containers in Azure Container Apps kunnen elke runtime, programmeertaal of ontwikkelingsstack van uw keuze gebruiken.

Azure Container Apps: Containers

Azure Container Apps ondersteunt:

  • Op Linux gebaseerde containerafbeeldingen
  • Containers uit een openbaar of persoonlijk containerregister

Aanvullende functies zijn onder andere:

  • Er is geen basiscontainer-afbeelding vereist.
  • Wijzigingen in de template arm-configuratiesectie activeren een nieuwe revisie van de container-app.
  • Als een container vast loopt, wordt deze automatisch opnieuw opgestart.

Configuration

In de volgende voorbeeldconfiguratie ziet u de opties die beschikbaar zijn bij het instellen van een container.

{
  ...
  "template": {
    "containers": [
      {
        "image": "myacr.azurecr.io/myrepo/api-service:v1",
        "name": "my-container-image",
        "command": ["/bin/queue"],
        "args": [],
        "env": [
          {
            "name": "HTTP_PORT",
            "value": "8080"
          }
        ],
        "resources": {
            "cpu": 1,
            "memory": "250Mb"
        }
    }]
  }
}
Instelling Beschrijving Opmerkingen
image De naam van de containerafbeelding voor uw container-app. Deze waarde heeft de vorm van repository/image-name:tag .
name Gebruiksvriendelijke naam van de container. Wordt gebruikt voor rapportage en identificatie.
command De opstartopdracht van de container. Komt overeen met het invoerpuntveld van Docker.
args Opdrachtargumenten starten. Vermeldingen in de matrix worden samengevoegd om een parameterlijst te maken die wordt doorgegeven aan de opstartopdracht.
env Een matrix met sleutel-waardeparen die omgevingsvariabelen definiëren. Gebruik secretRef in plaats van het veld om naar een geheim te value verwijzen.
resources.cpu Het aantal CPU's dat aan de container is toegewezen. Waarden moeten voldoen aan de volgende regels: de waarde moet groter zijn dan nul en kleiner dan 2 en mag elk decimaal getal zijn, met een maximum van één decimale plaats. Is bijvoorbeeld 1.1 geldig, maar 1.55 ongeldig. De standaardwaarde is 0,5 CPU per container.
resources.memory De hoeveelheid RAM-geheugen die aan de container is toegewezen. Deze waarde is maximaal 4Gi . De enige toegestane united zijn gibibytes ( Gi ). Waarden moeten voldoen aan de volgende regels: de waarde moet groter zijn dan nul en kleiner zijn dan , en kunnen elk decimaal getal zijn, met 4Gi een maximum van twee decimalen. Is bijvoorbeeld 1.25Gi geldig, maar 1.555Gi ongeldig. De standaardwaarde is 1Gi per container.

De totale hoeveelheid CPU's en geheugen die is aangevraagd voor alle containers in een container-app moet een van de volgende combinaties zijn.

vCPUs Geheugen in Gi
0,5 1.0
1.0 2,0
1.5 3,0
2,0 4,0
  • Alle CPU-aanvragen in al uw containers moeten overeenkomen met een van de waarden in de kolom vCCPUs.
  • Alle geheugenaanvragen in al uw containers moeten overeenkomen met de geheugenwaarde in de kolom geheugen in dezelfde rij van de CPU-kolom.

Meerdere containers

U kunt meerdere containers definiëren in één container-app. Groepen containers worden pods genoemd. De containers in een pod delen harde schijf- en netwerkbronnen en hebben dezelfde toepassingslevenscyclus.

U kunt meerdere containers tegelijk uitvoeren door meer dan één container in de matrix van de configuratie te containers definiëren.

Redenen om containers samen in een pod uit te voeren zijn onder andere:

  • Gebruik een container als een sidecar voor uw primaire app.
  • Gebruik van een gedeelde schijfruimte en een virtueel netwerk.
  • Schaalregels delen tussen containers.
  • Groeper meerdere containers die altijd samen moeten worden uitgevoerd.
  • Schakel directe communicatie tussen containers op dezelfde host in.

Containerregisters

U kunt installatiebestanden implementeren die worden gehost in privéregisters waar referenties worden opgegeven via de container-apps-configuratie.

Als u een containerregister wilt gebruiken, definieert u eerst de vereiste velden in de sectie van de registries configuratie.

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

Als deze optie is ingesteld, kunnen de opgeslagen referenties worden gebruikt wanneer u verwijst naar een containerinstallatie afbeelding in een image in de containers matrix.

In het volgende voorbeeld ziet u hoe u een app implementeert vanuit Azure Container Registry.

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

Beperkingen

Azure Container Apps heeft de volgende beperkingen:

  • Bevoegde containers: Met Azure Container Apps kunnen geen bevoegde containers worden uitgevoerd. Als uw programma een proces probeert uit te voeren dat toegang tot de hoofdmap vereist, tervaart de toepassing in de container een runtimefout.

  • Besturingssysteem: Op Linux gebaseerde containerinstallatie images zijn vereist.

Volgende stappen