Een statisch IP-adres beschikbaar maken voor een containergroep

In dit artikel wordt één manier beschreven om een statisch, openbaar IP-adres voor een containergroep beschikbaar te maken met behulp van een Azure-toepassingsgateway. Volg deze stappen wanneer u een statisch toegangspunt nodig hebt voor een externe container-app die wordt uitgevoerd in Azure Container Instances.

In dit artikel gebruikt u de Azure CLI om de resources voor dit scenario te maken:

  • Een virtueel Azure-netwerk
  • Een containergroep die is geïmplementeerd in het virtuele netwerk dat als host fungeert voor een kleine web-app
  • Een toepassingsgateway met een openbaar front-end-IP-adres, een listener voor het hosten van een website op de gateway en een route naar de back-endcontainergroep

Zolang de toepassingsgateway wordt uitgevoerd en de containergroep een stabiel privé-IP-adres beschikbaar maakt in het gedelegeerde subnet van het netwerk, is de containergroep toegankelijk op dit openbare IP-adres.

Notitie

Azure-toepassing Gateway ondersteunt HTTP-, HTTPS-, HTTP/2- en WebSocket-protocollen.

Azure brengt kosten in rekening voor een toepassingsgateway op basis van de hoeveelheid tijd die de gateway heeft ingericht en beschikbaar is, evenals de hoeveelheid gegevens die door deze gateway wordt verwerkt. Zie prijzen.

Een virtueel netwerk maken

In een typisch geval hebt u mogelijk al een virtueel Azure-netwerk. Als u er nog geen hebt, maakt u er een zoals wordt weergegeven met de volgende voorbeeldopdrachten. Het virtuele netwerk heeft afzonderlijke subnetten nodig voor de toepassingsgateway en de containergroep.

Als u er een nodig hebt, maakt u een Azure-resourcegroep. Voorbeeld:

az group create --name myResourceGroup --location eastus

Maak een virtueel netwerk met de opdracht az network vnet create . Met deze opdracht maakt u het subnet myAGSubnet in het netwerk.

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

Gebruik de opdracht az network vnet subnet create om een subnet te maken voor de back-endcontainergroep. Hier is de naam myACISubnet.

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

Gebruik de opdracht az network public-ip create om een statische openbare IP-resource te maken. In een latere stap wordt dit adres geconfigureerd als de front-end van de toepassingsgateway.

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

Containergroep maken

Voer de volgende az container create uit om een containergroep te maken in het virtuele netwerk dat u in de vorige stap hebt geconfigureerd.

De groep wordt geïmplementeerd in het subnet myACISubnet en bevat één exemplaar met de naam appcontainer waarmee de aci-helloworld installatiekopie wordt opgehaald. Zoals wordt weergegeven in andere artikelen in de documentatie, verpakt deze afbeelding een kleine web-app die is geschreven in Node.js die een statische HTML-pagina dient.

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

Wanneer de containergroep is geïmplementeerd, krijgt de containergroep een privé-IP-adres in het virtuele netwerk toegewezen. Voer bijvoorbeeld de volgende opdracht az container show uit om het IP-adres van de groep op te halen:

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

De uitvoer is vergelijkbaar met: 10.0.2.4.

Voor gebruik in een latere stap slaat u het IP-adres op in een omgevingsvariabele:

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

Belangrijk

Als de containergroep is gestopt, gestart of opnieuw wordt gestart, kan het privé-IP-adres van de containergroep worden gewijzigd. Als dit gebeurt, moet u de configuratie van de toepassingsgateway bijwerken.

Een toepassingsgateway maken

Maak een toepassingsgateway in het virtuele netwerk en volg de stappen in de quickstart van de toepassingsgateway. Met de volgende opdracht az network application-gateway create maakt u een gateway met een openbaar front-end-IP-adres en een route naar de back-endcontainergroep. Raadpleeg de documentatie van Application Gateway voor meer informatie over de gateway-instellingen.

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

Het kan tot 15 minuten duren voordat Azure de toepassingsgateway heeft gemaakt.

Openbaar IP-adres testen

U kunt nu de toegang testen tot de web-app die wordt uitgevoerd in de containergroep achter de toepassingsgateway.

Voer de opdracht az network public-ip show uit om het openbare IP-adres van de front-end van de gateway op te halen:

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

Uitvoer is een openbaar IP-adres, vergelijkbaar met: 52.142.18.133.

Als u de actieve web-app wilt weergeven wanneer deze is geconfigureerd, gaat u naar het openbare IP-adres van de gateway in uw browser. Geslaagde toegang is vergelijkbaar met:

Schermafbeelding van browser met toepassing die wordt uitgevoerd in een Azure-containerinstantie

Volgende stappen

  • Zie een quickstartsjabloon voor het maken van een containergroep met een WordPress-containerinstantie als een back-endserver achter een toepassingsgateway.
  • U kunt ook een toepassingsgateway configureren met een certificaat voor SSL-beëindiging. Bekijk het overzicht en de zelfstudie.
  • Afhankelijk van uw scenario kunt u andere Azure-taakverdelingsoplossingen gebruiken met Azure Container Instances. Gebruik bijvoorbeeld Azure Traffic Manager om verkeer te distribueren over meerdere containerinstanties en over meerdere regio's. Zie dit blogbericht.