Zveřejnění statické IP adresy pro skupinu kontejnerů

Tento článek ukazuje jeden ze způsobů, jak zveřejnit statickou veřejnou IP adresu pro skupinu kontejnerů pomocí služby Azure Application Gateway. Pokud potřebujete statický vstupní bod pro externí kontejnerizovanou aplikaci, která běží ve službě Azure Container Instances, postupujte podle těchto kroků.

V tomto článku pomocí Azure CLI vytvoříte prostředky pro tento scénář:

  • Virtuální síť Azure
  • Skupina kontejnerů nasazená ve virtuální síti , která hostuje malou webovou aplikaci
  • Aplikační brána s veřejnou front-endovou IP adresou, naslouchacím procesem pro hostování webu v bráně a trasou do back-endové skupiny kontejnerů

Pokud běží aplikační brána a skupina kontejnerů zveřejňuje stabilní privátní IP adresu v delegovaném podsíti sítě, je skupina kontejnerů přístupná na této veřejné IP adrese.

Poznámka:

Aplikace Azure Gateway podporuje protokoly HTTP, HTTPS, HTTP/2 a WebSocket.

Azure se účtuje za aplikační bránu na základě doby, po kterou je brána zřízená a dostupná, a také množství dat, která zpracovává. Podívejte se na ceny.

Vytvoření virtuální sítě

V typickém případě už možná máte virtuální síť Azure. Pokud ho nemáte, vytvořte si ho, jak je znázorněno pomocí následujících ukázkových příkazů. Virtuální síť potřebuje samostatné podsítě pro aplikační bránu a skupinu kontejnerů.

Pokud ho potřebujete, vytvořte skupinu prostředků Azure. Příklad:

az group create --name myResourceGroup --location eastus

Vytvořte virtuální síť pomocí příkazu az network vnet create . Tento příkaz vytvoří podsíť myAGSubnet v síti.

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

Pomocí příkazu az network vnet subnet create vytvořte podsíť pro skupinu back-end kontejnerů. Tady je jeho název myACISubnet.

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

Pomocí příkazu az network public-ip create vytvořte prostředek statické veřejné IP adresy. V pozdějším kroku se tato adresa nakonfiguruje jako front-end služby Application Gateway.

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

Vytvoření skupiny kontejnerů

Spuštěním následujícího příkazu az container create vytvořte skupinu kontejnerů ve virtuální síti, kterou jste nakonfigurovali v předchozím kroku.

Skupina se nasadí do podsítě myACISubnet a obsahuje jednu instanci s názvem appcontainer , která načte aci-helloworld image. Jak je znázorněno v dalších článcích v dokumentaci, tento obrázek zabalí malou webovou aplikaci napsanou v Node.js, která obsluhuje statickou stránku HTML.

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

Po úspěšném nasazení se skupině kontejnerů přiřadí privátní IP adresa ve virtuální síti. Například spuštěním následujícího příkazu az container show načtěte IP adresu skupiny:

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

Výstup je podobný tomuto: 10.0.2.4.

Pro pozdější použití uložte IP adresu do proměnné prostředí:

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

Důležité

Pokud je skupina kontejnerů zastavena, spuštěna nebo restartována, může se změnit privátní IP adresa skupiny kontejnerů. Pokud k tomu dojde, budete muset aktualizovat konfiguraci služby Application Gateway.

Vytvoření služby Application Gateway

Vytvořte ve virtuální síti aplikační bránu podle kroků v rychlém startu služby Application Gateway. Následující příkaz az network application-gateway create vytvoří bránu s veřejnou front-endovou IP adresou a trasou do back-endové skupiny kontejnerů. Podrobnosti o nastavení brány najdete v dokumentaci ke službě 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

Vytvoření aplikační brány azure může trvat až 15 minut.

Test veřejné IP adresy

Teď můžete otestovat přístup k webové aplikaci spuštěné ve skupině kontejnerů za aplikační bránou.

Spuštěním příkazu az network public-ip show načtěte front-endovou veřejnou IP adresu brány:

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

Výstup je veřejná IP adresa podobná: 52.142.18.133.

Pokud chcete zobrazit spuštěnou webovou aplikaci po úspěšné konfiguraci, přejděte v prohlížeči na veřejnou IP adresu brány. Úspěšný přístup je podobný následujícímu:

Snímek obrazovky prohlížeče s aplikací spuštěnou v instanci kontejneru Azure

Další kroky

  • Podívejte se na šablonu rychlého startu pro vytvoření skupiny kontejnerů s instancí kontejneru WordPress jako back-endový server za aplikační bránou.
  • Můžete také nakonfigurovat aplikační bránu s certifikátem pro ukončení protokolu SSL. Podívejte se na přehled a kurz.
  • V závislosti na vašem scénáři zvažte použití dalších řešení pro vyrovnávání zatížení Azure se službou Azure Container Instances. Pomocí Azure Traffic Manageru můžete například distribuovat provoz mezi více instancí kontejnerů a napříč několika oblastmi. Přečtěte si tento blogový příspěvek.