Tárolópéldányok üzembe helyezése egy Azure virtuális hálózaton

Az Azure Virtual Network biztonságos, privát hálózatkezelést biztosít az Azure- és a helyszíni erőforrások számára. A tárolócsoportok Azure-beli virtuális hálózaton való üzembe helyezésével a tárolók biztonságosan kommunikálhatnak a virtuális hálózat többi erőforrásával.

Ez a cikk bemutatja, hogyan helyezhet üzembe tárolócsoportokat egy új virtuális hálózaton vagy egy meglévő virtuális hálózaton az Az container create paranccsal az Azure CLI-ben.

Fontos

Mielőtt tárolócsoportokat helyez üzembe virtuális hálózatokban, javasoljuk, hogy először ellenőrizze a korlátozást. A hálózati forgatókönyvekkel és korlátozásokkal kapcsolatban lásd: Virtuális hálózati forgatókönyvek és erőforrások Azure Container Instances.

Fontos

A tárolócsoportok virtuális hálózaton való üzembe helyezése általánosan elérhető Linux- és Windows-tárolókhoz, a legtöbb régióban, ahol Azure Container Instances elérhető. További részletekért lásd: elérhető régiók.

Fontos

A hálózati profilok ki lettek vonva az 2021-07-01 API-verzióból. Ha ezt vagy egy újabb verziót használ, hagyja figyelmen kívül a hálózati profilokkal kapcsolatos lépéseket és műveleteket.

A cikkben szereplő példák a Bash-felülethez vannak formázva. Ha egy másik rendszerhéjat, például a PowerShellt vagy a parancssort részesíti előnyben, ennek megfelelően módosítsa a sorfolytatási karaktereket.

Üzembe helyezés új virtuális hálózaton

Megjegyzés

Ha a /29 alhálózati IP-tartományt használja, hogy csak 3 IP-címmel rendelkezzen. azt javasoljuk, hogy mindig egy tartományt válasszon (soha ne alább). Használja például a /28 alhálózati IP-tartományt, hogy tárolócsoportonként legalább 1 IP-puffert használjon. Ezzel elkerülheti a tárolók elakadását, nem tudja elindítani, újraindítani vagy akár leállítani az állapotokat.

Ha új virtuális hálózaton szeretné üzembe helyezni, és az Azure automatikusan létrehozza a hálózati erőforrásokat, adja meg a következőket az az container create végrehajtásakor:

  • Virtuális hálózat neve
  • Virtuális hálózati címelőtag CIDR formátumban
  • Alhálózat neve
  • Alhálózati címelőtag CIDR formátumban

A virtuális hálózat és az alhálózat címelőtagja határozza meg a virtuális hálózat és az alhálózat címtereit. Ezek az értékek osztály nélküli Inter-Domain Útválasztás (CIDR) jelölésben jelennek meg, például 10.0.0.0/16: . Az alhálózatok használatával kapcsolatos további információkért lásd: Virtuális hálózati alhálózat hozzáadása, módosítása vagy törlése.

Miután üzembe helyezte az első tárolócsoportot ezzel a módszerrel, ugyanarra az alhálózatra telepítheti az üzembe helyezést a virtuális hálózat és alhálózatok nevének megadásával, vagy az Azure által automatikusan létrehozott hálózati profil megadásával. Mivel az Azure delegálja az alhálózatot Azure Container Instances, csak tárolócsoportokat helyezhet üzembe az alhálózaton.

Példa

Az alábbi az container create parancs egy új virtuális hálózat és alhálózat beállításait adja meg. Adja meg annak az erőforráscsoportnak a nevét, amelyet egy olyan régióban hoztak létre, ahol a tárolócsoport üzembe helyezése elérhető egy virtuális hálózaton. Ez a parancs üzembe helyezi a nyilvános Microsoft aci-helloworld tárolót, amely egy statikus weblapot kiszolgáló kis Node.js webkiszolgálót futtat. A következő szakaszban üzembe helyez egy második tárolócsoportot ugyanarra az alhálózatra, és teszteli a két tárolópéldány közötti kommunikációt.

