Udostępnij statyczny adres IP dla grupy kontenerów

W tym artykule przedstawiono jeden ze sposobów uwidocznienia statycznego, publicznego adresu IP dla grupy kontenerów przy użyciu bramy aplikacji platformy Azure. Wykonaj następujące kroki, gdy potrzebujesz statycznego punktu wejścia dla aplikacji konteneryzowanej dostępnej na zewnątrz, która działa w usłudze Azure Container Instances.

W tym artykule użyjesz interfejsu wiersza polecenia platformy Azure do utworzenia zasobów dla tego scenariusza:

  • Sieć wirtualna platformy Azure
  • Grupa kontenerów wdrożona w sieci wirtualnej, która hostuje małą aplikację internetową
  • Brama aplikacji z publicznym adresem IP frontonu, odbiornikiem hostowania witryny internetowej w bramie i trasą do grupy kontenerów zaplecza

Jeśli brama aplikacji jest uruchomiona, a grupa kontenerów uwidacznia stabilny prywatny adres IP w delegowanej podsieci sieci, grupa kontenerów jest dostępna pod tym publicznym adresem IP.

Uwaga

usługa aplikacja systemu Azure Gateway obsługuje protokoły HTTP, HTTPS, HTTP/2 i WebSocket.

Opłaty za platformę Azure za bramę aplikacji zależą od czasu aprowizacji i dostępności bramy, a także ilości danych, które przetwarza. Zobacz cennik.

Tworzenie sieci wirtualnej

W typowym przypadku może już istnieć sieć wirtualna platformy Azure. Jeśli go nie masz, utwórz go, jak pokazano w poniższych przykładowych poleceniach. Sieć wirtualna wymaga oddzielnych podsieci dla bramy aplikacji i grupy kontenerów.

Jeśli potrzebujesz grupy zasobów platformy Azure, utwórz grupę zasobów platformy Azure. Na przykład:

az group create --name myResourceGroup --location eastus

Utwórz sieć wirtualną za pomocą polecenia az network vnet create . To polecenie tworzy podsieć myAGSubnet w sieci.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroup \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24

Użyj polecenia az network vnet subnet create, aby utworzyć podsieć dla grupy kontenerów zaplecza. Tutaj jej nazwa to myACISubnet.

az network vnet subnet create \
  --name myACISubnet \
  --resource-group myResourceGroup \
  --vnet-name myVNet   \
  --address-prefix 10.0.2.0/24

Użyj polecenia az network public-ip create, aby utworzyć statyczny zasób publicznego adresu IP. W późniejszym kroku ten adres jest skonfigurowany jako fronton bramy aplikacji.

az network public-ip create \
  --resource-group myResourceGroup \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

Tworzenie grupy kontenerów

Uruchom następujące polecenie az container create , aby utworzyć grupę kontenerów w sieci wirtualnej skonfigurowanej w poprzednim kroku.

Grupa jest wdrażana w podsieci myACISubnet i zawiera jedno wystąpienie o nazwie appcontainer , które ściąga aci-helloworld obraz. Jak pokazano w innych artykułach w dokumentacji, ten obraz pakuje małą aplikację internetową napisaną w Node.js, która obsługuje statyczną stronę HTML.

az container create \
  --name appcontainer \
  --resource-group myResourceGroup \
  --image mcr.microsoft.com/azuredocs/aci-helloworld \
  --vnet myVNet \
  --subnet myACISubnet

Po pomyślnym wdrożeniu grupa kontenerów ma przypisany prywatny adres IP w sieci wirtualnej. Na przykład uruchom następujące polecenie az container show , aby pobrać adres IP grupy:

az container show \
  --name appcontainer --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv

Dane wyjściowe są podobne do następujących: 10.0.2.4.

Aby użyć w późniejszym kroku, zapisz adres IP w zmiennej środowiskowej:

ACI_IP=$(az container show \
  --name appcontainer \
  --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv)

Ważne

Jeśli grupa kontenerów zostanie zatrzymana, uruchomiona lub ponownie uruchomiona, prywatny adres IP grupy kontenerów może ulec zmianie. W takim przypadku należy zaktualizować konfigurację bramy aplikacji.

Tworzenie bramy aplikacji

Utwórz bramę aplikacji w sieci wirtualnej, wykonując kroki opisane w przewodniku Szybki start bramy aplikacji. Następujące polecenie az network application-gateway create tworzy bramę z publicznym adresem IP frontonu i trasą do grupy kontenerów zaplecza. Szczegółowe informacje o ustawieniach bramy można znaleźć w dokumentacji usługi Application Gateway.

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroup \
  --capacity 2 \
  --sku Standard_v2 \
  --http-settings-protocol http \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$ACI_IP" \ 
  --priority 100

Utworzenie bramy aplikacji na platformie Azure może potrwać do 15 minut.

Testowanie publicznego adresu IP

Teraz możesz przetestować dostęp do aplikacji internetowej uruchomionej w grupie kontenerów za bramą aplikacji.

Uruchom polecenie az network public-ip show, aby pobrać publiczny adres IP frontonu bramy:

az network public-ip show \
--resource-group myresourcegroup \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv

Dane wyjściowe to publiczny adres IP podobny do: 52.142.18.133.

Aby wyświetlić uruchomioną aplikację internetową po pomyślnym skonfigurowaniu, przejdź do publicznego adresu IP bramy w przeglądarce. Pomyślny dostęp jest podobny do następującego:

Zrzut ekranu przedstawiający aplikację uruchomioną w wystąpieniu kontenera platformy Azure

Następne kroki

  • Zobacz szablon szybkiego startu, aby utworzyć grupę kontenerów z wystąpieniem kontenera WordPress jako serwerem zaplecza za bramą aplikacji.
  • Bramę aplikacji można również skonfigurować przy użyciu certyfikatu na potrzeby kończenia żądań SSL. Zapoznaj się z omówieniem i samouczkiem.
  • W zależności od scenariusza rozważ użycie innych rozwiązań równoważenia obciążenia platformy Azure z usługą Azure Container Instances. Na przykład użyj usługi Azure Traffic Manager , aby dystrybuować ruch między wieloma wystąpieniami kontenerów i w wielu regionach. Zobacz ten wpis w blogu.