%20%E7%9A%84%E6%80%AA%E7%95%B0.png)
我在將 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.21
。172.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 時遠離該範圍