Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
W tym artykule opisano sposób tworzenia maszyny wirtualnej z wieloma kartami sieciowymi za pomocą interfejsu wiersza polecenia platformy Azure.
Tworzenie zasobów pomocniczych
Zainstaluj najnowszy Azure CLI i zaloguj się do konta platformy Azure przy użyciu az login.
W poniższych przykładach zastąp przykładowe nazwy parametrów własnymi wartościami. Przykładowe nazwy parametrów to myResourceGroup, mystorageaccount i myVM.
Najpierw utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus. W tych przykładach deklarujemy zmienne środowiskowe w miarę ich użycia i dodajemy losowy sufiks do unikatowych nazw zasobów.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
export REGION="WestUS2"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
"location": "WestUS2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Utwórz sieć wirtualną za pomocą az network vnet create. Poniższy przykład tworzy sieć wirtualną o nazwie myVnet i podsieci o nazwie mySubnetFrontEnd:
export VNET_NAME="myVnet"
export FRONTEND_SUBNET="mySubnetFrontEnd"
az network vnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VNET_NAME \
--address-prefix 10.0.0.0/16 \
--subnet-name $FRONTEND_SUBNET \
--subnet-prefix 10.0.1.0/24
Utwórz podsieć dla ruchu zaplecza za pomocą az network vnet subnet create. Poniższy przykład tworzy podsieć o nazwie mySubnetBackEnd:
export BACKEND_SUBNET="mySubnetBackEnd"
az network vnet subnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vnet-name $VNET_NAME \
--name $BACKEND_SUBNET \
--address-prefix 10.0.2.0/24
Utwórz sieciową grupę zabezpieczeń za pomocą polecenia az network nsg create. Poniższy przykład tworzy sieciową grupę zabezpieczeń o nazwie myNetworkSecurityGroup:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
Utwórz i skonfiguruj wiele kart sieciowych
Utwórz dwie karty sieciowe za pomocą polecenia az network nic create. W poniższym przykładzie są tworzone dwie karty sieciowe o nazwach myNic1 i myNic2 połączone z sieciową grupą zabezpieczeń z jedną kartą sieciową łączącą się z każdą podsiecią:
export NIC1="myNic1"
export NIC2="myNic2"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC1 \
--vnet-name $VNET_NAME \
--subnet $FRONTEND_SUBNET \
--network-security-group $NSG_NAME
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC2 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
Utwórz maszynę wirtualną i dołącz karty sieciowe
Podczas tworzenia maszyny wirtualnej określ karty sieciowe utworzone za pomocą polecenia --nics. Należy również zachować ostrożność podczas wybierania rozmiaru maszyny wirtualnej. Istnieją limity całkowitej liczby kart sieciowych (NIC), które można dodać do VM. Przeczytaj więcej na temat rozmiarów maszyn wirtualnych z systemem Linux.
Utwórz maszynę wirtualną za pomocą polecenia az vm create. Poniższy przykład tworzy maszynę wirtualną o nazwie myVM:
export VM_NAME="myVM"
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VM_NAME \
--image Ubuntu2204 \
--size Standard_DS3_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--nics $NIC1 $NIC2
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Dodaj kartę sieciową do maszyny wirtualnej
W poprzednich krokach utworzono maszynę wirtualną z wieloma kartami sieciowymi. Możesz również dodać karty sieciowe do istniejącej maszyny wirtualnej za pomocą Azure CLI. Różne rozmiary maszyn wirtualnych obsługują różną liczbę kart sieciowych, więc odpowiednio dostosuj rozmiar swojej maszyny wirtualnej. W razie potrzeby możesz zmienić rozmiar maszyny wirtualnej.
Utwórz nową kartę sieciową, używając polecenia az network nic create. Poniższy przykład tworzy kartę sieciową o nazwie myNic3 połączoną z tylną podsiecią i grupą zabezpieczeń sieci utworzoną w poprzednich krokach:
export NIC3="myNic3"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC3 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
Aby dodać kartę sieciową do istniejącej maszyny wirtualnej, najpierw zdezaktywuj maszynę wirtualną używając az vm deallocate. Poniższy przykład dealokuje maszynę wirtualną o nazwie myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Dodaj kartę sieciową za pomocą polecenia az vm nic add. Poniższy przykład dodaje myNic3 do maszyny wirtualnej myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Uruchom maszynę wirtualną za pomocą az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Usuwanie karty sieciowej z maszyny wirtualnej
Aby usunąć interfejs sieciowy z istniejącej maszyny wirtualnej, najpierw zdeaktywuj maszynę wirtualną za pomocą az vm deallocate. Poniższy przykład dealokuje maszynę wirtualną o nazwie myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Usuń interfejs sieciowy przy użyciu az vm nic remove. Poniższy przykład usuwa myNic3 z maszyny wirtualnej myVM:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Uruchom maszynę wirtualną za pomocą az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Tworzenie wielu NIC za pomocą szablonów usługi Resource Manager
Szablony usługi Azure Resource Manager używają deklaratywnych plików JSON do zdefiniowania środowiska. Możesz zapoznać się z omówieniem usługi Azure Resource Manager. Szablony Menedżera zasobów umożliwiają tworzenie wielu wystąpień zasobu w trakcie wdrażania, takich jak tworzenie wielu interfejsów sieciowych. Opcji 'kopiuj' używa się do określenia liczby instancji do utworzenia:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Przeczytaj więcej na temat tworzenia wielu instancji przy użyciu kopiowania.
Możesz również użyć funkcji copyIndex(), aby następnie dołączyć liczbę do nazwy zasobu, co umożliwia utworzenie myNic1, myNic2 itp. Poniżej przedstawiono przykład dołączania wartości indeksu:
"name": "[concat('myNic', copyIndex())]",
Możesz przeczytać kompletny przykład tworzenia wielu kart sieciowych przy użyciu szablonów Menedżera zasobów.
Dodaj tabele routingu do systemu operacyjnego gościa, wykonując kroki opisane w temacie Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych.
Konfigurowanie systemu operacyjnego gościa dla wielu kart sieciowych
W poprzednich krokach utworzono sieć wirtualną i podsieć, dołączone karty sieciowe, a następnie utworzono maszynę wirtualną. Nie utworzono publicznego adresu IP i reguł sieciowej grupy zabezpieczeń, które zezwalają na ruch SSH. Aby skonfigurować system operacyjny maszyny wirtualnej dla wielu kart sieciowych, należy zezwolić na zdalne połączenia do maszyny wirtualnej i uruchamiać polecenia lokalnie na tej maszynie.
Aby zezwolić na ruch SSH, utwórz regułę grupy zabezpieczeń sieciowych używając az network nsg rule create w następujący sposób:
az network nsg rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nsg-name $NSG_NAME \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
Utwórz publiczny adres IP za pomocą polecenia az network public-ip create i przypisz go do pierwszej karty sieciowej za pomocą polecenia az network nic ip-config update:
export PUBLIC_IP_NAME="myPublicIP"
az network public-ip create --resource-group $MY_RESOURCE_GROUP_NAME --name $PUBLIC_IP_NAME
az network nic ip-config update \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nic-name $NIC1 \
--name ipconfig1 \
--public-ip $PUBLIC_IP_NAME
Aby wyświetlić publiczny adres IP maszyny wirtualnej, użyj polecenia az vm show w następujący sposób:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
Teraz użyj SSH do połączenia z publicznym adresem IP maszyny wirtualnej. Domyślna nazwa użytkownika podana w poprzednim kroku to azureuser. Podaj własną nazwę użytkownika i publiczny adres IP:
export IP_ADDRESS=$(az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Aby wysyłać do lub z pomocniczego interfejsu sieciowego, należy ręcznie dodać trasy trwałe do systemu operacyjnego dla każdego pomocniczego interfejsu sieciowego. W tym artykule eth1 jest interfejsem pomocniczym. Instrukcje dotyczące dodawania tras trwałych do systemu operacyjnego różnią się w zależności od dystrybucji. Aby uzyskać instrukcje, sprawdź dokumentację dystrybucji.
Podczas dodawania trasy do systemu operacyjnego adres bramy jest pierwszym adresem podsieci, w których znajduje się interfejs sieciowy. Jeśli na przykład podsieć została przypisana zakres 10.0.2.0/24, brama określona dla trasy to 10.0.2.1 lub jeśli do podsieci przypisano zakres 10.0.2.128/25, brama określona dla trasy to 10.0.2.129. Można zdefiniować określoną sieć dla miejsca docelowego trasy lub określić miejsce docelowe 0.0.0.0.0, jeśli chcesz, aby cały ruch dla interfejsu przechodził przez określoną bramę. Brama dla każdej podsieci jest zarządzana przez sieć wirtualną.
Po dodaniu trasy dla interfejsu pomocniczego sprawdź, czy trasa znajduje się w tabeli tras za pomocą polecenia route -n. Poniższe przykładowe dane wyjściowe są przeznaczone dla tabeli tras, która zawiera dwa interfejsy sieciowe dodane do maszyny wirtualnej w tym artykule:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.1.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.2.1 0.0.0.0 UG 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
168.63.129.16 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
169.254.169.254 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
Upewnij się, że dodana trasa będzie się powtarzać po ponownym uruchomieniu, sprawdzając ponownie tabelę tras po ponownym uruchomieniu. Aby przetestować łączność, możesz wprowadzić następujące polecenie, na przykład gdzie eth1 jest nazwą pomocniczego interfejsu sieciowego: ping bing.com -c 4 -I eth1
Dalsze kroki
Przejrzyj rozmiary maszyn wirtualnych z systemem Linux podczas próby tworzenia maszyny wirtualnej z wieloma kartami sieciowymi. Zwróć uwagę na maksymalną liczbę kart sieciowych, które obsługuje każdy rozmiar maszyny wirtualnej.
Aby dodatkowo zabezpieczyć maszyny wirtualne, użyj dostępu just in time do maszyny wirtualnej. Ta funkcja otwiera reguły sieciowej grupy zabezpieczeń dla ruchu SSH w razie potrzeby i przez określony okres czasu. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do maszyn wirtualnych przy użyciu just in time.