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.
- Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.
- Wybierz pozycję Container Apps w wynikach wyszukiwania.
- Zaznacz przycisk Utwórz.
Karta Podstawowe
Na karcie Podstawy wykonaj następujące czynności.
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.
Wybierz odpowiedni region.
Ustawienie Wartość Region (Region) Wybierz pozycję Środkowe stany USA. W polu Tworzenie środowiska usługi Container Apps wybierz link Utwórz nowy.
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 Wybierz kartę Monitorowanie, aby utworzyć obszar roboczy usługi Log Analytics.
Wybierz pozycję Azure Log Analytics jako miejsce docelowe dzienników.
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 .
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.
Wybierz kartę Sieć.
Wybierz pozycję Tak obok pozycji Użyj własnej sieci wirtualnej.
Obok pola Sieć wirtualna wybierz link Utwórz nową i wprowadź następującą wartość.
Ustawienie Wartość Nazwisko Wprowadź wartość my-custom-vnet. Wybierz przycisk OK.
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. Wybierz przycisk OK.
W obszarze Wirtualny adres IP wybierz pozycję Zewnętrzne dla środowiska zewnętrznego lub Wewnętrzne dla środowiska wewnętrznego.
Wybierz pozycję Utwórz.
Wdrażanie aplikacji kontenera
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.
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ą.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
- 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 create
programem .
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 idocker-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.