Erkunden von Containern in Azure Container Apps
Azure Container Apps verwaltet die Details von Kubernetes und der Containerorchestrierung für Sie. Container in Azure Container Apps können eine beliebige Laufzeit, Programmiersprache oder einen Entwicklungsstapel Ihrer Wahl verwenden.
Azure Container-Apps unterstützen jedes linuxbasierte x86-64 (linux/amd64
) Containerimage. Es gibt kein erforderliches Basiscontainerimage, und wenn ein Container abstürzt, wird es automatisch neu gestartet.
Konfiguration
Der folgende Code ist ein Beispiel für das containers
Array im properties.template
Abschnitt einer Container-App-Ressourcenvorlage. Der Auszug zeigt einige der verfügbaren Konfigurationsoptionen beim Einrichten eines Containers bei Verwendung von Azure Resource Manager (ARM)-Vorlagen. Änderungen am ARM-Konfigurationsabschnitt der Vorlage lösen eine neue Überarbeitung der Container-App aus.
"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
Mehrere Container
Sie können mehrere Container in einer einzelnen Container-App definieren, um das Sidecar-Muster zu implementieren. Die Container in einer Container-App teilen Festplatten- und Netzwerkressourcen und erleben den gleichen Anwendungslebenszyklus.
Beispiele für Sidecar-Container sind:
- Ein Agent, der Protokolle aus dem primären Anwendungscontainer auf einem freigegebenen Volume liest und sie an einen Protokollierungsdienst weiterleitet.
- Ein Hintergrundprozess, der einen Cache aktualisiert, der vom Haupt-App-Container in einem gemeinsam verwendeten Volume verwendet wird.
Hinweis
Das Ausführen mehrerer Container in einer einzelnen Container-App ist ein erweiterter Anwendungsfall. In den meisten Fällen, in denen Sie mehrere Container ausführen möchten, z. B. bei der Implementierung einer Microservice-Architektur, stellen Sie jeden Dienst als separate Container-App bereit.
Fügen Sie zum Ausführen mehrerer Container in einer Container-App mehr als einen Container im Container-Array der Container-App-Vorlage hinzu.
Containerregistrierungen
Sie können Images bereitstellen, die in privaten Registrierungen gehostet werden, indem Sie Anmeldeinformationen in der Container Apps-Konfiguration angeben.
Wenn Sie eine Container-Registrierung verwenden möchten, definieren Sie die erforderlichen Felder im Array „registries“ im Abschnitt „properties.configuration“ der Container-App-Ressourcenvorlage. Das Feld „passwordSecretRef“ gibt den Namen des Geheimnisses im Array „secrets“ an, in dem Sie das Kennwort definiert haben.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
Nachdem die Registrierungsinformationen hinzugefügt wurden, können die gespeicherten Anmeldeinformationen verwendet werden, um ein Containerimage aus der privaten Registrierung abzurufen, wenn Ihre App bereitgestellt wird.
Einschränkungen
Für Azure Container Apps gelten die folgenden Einschränkungen:
- Privilegierte Container: Azure-Container-Apps können keine privilegierten Container ausführen. Wenn Ihr Programm versucht, einen Prozess auszuführen, der den Stammzugriff erfordert, tritt bei der Anwendung im Container ein Laufzeitfehler auf.
- Betriebssystem: Linux-basierte (
linux/amd64
) Containerimages sind erforderlich.