Udostępnianie sieci wirtualnej do wewnę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.
- 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 pozycję OK.
Uwaga
Możesz użyć istniejącej sieci wirtualnej, ale dedykowana podsieć z zakresem /23
CIDR lub większym jest wymagana do użycia z usługą Container Apps w przypadku korzystania tylko ze środowiska 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 środowiska sieciowego.
Wybierz kartę Sieć , aby utworzyć sieć wirtualną.
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ę Wewnętrzny.
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 <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 wystąpienie sieci wirtualnej, aby skojarzyć je ze środowiskiem Container Apps. Sieć wirtualna musi mieć dwie podsieci dostępne dla wystąpienia aplikacji kontenera.
Uwaga
Prefiks adresu podsieci sieciowej wymaga minimalnego /23
zakresu CIDR do użycia z usługą Container Apps w przypadku korzystania tylko ze środowiska 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 środowiska sieciowego.
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 ma zastosowania do środowiska 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 ustanowieniu 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 Container Apps z siecią wirtualną i podsiecią.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET \
--internal-only
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. |
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). |
Za pomocą środowiska utworzonego przy użyciu niestandardowej sieci wirtualnej można wdrażać aplikacje kontenerów w środowisku przy użyciu az containerapp create
polecenia .
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ąć wystąpienie usługi Azure Container Apps i wszystkie skojarzone usługi, usuwając grupę zasobów my-container-apps . Usunięcie tej grupy zasobów powoduje usunięcie grupy zasobów automatycznie utworzonej przez usługę Container Apps zawierającą 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.