Een VIRTUELE machine (klassiek) met meerdere NIC's maken met behulp van de klassieke Azure CLI
U kunt virtuele machines (VM's) in Azure maken en meerdere netwerkinterfaces (NIC's) koppelen aan elk van uw VM's. Meerdere NIC's maken scheiding van verkeerstypen tussen NIC's mogelijk. Eén NIC kan bijvoorbeeld communiceren met internet, terwijl een andere alleen communiceert met interne bronnen die niet zijn verbonden met internet. De mogelijkheid om netwerkverkeer over meerdere NIC's te scheiden, is vereist voor veel virtuele netwerkapparaten, zoals oplossingen voor het leveren van toepassingen en WAN-optimalisatie.
Belangrijk
Azure heeft twee verschillende implementatiemodellen voor het maken en werken met resources: Resource Manager en klassiek. Dit artikel gaat over het gebruik van het klassieke implementatiemodel. U doet er verstandig aan voor de meeste nieuwe implementaties het Resource Manager-model te gebruiken. Meer informatie over het uitvoeren van deze stappen met behulp van het Resource Manager implementatiemodel.
Scenario
In dit document wordt een implementatie beschreven die gebruikmaakt van meerdere NIC's in VM's in een specifiek scenario. In dit scenario hebt u een IaaS-workload met twee lagen die wordt gehost in Azure. Elke laag wordt geïmplementeerd in een eigen subnet in een virtueel netwerk (VNet). De front-endlaag bestaat uit verschillende webservers, gegroepeerd in een load balancer-set voor hoge beschikbaarheid. De back-endlaag bestaat uit verschillende databaseservers. De databaseservers worden geïmplementeerd met elk twee NIC's, één voor databasetoegang, de andere voor beheer. Het scenario omvat ook netwerkbeveiligingsgroepen (NSG's) om te bepalen welk verkeer naar elk subnet is toegestaan en NIC in de implementatie. In de volgende afbeelding ziet u de basisarchitectuur van dit scenario:
In de volgende stappen wordt een resourcegroep met de naam IaaSStory gebruikt voor de WEBSERVERs en een resourcegroep met de naam IaaSStory-BackEnd voor de DB-servers .
Vereisten
Voordat u de DB-servers kunt maken, moet u de IaaSStory-resourcegroep maken met alle benodigde resources voor dit scenario. Voer de volgende stappen uit om deze resources te maken. Maak een virtueel netwerk door de stappen in het artikel Een virtueel netwerk maken te volgen.
Vereiste: De Azure CLI installeren
Als u de stappen in dit artikel wilt uitvoeren, installeert u de Azure CLI en meldt u zich aan bij Azure.
Notitie
Als u geen Azure-account hebt, hebt u er een nodig. Meld u hier aan voor een gratis proefversie. Bovendien moet jq of een ander JSON-parseringsprogramma of een andere bibliotheek voor JSON-parsering zijn geïnstalleerd om mee te doen.
De back-end-VM's implementeren
De back-end-VM's zijn afhankelijk van het maken van de volgende resources:
- Opslagaccount voor gegevensschijven. Voor betere prestaties gebruiken de gegevensschijven op de databaseservers ssd-technologie (Solid State Drive). Hiervoor is een Premium-opslagaccount vereist. Zorg ervoor dat de Azure-locatie die u implementeert ter ondersteuning van Premium Storage.
- NIC's. Elke VM heeft twee NIC's, één voor databasetoegang en één voor beheer.
- Beschikbaarheidsset. Alle databaseservers worden toegevoegd aan één beschikbaarheidsset om ervoor te zorgen dat ten minste één van de VM's actief is tijdens onderhoud.
Stap 1: het script starten
U kunt het volledige bash-script downloaden dat hier wordt gebruikt. Voer de volgende stappen uit om het script in uw omgeving te wijzigen:
Wijzig de waarden van de onderstaande variabelen op basis van uw bestaande resourcegroep die hierboven is geïmplementeerd in Vereisten.
location="useast2" vnetName="WTestVNet" backendSubnetName="BackEnd"
Wijzig de waarden van de onderstaande variabelen op basis van de waarden die u wilt gebruiken voor uw back-endimplementatie.
backendCSName="IaaSStory-Backend" prmStorageAccountName="iaasstoryprmstorage" image="0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1" avSetName="ASDB" vmSize="Standard_DS3" diskSize=127 vmNamePrefix="DB" osDiskName="osdiskdb" dataDiskPrefix="db" dataDiskName="datadisk" ipAddressPrefix="192.168.2." username='adminuser' password='adminP@ssw0rd' numberOfVMs=2
Stap 2: de benodigde resources voor uw VM's maken
Maak een nieuwe cloudservice voor alle back-end-VM's. Let op het gebruik van de
$backendCSName
variabele voor de naam van de resourcegroep en$location
voor de Azure-regio.azure service create --serviceName $backendCSName \ --location $location
Maak een Premium Storage-account voor het besturingssysteem en de gegevensschijven die door uw VM's moeten worden gebruikt.
azure storage account create $prmStorageAccountName \ --location $location \ --type PLRS
Stap 3: VM's met meerdere NIC's maken
Start een lus om meerdere VM's te maken op basis van de
numberOfVMs
variabelen.for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++)); do
Geef voor elke virtuele machine de naam en het IP-adres van elk van de twee NIC's op.
nic1Name=$vmNamePrefix$suffixNumber-DA x=$((suffixNumber+3)) ipAddress1=$ipAddressPrefix$x nic2Name=$vmNamePrefix$suffixNumber-RA x=$((suffixNumber+53)) ipAddress2=$ipAddressPrefix$x
Maak de VM. Let op het gebruik van de
--nic-config
parameter, met een lijst met alle NIC's met naam, subnet en IP-adres.azure vm create $backendCSName $image $username $password \ --connect $backendCSName \ --vm-name $vmNamePrefix$suffixNumber \ --vm-size $vmSize \ --availability-set $avSetName \ --blob-url $prmStorageAccountName.blob.core.windows.net/vhds/$osDiskName$suffixNumber.vhd \ --virtual-network-name $vnetName \ --subnet-names $backendSubnetName \ --nic-config $nic1Name:$backendSubnetName:$ipAddress1::,$nic2Name:$backendSubnetName:$ipAddress2::
Maak voor elke virtuele machine twee gegevensschijven.
azure vm disk attach-new $vmNamePrefix$suffixNumber \ $diskSize \ vhds/$dataDiskPrefix$suffixNumber$dataDiskName-1.vhd azure vm disk attach-new $vmNamePrefix$suffixNumber \ $diskSize \ vhds/$dataDiskPrefix$suffixNumber$dataDiskName-2.vhd done
Stap 4: het script uitvoeren
Nu u het script hebt gedownload en gewijzigd op basis van uw behoeften, voert u het script uit om de back-enddatabase-VM's met meerdere NIC's te maken.
Sla uw script op en voer het uit vanuit uw Bash-terminal . U ziet de initiële uitvoer, zoals hieronder wordt weergegeven.
info: Executing command service create info: Creating cloud service data: Cloud service name IaaSStory-Backend info: service create command OK info: Executing command storage account create info: Creating storage account info: storage account create command OK info: Executing command vm create info: Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1 info: Looking up virtual network info: Looking up cloud service info: Getting cloud service properties info: Looking up deployment info: Creating VM
Na enkele minuten wordt de uitvoering beëindigd en ziet u de rest van de uitvoer, zoals hieronder wordt weergegeven.
info: OK info: vm create command OK info: Executing command vm disk attach-new info: Getting virtual machines info: Adding Data-Disk info: vm disk attach-new command OK info: Executing command vm disk attach-new info: Getting virtual machines info: Adding Data-Disk info: vm disk attach-new command OK info: Executing command vm create info: Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1 info: Looking up virtual network info: Looking up cloud service info: Getting cloud service properties info: Looking up deployment info: Creating VM info: OK info: vm create command OK info: Executing command vm disk attach-new info: Getting virtual machines info: Adding Data-Disk info: vm disk attach-new command OK info: Executing command vm disk attach-new info: Getting virtual machines info: Adding Data-Disk info: vm disk attach-new command OK
Stap 5: routering configureren binnen het besturingssysteem van de VIRTUELE machine
Azure DHCP wijst een standaardgateway toe aan de eerste (primaire) netwerkinterface die is gekoppeld aan de virtuele machine. Azure wijst geen standaardgateway toe aan extra (secundaire) netwerkinterfaces die zijn gekoppeld aan een virtuele machine. Daarom kunt u standaard niet communiceren met resources buiten het subnet waarin een secundaire netwerkinterface zich bevindt. Secundaire netwerkinterfaces kunnen echter wel communiceren met resources buiten hun subnet. Zie Routering binnen een besturingssysteem van een virtuele machine met meerdere netwerkinterfaces om routering voor secundaire netwerkinterfaces te configureren.