az container create \
  --name appcontainer \
  --resource-group myResourceGroup \
  --image mcr.microsoft.com/azuredocs/aci-helloworld \
  --vnet aci-vnet \
  --vnet-address-prefix 10.0.0.0/16 \
  --subnet aci-subnet \
  --subnet-address-prefix 10.0.0.0/24

Ha ezzel a módszerrel helyez üzembe egy új virtuális hálózatot, az üzembe helyezés eltarthat néhány percig, amíg a hálózati erőforrások létrejönnek. A kezdeti üzembe helyezés után a tárolócsoportok ugyanazon alhálózatra történő további telepítései gyorsabban befejeződnek.

Üzembe helyezés meglévő virtuális hálózaton

Tárolócsoport üzembe helyezése meglévő virtuális hálózaton:

  1. Hozzon létre egy alhálózatot a meglévő virtuális hálózaton belül, használjon egy meglévő alhálózatot, amelyben már üzembe van helyezve egy tárolócsoport, vagy használjon egy meglévő alhálózatot, amely ki van ürítve az összes többi erőforrásból és konfigurációból.
  2. Helyezzen üzembe egy tárolócsoportot az az container create paranccsal , és adja meg az alábbiak egyikét:
    • Virtuális hálózat neve és alhálózatának neve
    • Virtuális hálózati erőforrás-azonosító és alhálózati erőforrás-azonosító, amely lehetővé teszi egy másik erőforráscsoportból származó virtuális hálózat használatát
    • Hálózati profil neve vagy azonosítója, amelyet az az network profile list használatával szerezhet be

Példa

Az alábbi példa egy második tárolócsoportot helyez üzembe a korábban létrehozott alhálózaton, és ellenőrzi a két tárolópéldány közötti kommunikációt.

Először kérje le az első üzembe helyezett tárolócsoport, az appcontainer IP-címét:

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

A kimenet a privát alhálózatban lévő tárolócsoport IP-címét jeleníti meg. Például:

10.0.0.4

Most állítsa be CONTAINER_GROUP_IP a paranccsal lekért az container show IP-címet, és hajtsa végre a következő az container create parancsot. Ez a második tároló, a commchecker egy Alpine Linux-alapú rendszerképet futtat, és végrehajtja wget az első tárolócsoport privát alhálózati IP-címén.

CONTAINER_GROUP_IP=<container-group-IP-address>

az container create \
  --resource-group myResourceGroup \
  --name commchecker \
  --image alpine:3.5 \
  --command-line "wget $CONTAINER_GROUP_IP" \
  --restart-policy never \
  --vnet aci-vnet \
  --subnet aci-subnet

A második tároló üzembe helyezésének befejezése után kérje le a naplóit, hogy láthassa a wget végrehajtott parancs kimenetét:

az container logs --resource-group myResourceGroup --name commchecker

Ha a második tároló sikeresen kommunikált az elsővel, a kimenet a következőhöz hasonló:

Connecting to 10.0.0.4 (10.0.0.4:80)
index.html           100% |*******************************|  1663   0:00:00 ETA

A napló kimenetének azt kell mutatnia, hogy wget képes volt csatlakozni és letölteni az indexfájlt az első tárolóból a helyi alhálózat privát IP-címével. A két tárolócsoport közötti hálózati forgalom a virtuális hálózaton belül maradt.

Példa – YAML

Tárolócsoportot egy meglévő virtuális hálózaton is üzembe helyezhet YAML-fájllal, Resource Manager sablonnal vagy más programozott módszerrel, például a Python SDK-val.

YAML-fájl használatakor például üzembe helyezhet egy virtuális hálózaton egy Azure Container Instances delegált alhálózattal. Adja meg a következő tulajdonságokat:

  • ipAddress: A tárolócsoport privát IP-címbeállításai.
    • ports: A megnyitandó portok, ha vannak.
    • protocol: A megnyitott port protokollja (TCP vagy UDP).
  • subnetIds: Az üzembe helyezendő alhálózatok erőforrás-azonosítói
    • id: Az alhálózat erőforrás-azonosítója
    • name: Az alhálózat neve

