Udostępnij za pośrednictwem


Udostępnianie sieci wirtualnej w środowisku 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.
    Źródło wdrożenia Wybierz pozycję Obraz kontenera.

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ę Profile obciążeń.
    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 przycisk OK.

Istnieje również możliwość wdrożenia prywatnego systemu DNS dla środowiska usługi Container Apps. Aby uzyskać więcej informacji, zobacz Tworzenie i konfigurowanie strefy usługi Azure Prywatna strefa DNS.

Tworzenie sieci wirtualnej

Uwaga

Aby używać sieci wirtualnej z usługą Container Apps, sieć wirtualna musi mieć dedykowaną podsieć z zakresem /23 CIDR lub większym w przypadku korzystania tylko z środowiska Zużycie albo zakresu /27 CIDR lub większego w przypadku korzystania ze środowiska profilów obciążeń. Aby dowiedzieć się więcej o określaniu rozmiaru podsieci, zobacz omówienie architektury sieci.

  1. Wybierz kartę Sieć.

  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ętrzne dla środowiska zewnętrznego lub Wewnętrzne dla środowiska wewnętrznego.

  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.

Jeśli podczas uruchamiania az containerapp poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.

az extension add --name containerapp --upgrade

Uwaga

Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

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

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

Ustawianie zmiennych środowiskowych

Ustaw następujące zmienne środowiskowe. Zastąp element swoimi <PLACEHOLDERS> 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ą do skojarzenia ze środowiskiem Container Apps. Sieć wirtualna musi mieć podsieć dostępną dla wdrożenia środowiska.

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

W przypadku korzystania ze środowiska profilów obciążeń należy zaktualizować sieć wirtualną, aby delegować podsieć do .Microsoft.App/environments To delegowanie nie jest wymagane w środowisku tylko do użycia.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

Po utworzeniu sieci wirtualnej można teraz wykonywać zapytania dotyczące identyfikatora 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.

Aby utworzyć środowisko, uruchom następujące polecenie. Aby utworzyć środowisko wewnętrzne, dodaj element --internal-only.

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 z containerapp env createprogramem .

Parametr Opis
name Nazwa środowiska usługi Container Apps.
resource-group Nazwa grupy zasobów.
logs-workspace-id (Opcjonalnie) Identyfikator istniejącego obszaru roboczego usługi Log Analytics. Jeśli pominięto, zostanie utworzony obszar roboczy.
logs-workspace-key Wpis tajny klienta usługi Log Analytics. Wymagane w przypadku korzystania z istniejącego obszaru roboczego.
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.
internal-only (Opcjonalnie) Środowisko nie używa publicznego statycznego adresu IP, tylko wewnętrzne adresy IP dostępne w niestandardowej sieci wirtualnej. (Wymaga identyfikatora zasobu podsieci infrastruktury).

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 środowiska 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

Dodatkowe zasoby

  • Aby korzystać z ruchu przychodzącego w zakresie sieci wirtualnej, należy skonfigurować usługę DNS.

Następne kroki