Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Comience a usar Azure Load Balancer mediante Azure PowerShell para crear un equilibrador de carga público y dos máquinas virtuales. También implementará otros recursos, como Azure Bastion, NAT Gateway, una red virtual y las subredes necesarias.
Prerrequisitos
Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Azure PowerShell instalado localmente o Azure Cloud Shell.
Si decide instalar y usar PowerShell de forma local, para realizar los pasos de este artículo necesita la versión 5.4.1 del módulo de Azure PowerShell o cualquier versión posterior. Ejecute Get-Module -ListAvailable Az para buscar la versión instalada. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.
Crear un grupo de recursos
Un grupo de recursos Azure es un contenedor lógico en el que se implementan y administran recursos Azure.
Cree un grupo de recursos mediante New-AzResourceGroup:
$rg = @{
Name = 'load-balancer-ps-rg'
Location = 'eastus'
}
New-AzResourceGroup @rg
Crear una dirección IP pública
Para crear una dirección IP pública, use New-AzPublicIpAddress.
$publicip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Para crear una dirección IP pública de zona en la zona 1, utilice el comando siguiente.
$publicip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
Creación de un equilibrador de carga
En esta sección se explica cómo crear y configurar los siguientes componentes del equilibrador de carga:
Cree una dirección IP de front-end con New-AzLoadBalancerFrontendIpConfig para el grupo de direcciones IP de front-end. Esta dirección IP recibe el tráfico entrante en el equilibrador de carga.
Cree un grupo de direcciones de back-end con New-AzLoadBalancerBackendAddressPoolConfig para el tráfico enviado desde el front-end del equilibrador de carga. Implemente sus máquinas virtuales de backend en este grupo.
Cree un sondeo de estado con Add-AzLoadBalancerProbeConfig que determine el estado de las instancias de máquina virtual de back-end.
Cree una regla de equilibrador de carga con Add-AzLoadBalancerRuleConfig que defina cómo se distribuye el tráfico a las máquinas virtuales.
Cree un equilibrador de carga público con New-AzLoadBalancer.
## Place public IP created in previous steps into variable. ##
$pip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
}
$publicIp = Get-AzPublicIpAddress @pip
## Create load balancer frontend configuration and place in variable. ##
$fip = @{
Name = 'lb-frontend'
PublicIpAddress = $publicIp
}
$feip = New-AzLoadBalancerFrontendIpConfig @fip
## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'lb-backend-pool'
## Create the health probe and place in variable. ##
$probe = @{
Name = 'lb-health-probe'
Protocol = 'tcp'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'lb-HTTP-rule'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset -DisableOutboundSNAT
## Create the load balancer resource. ##
$loadbalancer = @{
ResourceGroupName = $rg.name
Name = 'load-balancer'
Location = 'eastus'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Configurar la red virtual
Antes de implementar las VM y probar el equilibrador de carga, cree los recursos de red virtual auxiliares.
Cree una red virtual para las máquinas virtuales de back-end.
Cree un grupo de seguridad de red para definir las conexiones entrantes a la red virtual.
Cree un Azure Bastion host para administrar de forma segura las máquinas virtuales del grupo de back-end.
Use una puerta de enlace NAT para proporcionar acceso saliente a Internet a los recursos del grupo de back-end del equilibrador de carga.
Cree una red virtual, un grupo de seguridad de red, un host bastión y una puerta de enlace NAT
Cree una red virtual con New-AzVirtualNetwork.
Cree una regla de grupo de seguridad de red con New-AzNetworkSecurityRuleConfig.
Cree el host Azure Bastion con New-AzBastion.
Cree un grupo de seguridad de red con New-AzNetworkSecurityGroup.
Cree el recurso de puerta de enlace NAT con New-AzNatGateway.
Use New-AzVirtualNetworkSubnetConfig para asociar la puerta de enlace NAT a la subred de la red virtual.
Importante
La tarificación por hora comienza desde el momento en que se implementa Bastion, independientemente del uso de datos de salida. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'nat-gw-public-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = $rg.name
Name = 'lb-nat-gateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus'
PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
## Create backend subnet config ##
$subnet = @{
Name = 'backend-subnet'
AddressPrefix = '10.1.0.0/24'
NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet. ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.1.1.0/27'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'lb-vnet-bastion-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = $rg.name
Name = 'lb-vnet-bastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob
## Create rule for network security group and place in variable. ##
$nsgrule = @{
Name = 'lb-nsg-rule'
Description = 'Allow HTTP'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '80'
SourceAddressPrefix = 'Internet'
DestinationAddressPrefix = '*'
Access = 'Allow'
Priority = '200'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule
## Create network security group ##
$nsg = @{
Name = 'lb-nsg'
ResourceGroupName = $rg.name
Location = 'eastus'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Creación de máquinas virtuales
En esta sección, creará las dos máquinas virtuales para el grupo de servidores back-end del equilibrador de carga.
Cree dos interfaces de red con New-AzNetworkInterface.
Establezca un nombre de usuario de administrador y una contraseña para las máquinas virtuales con Get-Credential.
Cree las máquinas virtuales con los siguientes cmdlets:
# Set the administrator and password for the VMs. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Place the load balancer into a variable. ##
$lb = @{
Name = 'load-balancer'
ResourceGroupName = $rg.name
}
$bepool = Get-AzLoadBalancer @lb | Get-AzLoadBalancerBackendAddressPoolConfig
## Place the network security group into a variable. ##
$ns = @{
Name = 'lb-nsg'
ResourceGroupName = $rg.name
}
$nsg = Get-AzNetworkSecurityGroup @ns
## For loop with variable to create virtual machines for load balancer backend pool. ##
for ($i=1; $i -le 2; $i++){
## Command to create network interface for VMs ##
$nic = @{
Name = "lb-nic-VM$i"
ResourceGroupName = $rg.name
Location = 'eastus'
Subnet = $vnet.Subnets[0]
NetworkSecurityGroup = $nsg
LoadBalancerBackendAddressPool = $bepool
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = "lb-VM$i"
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = "lb-VM$i"
Credential = $cred
}
$vmimage = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2019-Datacenter'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Windows `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine for VMs ##
$vm = @{
ResourceGroupName = $rg.name
Location = 'eastus'
VM = $vmConfig
Zone = "$i"
}
New-AzVM @vm -AsJob
}
Envíe las implementaciones de las máquinas virtuales y del host bastión como trabajos de PowerShell. Para ver el estado de los trabajos, utilice Get-Job:
Get-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running O… AzureLongRunni… Completed True localhost New-AzBastion
2 Long Running O… AzureLongRunni… Completed True localhost New-AzVM
3 Long Running O… AzureLongRunni… Completed True localhost New-AzVM
Asegúrese de que el estado de la creación de la máquina virtual es Completado antes de pasar a los pasos siguientes.
Nota:
Azure proporciona una dirección IP de acceso de salida predeterminada para las máquinas virtuales que no tienen asignada una dirección IP pública o están en el grupo back-end de un equilibrador de carga de Azure básico interno. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.
La dirección IP de acceso de salida predeterminada está deshabilitada cuando se produce uno de los siguientes eventos:
- Se asigna una dirección IP pública a la máquina virtual.
- La máquina virtual se agrega al grupo de back-end de un equilibrador de carga estándar, con o sin reglas de salida.
- Se asigna un recurso de Azure NAT Gateway a la subred de la máquina virtual.
Las máquinas virtuales creadas mediante conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.
Para más información sobre las conexiones de salida en Azure, vea Acceso de salida predeterminado en Azure y Uso de traducción de direcciones de red (SNAT) de origen para conexiones de salida.
Instalación de IIS
Use Set-AzVMExtension para instalar la extensión de script personalizado.
La extensión se ejecuta PowerShell Add-WindowsFeature Web-Server para instalar el servidor web de IIS y, a continuación, actualiza la página de Default.htm para mostrar el nombre de host de la máquina virtual:
Importante
Asegúrese de que las implementaciones de máquina virtual se completen a partir de los pasos anteriores antes de continuar. Use Get-Job para comprobar el estado de los trabajos de implementación de las máquinas virtuales.
## For loop with variable to install custom script extension on virtual machines. ##
for ($i=1; $i -le 2; $i++)
{
$ext = @{
Publisher = 'Microsoft.Compute'
ExtensionType = 'CustomScriptExtension'
ExtensionName = 'IIS'
ResourceGroupName = $rg.name
VMName = "lb-VM$i"
Location = 'eastus'
TypeHandlerVersion = '1.8'
SettingString = '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
}
Set-AzVMExtension @ext -AsJob
}
Las extensiones se implementan como trabajos de PowerShell. Para ver el estado de los trabajos de instalación, use Get-Job:
Get-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Long Running O… AzureLongRunni… Running True localhost Set-AzVMExtension
9 Long Running O… AzureLongRunni… Running True localhost Set-AzVMExtension
Asegúrese de que el Estado de las tareas sea Completado antes de pasar a los siguientes pasos.
Prueba del equilibrador de carga
Use Get-AzPublicIpAddress para obtener la dirección IP pública del equilibrador de carga:
$ip = @{
ResourceGroupName = $rg.name
Name = 'lb-frontend-ip'
}
Get-AzPublicIPAddress @ip | select IpAddress
Copie la dirección IP pública y péguela en la barra de direcciones del explorador. La página predeterminada del servidor web de IIS se muestra en el explorador.
Limpieza de recursos
Cuando ya no necesite los recursos, use el comando Remove-AzResourceGroup para quitar el grupo de recursos, el equilibrador de carga y los recursos restantes.
Remove-AzResourceGroup -Name $rg.name
Pasos siguientes
En esta guía de inicio rápido, harás lo siguiente:
Ha creado un Azure Load Balancer
Conexión de dos máquinas virtuales al equilibrador de carga
Ha probado el equilibrador de carga.
Para más información sobre Azure Load Balancer, vaya a: