Bereitstellen eines virtuellen Netzwerks in einer Azure Container Apps-Umgebung
Das folgende Beispiel zeigt, wie Sie eine Container Apps-Umgebung in einem vorhandenen virtuellen Netzwerk (VNet) erstellen.
Melden Sie sich zunächst beim Azure-Portal an.
Erstellen einer Container-App
Beginnen Sie auf der Startseite des Azure-Portals, um Ihre Container-App zu erstellen.
- Suchen Sie in der oberen Suchleiste nach Container Apps.
- Wählen Sie in den Suchergebnissen Container Apps aus.
- Wählen Sie die Schaltfläche Erstellen.
Registerkarte „Grundlagen“
Gehen Sie auf der Registerkarte Grundeinstellungen wie folgt vor:
Geben Sie im Abschnitt Projektdetails die folgenden Werte ein.
Einstellung Aktion Subscription Wählen Sie Ihr Azure-Abonnement. Resource group Wählen Sie Neu erstellen aus, und geben Sie my-container-apps ein. Name der Container-App Geben Sie my-container-app ein. Bereitstellungsquelle Wählen Sie Containerimage aus.
Erstellen einer Umgebung
Erstellen Sie als Nächstes eine Umgebung für Ihre Container-App.
Wählen Sie die geeignete Region aus.
Einstellung Wert Region Wählen Sie USA, Mitte aus. Wählen Sie im Feld Container Apps-Umgebung erstellen den Link Neu erstellen aus.
Geben Sie auf der Seite Container Apps-Umgebung erstellen auf der Registerkarte Grundlagen die folgenden Werte ein:
Einstellung Wert Umgebungsname Geben Sie my-environment ein. Umgebungstyp Wählen Sie Workloadprofile aus. Zonenredundanz Wählen Sie Deaktiviert aus. Wählen Sie die Registerkarte Überwachung aus, um einen Log Analytics-Arbeitsbereich zu erstellen.
Wählen Sie Azure Log Analytics als Protokollziel aus.
Wählen Sie im Feld Log Analytics-Arbeitsbereich den Link Neu erstellen aus, und geben Sie die folgenden Werte ein:
Einstellung Wert Name Geben Sie my-container-apps-logs ein. Im Feld Standort ist bereits USA, Mitte angegeben.
Klicken Sie auf OK.
Sie haben die Möglichkeit, ein privates DNS für Ihre Container Apps-Umgebung bereitzustellen. Weitere Informationen finden Sie unter Erstellen und Konfigurieren einer Azure Private DNS-Zone.
Erstellen eines virtuellen Netzwerks
Hinweis
Um ein VNet mit Container Apps zu verwenden, muss es über ein dediziertes Subnetz mit einem CIDR-Bereich von mindestens /23
in der Umgebung „Nur Verbrauch“ oder einem CIDR-Bereich von mindestens /27
in der Umgebung für Workloadprofile verfügen. Weitere Informationen zur Subnetzgröße finden Sie in der Übersicht über die Netzwerkarchitektur.
Wählen Sie die Registerkarte Netzwerk aus.
Wählen Sie neben Use your own virtual network (Eigenes virtuelles Netzwerk verwenden) die Option Ja aus.
Wählen Sie neben dem Feld Virtuelles Netzwerk den Link Neu erstellen aus, und geben Sie den folgenden Wert ein:
Einstellung Wert Name Geben Sie my-custom-vnet ein. Wählen Sie die Schaltfläche OK aus.
Wählen Sie neben dem Feld Infrastruktursubnetz den Link Neu erstellen aus, und geben Sie die folgenden Werte ein:
Einstellung Wert Subnetzname Geben Sie infrastructure-subnet ein. Adressblock des virtuellen Netzwerks Lassen Sie die Standardwerte unverändert. Subnetzadressblock Lassen Sie die Standardwerte unverändert. Wählen Sie die Schaltfläche OK aus.
Wählen Sie unter Virtuelle IP die Option Extern für eine externe Umgebung oder Intern für eine interne Umgebung aus.
Klicken Sie auf Erstellen.
Bereitstellen der Container-App
Wählen Sie unten auf der Seite die Option Überprüfen und Erstellen aus.
Wenn keine Fehler gefunden werden, wird die Schaltfläche Erstellen aktiviert.
Werden Fehler gefunden, wird jede Registerkarte, die Fehler enthält, mit einem roten Punkt markiert. Navigieren Sie zur entsprechenden Registerkarte. Felder, die einen Fehler enthalten, werden rot hervorgehoben. Wenn Sie alle Fehler behoben haben, wählen Sie erneut Überprüfen und erstellen aus.
Klicken Sie auf Erstellen.
Eine Seite mit der Meldung Bereitstellung wird durchgeführt wird angezeigt. Nach dem erfolgreichen Abschluss der Bereitstellung wird die Meldung Ihre Bereitstellung wurde abgeschlossen angezeigt.
Voraussetzungen
- Azure-Konto mit einem aktiven Abonnement.
- Falls Sie keins haben, können Sie kostenlos eins erstellen.
- Installieren Sie die Azure CLI, Version 2.28.0 oder höher.
Setup
Um sich ausgehend von der CLI bei Azure anzumelden, führen Sie den folgenden Befehl aus und befolgen Sie die Anweisungen, um den Authentifizierungsprozess abzuschließen.
az login
Verwenden Sie den Upgradebefehl, um sicherzustellen, dass Sie die neueste Version der CLI ausführen.
az upgrade
Installieren oder aktualisieren Sie als Nächstes die Azure Container Apps-Erweiterung für die CLI.
Falls Sie Fehler aufgrund fehlender Parameter erhalten, wenn Sie az containerapp
-Befehle in der Azure CLI oder Cmdlets aus dem Az.App
-Modul in Azure PowerShell ausführen, stellen Sie sicher, dass die aktuelle Version der Azure Container Apps-Erweiterung installiert ist.
az extension add --name containerapp --upgrade
Hinweis
Ab Mai 2024 aktivieren Azure CLI-Erweiterungen standardmäßig keine Previewfunktionen mehr. Um auf Previewfunktionen von Container Apps zuzugreifen, installieren Sie die Container Apps-Erweiterung mit --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nachdem die aktuelle Erweiterung oder das aktuelle Modul installiert ist, registrieren Sie nun die Namespaces Microsoft.App
und Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Festlegen von Umgebungsvariablen
Legen Sie die folgenden Umgebungsvariablen fest. Ersetzen Sie <PLACEHOLDERS>
durch Ihre eigenen Werte:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Erstellen einer Azure-Ressourcengruppe
Erstellen Sie eine Ressourcengruppe, um die Dienste im Zusammenhang mit der Bereitstellung Ihrer Container-App zu organisieren.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Erstellen einer Umgebung
Eine Umgebung in Azure Container Apps erstellt eine sichere Grenze für eine Gruppe von Container-Apps. Container-Apps, die in derselben Umgebung bereitgestellt werden, werden im gleichen virtuellen Netzwerk bereitgestellt und schreiben Protokolle in denselben Log Analytics-Arbeitsbereich.
Registrieren Sie den Anbieter Microsoft.ContainerService
.
az provider register --namespace Microsoft.ContainerService
Deklarieren Sie eine Variable zum Aufnehmen des VNet-Namens.
VNET_NAME="my-custom-vnet"
Erstellen Sie nun ein virtuelles Netzwerk, das der Container Apps-Umgebung zugeordnet werden soll. Das virtuelle Netzwerk muss über ein Subnetz verfügen, das für die Umgebungsbereitstellung verfügbar ist.
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--location $LOCATION \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--address-prefixes 10.0.0.0/23
Wenn Sie die Umgebung für Workloadprofile verwenden, müssen Sie das VNet aktualisieren, um das Subnetz an Microsoft.App/environments
zu delegieren. Diese Delegierung gilt nicht für die Umgebung „Nur Verbrauch“.
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--delegations Microsoft.App/environments
Nach dem Erstellen des virtuellen Netzwerks können Sie nun die Infrastruktursubnetz-ID abfragen.
INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`
Erstellen Sie schließlich die Container Apps-Umgebung mit dem benutzerdefinierten VNet.
Führen Sie den folgenden Befehl aus, um die Umgebung zu erstellen. Um eine interne Umgebung zu erstellen, fügen Sie --internal-only
hinzu.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET
In der folgenden Tabelle werden die mit containerapp env create
verwendeten Parameter beschrieben.
Parameter | Beschreibung |
---|---|
name |
Name der Container-Apps-Umgebung. |
resource-group |
Name der Ressourcengruppe |
logs-workspace-id |
(Optional:) Die ID eines vorhandenen Log Analytics-Arbeitsbereichs. Wenn sie ausgelassen werden, wird ein Arbeitsbereich für Sie erstellt. |
logs-workspace-key |
Geheimer Log Analytics-Clientschlüssel. Erforderlich, wenn Sie einen vorhandenen Arbeitsbereich verwenden. |
location |
Azure-Standort, an dem die Umgebung bereitgestellt werden soll. |
infrastructure-subnet-resource-id |
Ressourcen-ID eines Subnetzs für Infrastrukturkomponenten und Benutzeranwendungscontainer. |
internal-only |
(Optional:) Die Umgebung verwendet keine öffentliche statische IP-Adresse, sondern nur interne IP-Adressen, die im benutzerdefinierten VNet verfügbar sind. (Erfordert eine Infrastruktur-Subnetzressourcen-ID.) |
Optionale Konfiguration
Sie haben die Möglichkeit, ein privates DNS bereitzustellen und benutzerdefinierte Netzwerk-IP-Adressbereiche für die Container Apps-Umgebung zu definieren.
Bereitstellen mit einem privaten DNS
Wenn Sie die Container-App mit einem privaten DNS bereitstellen möchten, führen Sie die folgenden Befehle aus.
Extrahieren Sie zunächst identifizierbare Informationen aus der Umgebung.
ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`
Richten Sie als Nächstes das private DNS ein.
az network private-dns zone create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--virtual-network $VNET_ID \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
--resource-group $RESOURCE_GROUP \
--record-set-name "*" \
--ipv4-address $ENVIRONMENT_STATIC_IP \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN
Netzwerkparameter
Es gibt drei optionale Netzwerkparameter, die Sie beim Aufrufen von containerapp env create
definieren können. Verwenden Sie diese Optionen, wenn Sie über ein mittels Peering verbundenes VNet mit separaten Adressbereichen verfügen. Durch die explizite Konfiguration dieser Bereiche wird sichergestellt, dass die von der Container Apps-Umgebung verwendeten Adressen keine Konflikte mit anderen Bereichen in der Netzwerkinfrastruktur verursachen.
Sie müssen entweder Werte für alle drei dieser Eigenschaften oder für keine dieser Eigenschaften angeben. Wenn Sie keine Werte angeben, werden sie für Sie generiert.
Parameter | Beschreibung |
---|---|
platform-reserved-cidr |
Der Adressbereich, der intern für Infrastrukturdienste der Umgebung verwendet wird. Muss eine Größe zwischen /23 und /12 bei Verwendung eine reinen Verbrauchsumgebung aufweisen |
platform-reserved-dns-ip |
Eine IP-Adresse aus dem platform-reserved-cidr -Bereich, der für den internen DNS-Server verwendet wird. Die Adresse darf nicht der ersten Adresse im Bereich oder der Netzwerkadresse entsprechen. Wenn beispielsweise platform-reserved-cidr auf 10.2.0.0/16 festgelegt ist, kann platform-reserved-dns-ip nicht 10.2.0.0 (die Netzwerkadresse) oder 10.2.0.1 (die Infrastruktur reserviert die Verwendung dieser IP-Adresse) sein. In diesem Fall wäre 10.2.0.2 die erste IP-Adresse, die für das DNS verwendet werden kann. |
docker-bridge-cidr |
Der Adressbereich, der dem Docker-Bridgenetzwerk zugewiesen ist. Dieser Bereich muss eine Größe zwischen /28 und /12 aufweisen. |
Die Adressbereiche
platform-reserved-cidr
unddocker-bridge-cidr
können nicht miteinander oder mit den Bereichen eines der beiden bereitgestellten Subnetze in Konflikt stehen. Vergewissern Sie sich außerdem, dass diese Bereiche keinen Konflikt mit anderen Adressbereichen im VNet verursachen.Wenn diese Eigenschaften nicht bereitgestellt werden, werden von der Befehlszeilenschnittstelle die Bereichswerte automatisch basierend auf dem Adressbereich des VNet generiert, damit Bereichskonflikte verhindert werden.
Bereinigen von Ressourcen
Wenn Sie diese Anwendung nicht weiter verwenden möchten, können Sie die Ressourcengruppe my-container-apps löschen. Dadurch werden die Azure Container Apps-Instanz und alle zugehörigen Dienste gelöscht. Außerdem wird die Ressourcengruppe gelöscht, die der Container Apps-Dienst automatisch erstellt hat und die die benutzerdefinierten Netzwerkkomponenten enthält.
Achtung
Mit dem folgenden Befehl werden die angegebene Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht. Falls in der angegebenen Ressourcengruppe Ressourcen enthalten sind, die nicht zum Umfang dieses Leitfadens gehören, werden sie ebenfalls gelöscht.
az group delete --name $RESOURCE_GROUP
Zusätzliche Ressourcen
- Um eingehenden Datenverkehr im VNet-Bereich zu verwenden, müssen Sie DNS einrichten.