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