Exponera en statisk IP-adress för en containergrupp
Den här artikeln visar ett sätt att exponera en statisk offentlig IP-adress för en containergrupp med hjälp av en Azure-programgateway. Följ de här stegen när du behöver en statisk startpunkt för en externt riktad containerapp som körs i Azure Container Instances.
I den här artikeln använder du Azure CLI för att skapa resurser för det här scenariot:
- Ett virtuellt Azure-nätverk
- En containergrupp som distribueras i det virtuella nätverket som är värd för en liten webbapp
- En programgateway med en offentlig IP-adress för klientdelen, en lyssnare som ska vara värd för en webbplats på gatewayen och en väg till serverdelscontainergruppen
Så länge programgatewayen körs och containergruppen exponerar en stabil privat IP-adress i nätverkets delegerade undernät är containergruppen tillgänglig på den här offentliga IP-adressen.
Kommentar
Azure Application Gateway stöder protokollen HTTP, HTTPS, HTTP/2 och WebSocket.
Azure debiterar för en programgateway baserat på hur lång tid gatewayen etableras och är tillgänglig samt mängden data som den bearbetar. Se priser.
Skapa virtuella nätverk
I vanliga fall kanske du redan har ett virtuellt Azure-nätverk. Om du inte har någon skapar du en som visas med följande exempelkommandon. Det virtuella nätverket behöver separata undernät för programgatewayen och containergruppen.
Om du behöver en skapar du en Azure-resursgrupp. Till exempel:
az group create --name myResourceGroup --location eastus
Skapa ett virtuellt nätverk med kommandot az network vnet create . Det här kommandot skapar undernätet myAGSubnet i nätverket.
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
Använd kommandot az network vnet subnet create för att skapa ett undernät för serverdelscontainergruppen. Här är namnet myACISubnet.
az network vnet subnet create \
--name myACISubnet \
--resource-group myResourceGroup \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
Använd kommandot az network public-ip create för att skapa en statisk offentlig IP-resurs. I ett senare steg konfigureras den här adressen som klientdelen av programgatewayen.
az network public-ip create \
--resource-group myResourceGroup \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Skapa containergrupp
Kör följande az container create för att skapa en containergrupp i det virtuella nätverk som du konfigurerade i föregående steg.
Gruppen distribueras i undernätet myACISubnet och innehåller en enda instans med namnet appcontainer som hämtar avbildningen aci-helloworld
. Som du ser i andra artiklar i dokumentationen paketar den här bilden en liten webbapp skriven i Node.js som hanterar en statisk HTML-sida.
az container create \
--name appcontainer \
--resource-group myResourceGroup \
--image mcr.microsoft.com/azuredocs/aci-helloworld \
--vnet myVNet \
--subnet myACISubnet
När containergruppen har distribuerats tilldelas den en privat IP-adress i det virtuella nätverket. Kör till exempel följande az container show-kommando för att hämta gruppens IP-adress:
az container show \
--name appcontainer --resource-group myResourceGroup \
--query ipAddress.ip --output tsv
Utdata liknar följande: 10.0.2.4
.
Spara IP-adressen i en miljövariabel för användning i ett senare steg:
ACI_IP=$(az container show \
--name appcontainer \
--resource-group myResourceGroup \
--query ipAddress.ip --output tsv)
Viktigt!
Om containergruppen stoppas, startas om eller startas om kan containergruppens privata IP-adress ändras. Om detta händer måste du uppdatera konfigurationen av programgatewayen.
Skapa Application Gateway
Skapa en programgateway i det virtuella nätverket genom att följa stegen i snabbstarten för programgatewayen. Följande az network application-gateway create-kommando skapar en gateway med en offentlig IP-adress för klientdelen och en väg till serverdelscontainergruppen. Mer information om gatewayinställningarna finns i Application Gateway-dokumentationen .
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
Det kan ta upp till 15 minuter för Azure att skapa programgatewayen.
Testa offentlig IP-adress
Nu kan du testa åtkomsten till webbappen som körs i containergruppen bakom programgatewayen.
Kör kommandot az network public-ip show för att hämta gatewayens offentliga IP-adress för klientdelen:
az network public-ip show \
--resource-group myresourcegroup \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Utdata är en offentlig IP-adress som liknar: 52.142.18.133
.
Om du vill visa webbappen som körs när den har konfigurerats går du till gatewayens offentliga IP-adress i webbläsaren. Lyckad åtkomst liknar:
Nästa steg
- Se en snabbstartsmall för att skapa en containergrupp med en WordPress-containerinstans som en serverdelsserver bakom en programgateway.
- Du kan också konfigurera en programgateway med ett certifikat för SSL-avslutning. Se översikten och självstudien.
- Beroende på ditt scenario bör du överväga att använda andra Azure-belastningsutjämningslösningar med Azure Container Instances. Använd till exempel Azure Traffic Manager för att distribuera trafik över flera containerinstanser och över flera regioner. Läs det här blogginlägget.