Containers verkennen in Azure Container Apps
Azure Container Apps beheert de details van Kubernetes en containerindeling voor u. Containers in Azure Container Apps kunnen gebruikmaken van elke runtime-, computertaal of ontwikkelingsstack van uw keuze.
Azure Container Apps ondersteunt elke containerinstallatiekopieën op basis van Linux 86-64 (linux/amd64
). Er is geen vereiste basiscontainerinstallatiekopieën en als een container vastloopt, wordt deze automatisch opnieuw opgestart.
Configuration
De volgende code is een voorbeeld van de containers
matrix in de properties.template
sectie van een resourcesjabloon voor een container-app. In het fragment ziet u enkele van de beschikbare configuratieopties bij het instellen van een container bij het gebruik van ARM-sjablonen (Azure Resource Manager). Wijzigingen in de sectie ARM-configuratie van de sjabloon activeren een nieuwe revisie van de container-app.
"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
Meerdere containers
U kunt meerdere containers definiëren in één container-app om het sidecar-patroon te implementeren. De containers in een container-app delen harde schijf- en netwerkbronnen en ervaren dezelfde toepassingslevenscyclus.
Voorbeelden van sidecarcontainers zijn:
- Een agent die logboeken van de primaire app-container op een gedeeld volume leest en doorstuurt naar een logboekregistratieservice.
- Een achtergrondproces waarmee een cache wordt vernieuwd die wordt gebruikt door de primaire app-container in een gedeeld volume.
Notitie
Het uitvoeren van meerdere containers in één container-app is een geavanceerd gebruiksvoorbeeld. In de meeste situaties waarin u meerdere containers wilt uitvoeren, zoals bij het implementeren van een microservicearchitectuur, implementeert u elke service als een afzonderlijke container-app.
Als u meerdere containers in een container-app wilt uitvoeren, voegt u meer dan één container toe in de containermatrix van de container-app-sjabloon.
Containerregisters
U kunt installatiekopieën implementeren die worden gehost in privéregisters door referenties op te geven in de Container Apps-configuratie.
Als u een containerregister wilt gebruiken, definieert u de vereiste velden in de matrix registers in de sectie properties.configuration van de resourcesjabloon voor de container-app. Het veld passwordSecretRef identificeert de naam van het geheim in de naam van de geheimenmatrix waarin u het wachtwoord hebt gedefinieerd.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
Wanneer de registergegevens zijn toegevoegd, kunnen de opgeslagen referenties worden gebruikt om een containerinstallatiekopie op te halen uit het privéregister wanneer uw app wordt geïmplementeerd.
Beperkingen
Azure Container Apps heeft de volgende beperkingen:
- Bevoegde containers: Azure Container Apps kan geen bevoegde containers uitvoeren. Als uw programma probeert een proces uit te voeren waarvoor hoofdtoegang is vereist, ondervindt de toepassing in de container een runtimefout.
- Besturingssysteem: containerinstallatiekopieën op basis van
linux/amd64
Linux zijn vereist.