Ez a YAML létrehoz egy appcontaineryaml nevű tárolócsoportot a virtuális hálózaton.

apiVersion: '2021-07-01'
location: westus
name: appcontaineryaml
properties:
  containers:
  - name: appcontaineryaml
    properties:
      image: mcr.microsoft.com/azuredocs/aci-helloworld
      ports:
      - port: 80
        protocol: TCP
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
  ipAddress:
    type: Private
    ports:
    - protocol: tcp
      port: '80'
  osType: Linux
  restartPolicy: Always
  subnetIds:
    - id: <subnet-id>
      name: default
tags: null
type: Microsoft.ContainerInstance/containerGroups

Helyezze üzembe a tárolócsoportot az az container create paranccsal, és adja meg a --file paraméter YAML-fájlnevét:

az container create --resource-group myResourceGroup \
  --file vnet-deploy-aci.yaml

Az üzembe helyezés befejezése után futtassa az az container show parancsot az állapotának megjelenítéséhez. Példa a kimenetre:

Name              ResourceGroup    Status    Image                                       IP:ports     Network    CPU/Memory       OsType    Location
----------------  ---------------  --------  ------------------------------------------  -----------  ---------  ---------------  --------  ----------
appcontaineryaml  myResourceGroup  Running   mcr.microsoft.com/azuredocs/aci-helloworld  10.0.0.5:80  Private    1.0 core/1.5 gb  Linux     westus

Az erőforrások eltávolítása

Tárolópéldányok törlése

Ha végzett a létrehozott tárolópéldányokkal, törölje őket a következő parancsokkal:

az container delete --resource-group myResourceGroup --name appcontainer -y
az container delete --resource-group myResourceGroup --name commchecker -y
az container delete --resource-group myResourceGroup --name appcontaineryaml -y

Hálózati erőforrások törlése

Ehhez a funkcióhoz jelenleg több további parancsra van szükség a korábban létrehozott hálózati erőforrások törléséhez. Ha a jelen cikk előző szakaszaiban szereplő példaparancsokkal hozta létre a virtuális hálózatot és az alhálózatot, az alábbi szkripttel törölheti ezeket a hálózati erőforrásokat. A szkript feltételezi, hogy az erőforráscsoport egyetlen virtuális hálózatot tartalmaz egyetlen hálózati profillal.

A szkript végrehajtása előtt állítsa a RES_GROUP változót a törölni kívánt virtuális hálózatot és alhálózatot tartalmazó erőforráscsoport nevére. Frissítse a virtuális hálózat nevét, ha nem a aci-vnet korábban javasolt nevet használta. A szkript a Bash-felülethez van formázva. Ha egy másik rendszerhéjat, például a PowerShellt vagy a parancssort részesíti előnyben, ennek megfelelően módosítania kell a változó-hozzárendelést és a tartozékokat.

Figyelmeztetés

Ez a szkript törli az erőforrásokat! Törli a virtuális hálózatot és a benne lévő összes alhálózatot. A szkript futtatása előtt győződjön meg arról, hogy a szkript futtatása előtt már nincs szüksége a virtuális hálózatban lévő erőforrásokra, beleértve a benne található alhálózatokat is. A törlés után ezek az erőforrások helyreállíthatatlanok.

# Replace <my-resource-group> with the name of your resource group
# Assumes one virtual network in resource group
RES_GROUP=<my-resource-group>

# Get network profile ID
# Assumes one profile in virtual network
NETWORK_PROFILE_ID=$(az network profile list --resource-group $RES_GROUP --query [0].id --output tsv)

# Delete the network profile
az network profile delete --id $NETWORK_PROFILE_ID -y

# Delete virtual network
az network vnet delete --resource-group $RES_GROUP --name aci-vnet

Következő lépések