From b350b0f3f62737bd8d9addf5e0b621d07622b0cf Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:10:14 -0800 Subject: [PATCH 1/9] MonitorServiceConfiguration.ps1 --- .../debug/MonitorServiceConfiguration.ps1 | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 new file mode 100644 index 00000000..511ec1ce --- /dev/null +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -0,0 +1,63 @@ +#Requires -RunAsAdministrator + +Param( + [parameter(Mandatory = $false)] [string] $NetworkName = "azure", + [parameter(Mandatory = $false)] [string] $ServiceIP = "20.124.54.159", + [parameter(Mandatory = $false)] [string] $ServicePort = "5555" +) + + +class LoadBalancerPolicyData { + [string] $Id + [bool] $IsDsr + [bool] $IsVfpHairpinRulePlumbed +} + +$networkId = (Get-HnsNetwork -Detailed | Where-Object Name -eq $networkName).Id +$network = Get-HnsNetwork -Id $networkId -Detailed + +$hostVfpPort = ($network | ForEach-Object { $_.Layer.Resources.Allocators } | Where-Object Tag -eq "Host Vnic").EndpointPortGuid + + +[LoadBalancerPolicyData] $loadBalancerPolicy = [LoadBalancerPolicyData]::new() +$loadBalancerPolicy.IsVfpHairpinRulePlumbed = $false + +while ($true) { + + $hnsPolicyList = Get-HnsPolicyList + foreach ($policy in $hnsPolicyList) { + $vip = "" + if ($policy.Policies.LocalRoutedVip) { + $vip += $network.ManagementIP + } + else { + $vip += $policy.Policies.VIPs + } + + if ($svcEndpoint -eq $ServiceIP -and $ServicePort -eq $policy.Policies.ExternalPort) { + $loadBalancerPolicy.Id = $policy.ID + $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR + } + } + + if ($loadBalancerPolicy.Id -eq "") { + Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" + } + + $hairPinRulePattern = $ServiceIP + "_" + $ServicePort + $hairpinRuleCount = (vfpctrl.exe /port $hostVfpPort /layer SLB_HAIRPIN_LAYER /list-rule | Select-String -Pattern $hairPinRulePattern).Count + $loadBalancerPolicy.IsVfpHairpinRulePlumbed = ($hairpinRuleCount -gt 0) + + if ($loadBalancerPolicy.IsVfpHairpinRulePlumbed -eq $false) { + Write-Host (Get-Date).ToString() + " Hairpin rule missing for the Service" + } + + Start-Sleep 1 +} + + + + + + + From c0df618ced8cf9c10b2ed74b4b9f9fba4aac6f19 Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:30:51 -0800 Subject: [PATCH 2/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index 511ec1ce..8efddf9d 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -21,7 +21,7 @@ $hostVfpPort = ($network | ForEach-Object { $_.Layer.Resources.Allocators } | Wh [LoadBalancerPolicyData] $loadBalancerPolicy = [LoadBalancerPolicyData]::new() $loadBalancerPolicy.IsVfpHairpinRulePlumbed = $false - +$loadBalancerPolicy.Id = "" while ($true) { $hnsPolicyList = Get-HnsPolicyList @@ -52,7 +52,7 @@ while ($true) { Write-Host (Get-Date).ToString() + " Hairpin rule missing for the Service" } - Start-Sleep 1 + Start-Sleep -Milliseconds 500 } From 4ed7b10d851f4e63d6169e3d4b6487b3ad705242 Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:35:14 -0800 Subject: [PATCH 3/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index 8efddf9d..960d9a8b 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -28,13 +28,13 @@ while ($true) { foreach ($policy in $hnsPolicyList) { $vip = "" if ($policy.Policies.LocalRoutedVip) { - $vip += $network.ManagementIP + $vip = $network.ManagementIP } else { - $vip += $policy.Policies.VIPs + $vip = $policy.Policies.VIPs } - if ($svcEndpoint -eq $ServiceIP -and $ServicePort -eq $policy.Policies.ExternalPort) { + if ($vip -eq $ServiceIP -and $ServicePort -eq $policy.Policies.ExternalPort) { $loadBalancerPolicy.Id = $policy.ID $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR } From 55c2919e8697c05a3132023f8a432f05147432ff Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:42:32 -0800 Subject: [PATCH 4/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index 960d9a8b..7850b9be 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -34,7 +34,7 @@ while ($true) { $vip = $policy.Policies.VIPs } - if ($vip -eq $ServiceIP -and $ServicePort -eq $policy.Policies.ExternalPort) { + if (($vip -eq $ServiceIP) -and ($ServicePort -eq $policy.Policies.ExternalPort)) { $loadBalancerPolicy.Id = $policy.ID $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR } From 579875a4292836a6dcc966b5818253d611e0739b Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:47:48 -0800 Subject: [PATCH 5/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index 7850b9be..a89d6fbd 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -34,9 +34,11 @@ while ($true) { $vip = $policy.Policies.VIPs } + Write-Host $vip + ":" + $policy.Policies.ExternalPort if (($vip -eq $ServiceIP) -and ($ServicePort -eq $policy.Policies.ExternalPort)) { $loadBalancerPolicy.Id = $policy.ID $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR + Write-Host "Found Policy" } } From 8ed9e5c568402e430c4b70fc9b70acec6aeee0d8 Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 00:57:18 -0800 Subject: [PATCH 6/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index a89d6fbd..d4991dfa 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -38,14 +38,10 @@ while ($true) { if (($vip -eq $ServiceIP) -and ($ServicePort -eq $policy.Policies.ExternalPort)) { $loadBalancerPolicy.Id = $policy.ID $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR - Write-Host "Found Policy" + Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" } } - if ($loadBalancerPolicy.Id -eq "") { - Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" - } - $hairPinRulePattern = $ServiceIP + "_" + $ServicePort $hairpinRuleCount = (vfpctrl.exe /port $hostVfpPort /layer SLB_HAIRPIN_LAYER /list-rule | Select-String -Pattern $hairPinRulePattern).Count $loadBalancerPolicy.IsVfpHairpinRulePlumbed = ($hairpinRuleCount -gt 0) From 465ae47ba81e537aa81e79fdad3f161a139dad5f Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 01:05:14 -0800 Subject: [PATCH 7/9] fixes --- .../windows/debug/MonitorServiceConfiguration.ps1 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index d4991dfa..c9034d3f 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -21,9 +21,9 @@ $hostVfpPort = ($network | ForEach-Object { $_.Layer.Resources.Allocators } | Wh [LoadBalancerPolicyData] $loadBalancerPolicy = [LoadBalancerPolicyData]::new() $loadBalancerPolicy.IsVfpHairpinRulePlumbed = $false -$loadBalancerPolicy.Id = "" -while ($true) { +while ($true) { + $loadBalancerPolicyFound= $false $hnsPolicyList = Get-HnsPolicyList foreach ($policy in $hnsPolicyList) { $vip = "" @@ -34,14 +34,18 @@ while ($true) { $vip = $policy.Policies.VIPs } - Write-Host $vip + ":" + $policy.Policies.ExternalPort if (($vip -eq $ServiceIP) -and ($ServicePort -eq $policy.Policies.ExternalPort)) { $loadBalancerPolicy.Id = $policy.ID $loadBalancerPolicy.IsDsr = $policy.Policies.IsDSR - Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" + $loadBalancerPolicyFound= $true } } + if ($loadBalancerPolicyFound -eq $false) + { + Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" + } + $hairPinRulePattern = $ServiceIP + "_" + $ServicePort $hairpinRuleCount = (vfpctrl.exe /port $hostVfpPort /layer SLB_HAIRPIN_LAYER /list-rule | Select-String -Pattern $hairPinRulePattern).Count $loadBalancerPolicy.IsVfpHairpinRulePlumbed = ($hairpinRuleCount -gt 0) From 76291e761054ecf576cc9a15422d579becb023fc Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 01:21:29 -0800 Subject: [PATCH 8/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index c9034d3f..3f0fbf55 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -43,7 +43,7 @@ while ($true) { if ($loadBalancerPolicyFound -eq $false) { - Write-Host (Get-Date).ToString() + "HNS Load balancer policy missing for the service" + Write-Host $(hostname) + " " + (Get-Date).ToString() + "HNS Load balancer policy missing for the service" } $hairPinRulePattern = $ServiceIP + "_" + $ServicePort @@ -51,7 +51,7 @@ while ($true) { $loadBalancerPolicy.IsVfpHairpinRulePlumbed = ($hairpinRuleCount -gt 0) if ($loadBalancerPolicy.IsVfpHairpinRulePlumbed -eq $false) { - Write-Host (Get-Date).ToString() + " Hairpin rule missing for the Service" + Write-Host $(hostname) + " " + (Get-Date).ToString() + " Hairpin rule missing for the Service" } Start-Sleep -Milliseconds 500 From b6909b2a4bda81472ae735518dd852b77b4e1bf4 Mon Sep 17 00:00:00 2001 From: sbangari <51677049+sbangari@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:32:27 -0800 Subject: [PATCH 9/9] fixes --- Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 index 3f0fbf55..2e748314 100644 --- a/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 +++ b/Kubernetes/windows/debug/MonitorServiceConfiguration.ps1 @@ -43,7 +43,8 @@ while ($true) { if ($loadBalancerPolicyFound -eq $false) { - Write-Host $(hostname) + " " + (Get-Date).ToString() + "HNS Load balancer policy missing for the service" + $message = "{0} {1} {2} {3}:{4}" -f $(hostname), (Get-Date).ToString(), "HNS Load balancer policy missing for the service", $ServiceIP, $ServicePort + Write-Host $message } $hairPinRulePattern = $ServiceIP + "_" + $ServicePort @@ -51,7 +52,8 @@ while ($true) { $loadBalancerPolicy.IsVfpHairpinRulePlumbed = ($hairpinRuleCount -gt 0) if ($loadBalancerPolicy.IsVfpHairpinRulePlumbed -eq $false) { - Write-Host $(hostname) + " " + (Get-Date).ToString() + " Hairpin rule missing for the Service" + $message = "{0} {1} {2} {3}:{4}" -f $(hostname), (Get-Date).ToString(), "Hairpin rule missing for the Service", $ServiceIP, $ServicePort + Write-Host $message } Start-Sleep -Milliseconds 500