Azure Kubernetes 服務與虛擬網路 (CNI) 的怪異

Azure Kubernetes 服務與虛擬網路 (CNI) 的怪異

我在將 AKS Pod/容器連接到本機網路時遇到一些問題。

172.16.20.0/22我在和命名空間中有一個虛擬網路172.16.24.0/29。它們有 2 個子網,每個子網都有上述範圍之一作為其子網範圍。

AKS 叢集綁定到172.16.20.0/22子網,每個節點以及 Pod 都會取得該範圍內的 IP 位址。我還為該子網路添加了一個常規虛擬機器以進行臨時調試。

172.16.24.0/29子網路中,我們有一個虛擬網路網關(該子網路中沒有 IP),用於將該子網路連接到我們的本機網路。 VN 閘道有一個具有位址空間的符合本地網路閘道172.17.151.0/24。在我們的本機網路中,我們有一個 SMTP 伺服器172.17.151.254,監聽連接埠 25。

在我啟動調試的虛擬機器上,我可以很好地連接到 SMTP 伺服器。我還可以毫無問題地從 SMTP 伺服器 ping 虛擬機器。但是,我無法從 pod 連接到 SMTP(使用 測試netcat -zv 172.17.151.254 25),也無法從 SMTP 伺服器 ping 通 pod 的 IP 位址。

這兩個子網路都沒有附加網路安全群組 (NSG),因此不可能是設定錯誤的 NSG 規則。還有什麼可能導致連線失敗? Pod 從子網路中的 DHCP 伺服器取得相同的基本網路設定:

  • 172.16.20.0/22 IP位址
  • 172.16.20.1 作為預設網關

維護連接到 Azure VNG 的本地設備的 IT 人員幫助我進行調試,他們說,當啟動 SMTP 連接時,172.17.151.254他們看到封包到達,並且來自伺服器的響應包返回 VPN 隧道,所以看起來響應數據包正在Azure中的某個地方被丟棄。
編輯:在與我們的 IT 人員進行進一步調試期間,我們注意到來自行為不當 pod 的資料包的來源 IP 是172.17.20.5,而不是172.16.20.21172.17.20.5是 Pod 運行的 VMSS 節點的 IP,因此這是有道理的,但這意味著該節點上的內部路由配置不正確。

還是這就是 kubernetes 特有的導致失敗的原因?

到目前為止我嘗試過的:

  • 在虛擬機器上: ping 172.16.20.21(pod):工作正常
  • 在虛擬機器上: ping 到172.17.151.254: 工作正常
  • 在虛擬機器上:tracert 172.17.151.254在 1 跳中成功(當它通過預設網關時,這應該至少顯示 2 跳嗎?)
  • 在 pod 上:ping 到172.16.20.4(vm):工作正常
  • 在 pod 上: ping 到172.17.151.254:失敗
  • 在 Pod 上:traceroute 172.17.151.254失敗且沒有顯示任何躍點
  • 在本機 VPN 裝置上:ping 到172.16.20.4(vm):工作正常
  • 在本機 VPN 裝置上: ping 到172.16.20.21(pod):失敗

額外資訊:

ifconfig -a來自吊艙:

eth0: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        inet 172.16.20.21  netmask 255.255.252.0  broadcast 0.0.0.0
        ether de:c7:74:e3:c5:24  txqueuelen 1000  (Ethernet)
        RX packets 386868  bytes 35746728 (34.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 511891  bytes 43865660 (41.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 5  bytes 504 (504.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5  bytes 504 (504.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

route吊艙輸出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.20.1     0.0.0.0         UG    0      0        0 eth0
172.16.20.0     0.0.0.0         255.255.252.0   U     0      0        0 eth0

ipconfig /all來自調試虛擬機器:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : debug-vm
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : nedz0ha4spbubmi5cnxgsnswdh.ax.internal.cloudapp.net

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : nedz0ha4spbubmi5cnxgsnswdh.ax.internal.cloudapp.net
   Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter
   Physical Address. . . . . . . . . : 00-0D-3A-2D-DC-BA
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::e9bb:fede:66cc:398c%6(Preferred)
   IPv4 Address. . . . . . . . . . . : 172.16.20.4(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.252.0
   Lease Obtained. . . . . . . . . . : Friday, August 28, 2020 7:15:08 AM
   Lease Expires . . . . . . . . . . : Friday, October 8, 2156 1:20:49 PM
   Default Gateway . . . . . . . . . : 172.16.20.1
   DHCP Server . . . . . . . . . . . : 168.63.129.16
   DHCPv6 IAID . . . . . . . . . . . : 100666682
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-DA-67-54-00-0D-3A-2D-DC-BA
   DNS Servers . . . . . . . . . . . : 168.63.129.16
   NetBIOS over Tcpip. . . . . . . . : Enabled

route print來自調試虛擬機器:

===========================================================================
Interface List
  6...00 0d 3a 2d dc ba ......Microsoft Hyper-V Network Adapter
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      172.16.20.1      172.16.20.4     10
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
    168.63.129.16  255.255.255.255      172.16.20.1      172.16.20.4     11
  169.254.169.254  255.255.255.255      172.16.20.1      172.16.20.4     11
      172.16.20.0    255.255.252.0         On-link       172.16.20.4    266
      172.16.20.4  255.255.255.255         On-link       172.16.20.4    266
    172.16.23.255  255.255.255.255         On-link       172.16.20.4    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link       172.16.20.4    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link       172.16.20.4    266
===========================================================================
Persistent Routes:
  None

IPv6 Route Table
===========================================================================
Active Routes:
 If Metric Network Destination      Gateway
  1    331 ::1/128                  On-link
  6    266 fe80::/64                On-link
  6    266 fe80::e9bb:fede:66cc:398c/128
                                    On-link
  1    331 ff00::/8                 On-link
  6    266 ff00::/8                 On-link
===========================================================================
Persistent Routes:
  None

答案1

在 Microsoft 支援人員的協助下進行大量故障排除後發現了該問題。

根本原因是 上 SMTP 伺服器(VPN 端點)的 IP 位址,這與K8S 節點上配置的172.17.151.254預設 docker 橋接網路重疊。172.17.0.0/16由於我啟動的調試虛擬機器上不存在此方面,因此問題並未在那裡顯現出來。

172.17.0.0/16經驗教訓:使用 AKS 時遠離該範圍

相關內容