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ützt beliebige Linux-basierte x86-64-Containerimages (linux/amd64
). Es wird kein Basiscontainerimage benötigt, und falls ein Container abstürzt, wird er automatisch neu gestartet.
Konfiguration
Nachfolgend sehen Sie ein Codebeispiel für das Array containers
im Abschnitt properties.template
einer Container-App-Ressourcenvorlage. Der Auszug zeigt einige der verfügbaren Konfigurationsoptionen bei der Einrichtung eines Containers unter Verwendung von Azure Resource Manager-Vorlagen (ARM). Änderungen am Vorlagenabschnitt für die ARM-Konfiguration lösen eine neue Revision 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 sich Festplatten- und Netzwerkressourcen und durchlaufen den gleichen Anwendungslebenszyklus.
Beispiele für Sidecar-Container sind:
- Ein Agent, der Protokolle aus dem primären App-Container auf einem Freigabevolume liest und sie an einen Protokollierungsdienst weiterleitet.
- Ein Hintergrundprozess, der einen Cache aktualisiert, der vom primären App-Container in einem Freigabevolume verwendet wird.
Hinweis
Das Ausführen mehrerer Container in einer einzelnen Container-App ist ein erweiterter Anwendungsfall. In den meisten Situationen, in denen Sie mehrere Container ausführen möchten, z. B. bei der Implementierung einer Mikroservicearchitektur, 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"
}]
}
Mit den hinzugefügten Registrierungsinformationen können die gespeicherten Anmeldeinformationen dazu verwendet werden, beim Bereitstellen Ihrer App ein Containerimage aus der privaten Registrierung zu pullen.
Einschränkungen
Für Azure Container Apps gelten die folgenden Einschränkungen:
- Privilegierte Container: Mit Azure Container Apps lassen sich keine privilegierten Container ausführen. Wenn Ihr Programm versucht, einen Prozess auszuführen, der Root-Zugriff erfordert, tritt bei der Anwendung innerhalb des Containers ein Laufzeitfehler auf.
- Betriebssystem: Linux-basierte (
linux/amd64
) Containerimages sind erforderlich.