Freigeben über


Bereitstellen eines virtuellen Netzwerks für eine 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 portal Azure an.

Erstellen einer Container-App

Um Ihre Container-App zu erstellen, beginnen Sie auf der Startseite des Azure Portals.

  1. Suchen Sie in der oberen Suchleiste nach Container Apps.
  2. Wählen Sie in den Suchergebnissen Container Apps aus.
  3. Wählen Sie die Schaltfläche Erstellen.

Registerkarte „Grundlagen“

Gehen Sie auf der Registerkarte Grundeinstellungen wie folgt vor:

  1. Geben Sie die folgenden Werte im Abschnitt Projektdetails ein.

    Einstellung Aktion
    Abonnement Wählen Sie Ihr Azure-Abonnement aus.
    Ressourcengruppe 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.

  1. Wählen Sie die geeignete Region aus.

    Einstellung Wert
    Region Wählen Sie USA, Mitte aus.
  2. Wählen Sie im Feld "Container-Apps-Umgebung " den Link " Neue Umgebung erstellen " aus.

  3. 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.
    Zonenredundanz Wählen Sie Deaktiviert aus.
  4. Wählen Sie die Registerkarte Monitoring aus, um einen Log Analytics Arbeitsbereich zu erstellen.

  5. Wählen Sie Azure Log Analytics als Logs Destination aus.

  6. Wählen Sie den Link Erstellen Sie neu im Arbeitsbereich Log Analytics 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.

  7. Klicken Sie auf OK.

Sie haben die Möglichkeit, ein privates DNS für Ihre Container Apps-Umgebung bereitzustellen. Weitere Informationen finden Sie unter Create and configure an Azure Privates DNS zone.

Erstellen eines virtuellen Netzwerks

Hinweis

Um ein VNet mit Container-Apps zu verwenden, muss das VNet über ein dediziertes Subnetz mit einem CIDR-Bereich von /27 oder größer verfügen, wenn die standardmäßige Umgebung für Arbeitsauslastungsprofile verwendet wird, oder über einen CIDR-Bereich von /23 oder größer, wenn die Legacy-Umgebung für reine Verbrauchsumgebung verwendet wird. Weitere Informationen zur Subnetzgröße finden Sie in der Übersicht über die Netzwerkarchitektur.

  1. Wählen Sie die Registerkarte Netzwerk aus.

  2. Wählen Sie neben Use your own virtual network (Eigenes virtuelles Netzwerk verwenden) die Option Ja aus.

  3. Wählen Sie neben dem Feld "Virtuelles Netzwerk " den Link "Neuen Erstellen" aus, und geben Sie den folgenden Wert ein:

    Einstellung Wert
    Name Geben Sie my-custom-vnet ein.
  4. Klicken Sie auf die Schaltfläche OK.

  5. Wählen Sie neben dem Feld "Subnetz " den Link "Neuen Erstellen" aus, und geben Sie die folgenden Werte ein:

    Einstellung Wert
    Subnetzname Geben Sie infrastructure-subnet ein.
    Virtueller Netzwerkadressblock Lassen Sie die Standardwerte unverändert.
    Subnetzadressblock Lassen Sie die Standardwerte unverändert.
  6. Klicken Sie auf die Schaltfläche OK.

  7. Wählen Sie unter Virtuelle IP die Option Extern für eine externe Umgebung oder Intern für eine interne Umgebung aus.

  8. Klicken Sie auf Erstellen.

Bereitstellen der Container-App

  1. Wählen Sie unten auf der Seite "Überprüfen+ Erstellen" aus.

    • Wenn keine Fehler gefunden werden, ist die Schaltfläche " Erstellen " verfügbar.
    • Wenn Fehler auftreten, wird jede Registerkarte, die einen Fehler enthält, mit einem roten Punkt markiert. Öffnen Sie jede der Registerkarten. Felder, die einen Fehler enthalten, werden rot hervorgehoben oder mit einem roten X markiert. Beheben Sie alle Fehler, und wählen Sie dann "Überprüfen" und dann erneut "Erstellen" aus .
  2. Klicken Sie auf Erstellen.

    Eine Seite mit der Meldung Bereitstellung wird durchgeführt wird angezeigt. Nachdem die Bereitstellung erfolgreich abgeschlossen wurde, wird die Meldung "Ihre Bereitstellung abgeschlossen " angezeigt.

Überprüfen Sie die Bereitstellung

  1. Wählen Sie Zu Ressource wechseln, um Ihre neue Container-App anzuzeigen.

  2. Wählen Sie neben der Anwendungs-URL den Link aus, um Ihre Anwendung anzuzeigen.

Voraussetzungen

Konfiguration

Um sich bei Azure über die CLI anzumelden, führen Sie den folgenden Befehl aus, und folgen Sie den 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.

Wenn bei der Ausführung von az containerapp-Befehlen in Azure CLI oder von Cmdlets aus dem Az.App-Modul in PowerShell Fehler aufgrund fehlender Parameter auftreten, stellen Sie sicher, dass die neueste 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 Vorschaufeatures 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 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="<new-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 um eine Gruppe von Container-Apps. Container-Apps, die in derselben Umgebung bereitgestellt werden, werden im selben 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 Workloadprofile-Umgebung verwenden, müssen Sie das VNet aktualisieren, um das Subnetz an Microsoft.App/environments zu delegieren. Delegieren Sie das Subnetz nicht, wenn Sie die Nur-Verbrauch-Umgebung verwenden.

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 Der Log Analytics Client-Geheimnis. Erforderlich, wenn Sie einen vorhandenen Arbeitsbereich verwenden.
location Der Azure Speicherort, an dem die Umgebung bereitgestellt werden soll.
infrastructure-subnet-resource-id Ressourcen-ID eines Subnetzes 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

Bei Verwendung der älteren Umgebung „Nur Verbrauch“ gibt es drei optionale Netzwerkparameter, die Sie beim Aufruf von containerapp env createdefinieren 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.

Hinweis

Diese Parameter gelten nur für den älteren Umgebungstyp "Nur Verbrauch". Für den Umgebungstyp der Standardarbeitsauslastungsprofile sind diese Parameter nicht erforderlich.

Sie müssen entweder Werte für alle drei Eigenschaften oder 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 platform-reserved-cidr- und docker-bridge-cidr-Adressbereiche dürfen sich nicht gegenseitig überschneiden oder mit den Bereichen eines der bereitgestellten Subnetze in Konflikt geraten. 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.

Vorsicht

Mit dem folgenden Befehl werden die angegebene Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht. Wenn Ressourcen außerhalb des Bereichs dieses Leitfadens in der angegebenen Ressourcengruppe vorhanden sind, 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.

Nächste Schritte