今回は、PowerNSX で NSX Edge Service Gateway(ESG)によるロードバランサを構成します。
今回も、下記のラボを利用します。
HOL-1803-01-NET - VMware NSX - Getting Started
http://labs.hol.vmware.com/HOL/catalogs/lab/3661
ESG のデプロイ。
ロードバランサとして利用するため、新しい ESG をデプロイします。
まず PowerShell を起動して、NSX Manager と vCenter に接続しておきます。
Connect-NsxServer -vCenterServer vcsa-01a.corp.local -Username administrator@corp.local -Password VMware1!
ロードバランサで利用する場合も、デプロイされる ESG は同じ仮想アプライアンスです。
デプロイされるものは変わりませんが、
ここでは以前の投稿とは少しコマンドラインを変更してデプロイします。
NSX の HoL シナリオを PowerNSX でためす。Part.3
今回も、クラスタでは DRS を有効にしてしまいます。
Get-Cluster RegionA01-MGMT01 | Set-Cluster -DrsEnabled:$true -Confirm:$false
ESG の仮想アプライアンスの設定を用意します。
今回はパラメータを変数で事前定義してから NSX Edge の仮想アプライアンスをデプロイします。
$esg_name = "OneArm-LoadBalancer"
$password = "VMware1!VMware1!"
$esg_spec = "compact"
$cluster = Get-Cluster RegionA01-MGMT01
$ds = Get-Datastore RegionA01-ISCSI01-COMP01
$vm_folder = Get-Folder -Type VM -Name "Discovered virtual machine"
$esg_dgw = "172.16.10.1"
インターフェースの設定を用意します。
ワンアーム 構成のロードバランサなので、インターフェースは最小限の1つだけ作成します。
$vnic0_name = "WebNetwork"
$vnic0_nw = Get-NsxLogicalSwitch -Name Web_Tier_Logical_Switch
$vnic0_type = "internal"
$vnic0_ip = "172.16.10.10"
$vnic0_prefix = 24
$vnic0 = New-NsxEdgeInterfaceSpec -Index 0 -Name $vnic0_name -Type $vnic0_type -ConnectedTo $vnic0_nw -PrimaryAddress $vnic0_ip -SubnetPrefixLength $vnic0_prefix
ESG をデプロイします。
New-NsxEdge -Name $esg_name -Username admin -Password $password -Cluster $cluster -Datastore $ds -FormFactor $esg_spec -VMFolder $vm_folder -Interface $vnic0 -EnableSSH -FwEnabled -FwDefaultPolicyAllow
ESG にデフォルトゲートウェイを設定します。
Get-NsxEdge -Name $esg_name | Get-NsxEdgeRouting | Set-NsxEdgeRouting -DefaultGatewayVnic 0 -DefaultGatewayAddress $esg_dgw -Confirm:$false
ESG にデフォルトゲートウェイが設定されたことが確認できます。
Get-NsxEdge -Name $esg_name | Get-NsxEdgeRouting | select -ExpandProperty staticRouting | select -ExpandProperty defaultRoute
ロードバランサの構成。
ESG のロードバランサを有効化します。
Get-NsxEdge -Name $esg_name | Get-NsxLoadBalancer | Set-NsxLoadBalancer -Enabled
アプリケーション プロファイルを作成します。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | New-NsxLoadBalancerApplicationProfile -Name OneArmWeb-01 -Type HTTPS -SslPassthrough
デフォルトの HTTPS モニタの設定です。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerMonitor -Name default_https_monitor | fl
PowerNSX ではモニタの設定変更が難しいため、今回は URL の異なる新しいモニタを作成します。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | New-NsxLoadBalancerMonitor -Name default_https_monitor-2 -Interval 5 -Timeout 15 -MaxRetries 3 -TypeHttps -Method GET -Url /cgi-bin/app.py
作成したモニタを指定して、ロードバランサ プールを作成します。
$monitor = Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerMonitor -Name default_https_monitor-2
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | New-NsxLoadBalancerPool -Name Web-Tier-Pool-01 -Monitor $monitor -Algorithm round-robin
プールにメンバ サーバ(web-01a、web-02a)を追加します。
web-01a を追加します。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerPool -Name Web-Tier-Pool-01 | Add-NsxLoadBalancerPoolMember -Name web-01a -IpAddress 172.16.10.11 -Port 443 -MonitorPort 443
web-02a を追加します。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerPool -Name Web-Tier-Pool-01 | Add-NsxLoadBalancerPoolMember -Name web-02a -IpAddress 172.16.10.12 -Port 443 -MonitorPort 443
メンバが追加されたことが分かります。
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerPool -Name Web-Tier-Pool-01 | Get-NsxLoadBalancerPoolMember | ft -AutoSize
仮想サーバを作成します。
PowerNSX では、Add-NsxLoadBalancerVip で仮想サーバを作成できます。
$profile = Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Get-NsxLoadBalancerApplicationProfile -Name OneArmWeb-01
Get-NsxEdge $esg_name | Get-NsxLoadBalancer | Add-NsxLoadBalancerVip -ApplicationProfile $profile -Name Web-Tier-VIP-01 -IpAddress 172.16.10.10 -Protocol https -Port 443 -DefaultPool $pool
これでロードバランサが構成されて、ラボの「1-Arm LB Customer DB」ページや、
ESG でのステータス確認ができるはずです。
続く・・・