Udostępnianie sieci wirtualnej do zewnętrznego środowiska usługi Azure Container Apps.

W poniższym przykładzie pokazano, jak utworzyć środowisko usługi Container Apps w istniejącej sieci wirtualnej.

Zacznij od zalogowania się do witryny Azure Portal.

Tworzenie aplikacji kontenera

Aby utworzyć aplikację kontenera, zacznij od strony głównej witryny Azure Portal.

  1. Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.
  2. Wybierz pozycję Container Apps w wynikach wyszukiwania.
  3. Zaznacz przycisk Utwórz.

Karta Podstawowe

Na karcie Podstawy wykonaj następujące czynności.

  1. Wprowadź następujące wartości w sekcji Szczegóły projektu.

    Ustawienie Akcja
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Resource group Wybierz pozycję Utwórz nową i wprowadź ciąg my-container-apps.
    Nazwa aplikacji kontenera Wprowadź ciąg my-container-app.

Utwórz środowisko

Następnie utwórz środowisko dla aplikacji kontenera.

  1. Wybierz odpowiedni region.

    Ustawienie Wartość
    Region (Region) Wybierz pozycję Środkowe stany USA.
  2. W polu Tworzenie środowiska usługi Container Apps wybierz link Utwórz nowy.

  3. Na stronie Tworzenie środowiska usługi Container Apps na karcie Podstawy wprowadź następujące wartości:

    Ustawienie Wartość
    Nazwa środowiska Wprowadź moje środowisko.
    Typ środowiska Wybierz pozycję Tylko zużycie.
    Nadmiarowość stref Wybierz opcję Wyłączone
  4. Wybierz kartę Monitorowanie, aby utworzyć obszar roboczy usługi Log Analytics.

  5. Wybierz pozycję Azure Log Analytics jako miejsce docelowe dzienników.

  6. Wybierz link Utwórz nowy w polu Obszar roboczy usługi Log Analytics i wprowadź następujące wartości.

    Ustawienie Wartość
    Nazwisko Wprowadź ciąg my-container-apps-logs.

    Pole Lokalizacja jest wstępnie wypełniane za pomocą środkowych stanów USA .

  7. Wybierz pozycję OK.

Uwaga

Możesz użyć istniejącej sieci wirtualnej, ale dedykowana podsieć z zakresem CIDR lub /23 większym jest wymagana do użycia z usługą Container Apps w przypadku korzystania tylko z architektury Zużycie. W przypadku korzystania ze środowiska profilów obciążeń wymagany jest element /27 lub większy. Aby dowiedzieć się więcej o określaniu rozmiaru podsieci, zobacz omówienie architektury sieci.

  1. Wybierz kartę Sieć , aby utworzyć sieć wirtualną.

  2. Wybierz pozycję Tak obok pozycji Użyj własnej sieci wirtualnej.

  3. Obok pola Sieć wirtualna wybierz link Utwórz nową i wprowadź następującą wartość.

    Ustawienie Wartość
    Nazwisko Wprowadź wartość my-custom-vnet.
  4. Wybierz przycisk OK.

  5. Obok pola Podsieć infrastruktury wybierz link Utwórz nową i wprowadź następujące wartości:

    Ustawienie Wartość
    Nazwa podsieci Wprowadź wartość infrastructure-subnet.
    Blok adresów sieci wirtualnej Zachowaj wartości domyślne.
    Blok adresów podsieci Zachowaj wartości domyślne.
  6. Wybierz przycisk OK.

  7. W obszarze Wirtualny adres IP wybierz pozycję Zewnętrzny.

  8. Wybierz pozycję Utwórz.

Wdrażanie aplikacji kontenera

  1. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

    Jeśli nie znaleziono żadnych błędów, przycisk Utwórz jest włączony.

    Jeśli występują błędy, każda karta zawierająca błędy jest oznaczona czerwoną kropką. Przejdź do odpowiedniej karty. Pola zawierające błąd są wyróżnione na czerwono. Po naprawieniu wszystkich błędów wybierz pozycję Przejrzyj i utwórz ponownie.

  2. Wybierz pozycję Utwórz.

    Zostanie wyświetlona strona z komunikatem Wdrażanie jest w toku . Po pomyślnym zakończeniu wdrażania zostanie wyświetlony komunikat: Wdrożenie zostało ukończone.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją.
  • Zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.28.0 lub nowszej.

Ustawienia

Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.

az login

Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.

az upgrade

Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.

az extension add --name containerapp --upgrade

Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App , zarejestruj przestrzenie nazw i Microsoft.OperationalInsights .

Uwaga

Zasoby usługi Azure Container Apps zostały zmigrowane z Microsoft.Web przestrzeni nazw do Microsoft.App przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Migracja przestrzeni nazw z witryny Microsoft.Web do Microsoft.App w marcu 2022 r.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Ustawianie zmiennych środowiskowych

Ustaw następujące zmienne środowiskowe. Zastąp <symbole> ZASTĘPCZE wartościami:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

Tworzenie grupy zasobów platformy Azure

Utwórz grupę zasobów, aby zorganizować usługi związane z wdrożeniem aplikacji kontenera.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Utwórz środowisko

Środowisko w usłudze Azure Container Apps tworzy bezpieczną granicę wokół grupy aplikacji kontenera. Aplikacje kontenera wdrożone w tym samym środowisku są wdrażane w tej samej sieci wirtualnej i zapisują dzienniki w tym samym obszarze roboczym usługi Log Analytics.

Zarejestruj dostawcę Microsoft.ContainerService .

az provider register --namespace Microsoft.ContainerService

Zadeklaruj zmienną do przechowywania nazwy sieci wirtualnej.

VNET_NAME="my-custom-vnet"

Teraz utwórz sieć wirtualną platformy Azure do skojarzenia ze środowiskiem Container Apps. Sieć wirtualna musi mieć podsieć dostępną dla wdrożenia środowiska.

Uwaga

Prefiks adresu podsieci sieciowej wymaga minimalnego /23 zakresu CIDR do użycia z usługą Container Apps w przypadku korzystania tylko z architektury Zużycie. W przypadku korzystania z architektury profilów obciążeń wymagany jest element /27 lub większy. Aby dowiedzieć się więcej o określaniu rozmiaru podsieci, zobacz omówienie architektury sieci.

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/21

Po utworzeniu sieci wirtualnej można pobrać identyfikator podsieci infrastruktury.

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:]'`

Na koniec utwórz środowisko usługi Container Apps przy użyciu niestandardowej sieci wirtualnej wdrożonej w poprzednich krokach.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

W poniższej tabeli opisano parametry używane w programie containerapp env create.

Parametr Opis
name Nazwa środowiska usługi Container Apps.
resource-group Nazwa grupy zasobów.
location Lokalizacja platformy Azure, w której ma zostać wdrożone środowisko.
infrastructure-subnet-resource-id Identyfikator zasobu podsieci dla składników infrastruktury i kontenerów aplikacji użytkownika.

Po utworzeniu środowiska przy użyciu niestandardowej sieci wirtualnej możesz teraz wdrażać aplikacje kontenerów w środowisku.

Opcjonalna konfiguracja

Istnieje możliwość wdrożenia prywatnego systemu DNS i zdefiniowania niestandardowych zakresów adresów IP sieci dla środowiska usługi Container Apps.

Wdrażanie przy użyciu prywatnego systemu DNS

Jeśli chcesz wdrożyć aplikację kontenera przy użyciu prywatnego systemu DNS, uruchom następujące polecenia.

Najpierw wyodrębnij możliwe do zidentyfikowania informacje ze środowiska.

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 '"'`

Następnie skonfiguruj prywatny system DNS.

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

Parametry sieci

Istnieją trzy opcjonalne parametry sieciowe, które można zdefiniować podczas wywoływania metody containerapp env create. Użyj tych opcji, jeśli masz równorzędną sieć wirtualną z oddzielnymi zakresami adresów. Jawne skonfigurowanie tych zakresów gwarantuje, że adresy używane przez środowisko usługi Container Apps nie powodują konfliktu z innymi zakresami w infrastrukturze sieciowej.

Musisz podać wartości dla wszystkich trzech z tych właściwości lub żadna z nich. Jeśli nie zostaną podane, zostaną wygenerowane wartości.

Parametr Opis
platform-reserved-cidr Zakres adresów używany wewnętrznie dla usług infrastruktury środowiska. Musi mieć rozmiar między /23 i /12 w przypadku używania tylko architektury Zużycie
platform-reserved-dns-ip Adres IP z platform-reserved-cidr zakresu używanego dla wewnętrznego serwera DNS. Adres nie może być pierwszym adresem w zakresie ani adresem sieciowym. Jeśli na przykład platform-reserved-cidr ustawiono wartość 10.2.0.0/16, platform-reserved-dns-ip nie 10.2.0.0 można (adresu sieciowego) lub 10.2.0.1 (infrastruktura zastrzega sobie użycie tego adresu IP). W takim przypadku pierwszym użytecznym adresem IP dla systemu DNS będzie 10.2.0.2.
docker-bridge-cidr Zakres adresów przypisany do sieci mostka platformy Docker. Ten zakres musi mieć rozmiar między /28 i /12.
  • Zakresy platform-reserved-cidr adresów i docker-bridge-cidr nie mogą powodować konfliktu ze sobą ani z zakresami podanej podsieci. Ponadto upewnij się, że te zakresy nie powodują konfliktu z żadnym innym zakresem adresów w sieci wirtualnej.

  • Jeśli te właściwości nie są podane, interfejs wiersza polecenia automatycznie ocenia wartości zakresu na podstawie zakresu adresów sieci wirtualnej, aby uniknąć konfliktów zakresu.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć grupę zasobów my-container-apps . Spowoduje to usunięcie wystąpienia usługi Azure Container Apps i wszystkich skojarzonych usług. Usuwa również grupę zasobów, która automatycznie utworzyła usługę Container Apps i która zawiera niestandardowe składniki sieciowe.

Uwaga

Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name $RESOURCE_GROUP

Następne kroki