偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Flannel MAC 地址沖突導(dǎo)致 Pod 跨節(jié)點(diǎn)通信異常

運(yùn)維
客戶在擴(kuò)容 Kubernetes 節(jié)點(diǎn)后,發(fā)現(xiàn)部分服務(wù) Pod 跨節(jié)點(diǎn)通信異常,通過問題排查,問題解決。

問題背景

客戶在擴(kuò)容 Kubernetes 節(jié)點(diǎn)后,發(fā)現(xiàn)部分服務(wù) Pod 跨節(jié)點(diǎn)通信異常,表現(xiàn)為:

  • Pod 間通信間歇性失??;
  • 某些業(yè)務(wù)服務(wù)異?;蝽憫?yīng)慢;
  • 懷疑是網(wǎng)絡(luò)問題引起的。

問題排查

1?? 初步排查網(wǎng)絡(luò)路由信息

我們先檢查 flannel 的路由信息是否完整,執(zhí)行如下命令查看:

# 查看所有節(jié)點(diǎn)上的 flannel 路由信息
kubectl get node -o yaml | grep -A3 flannel.alpha.coreos.com/backend-data

結(jié)果發(fā)現(xiàn) 多個(gè)節(jié)點(diǎn)的 flannel.1 接口的 VtepMAC 完全相同

flannel.alpha.coreos.com/backend-data: '{"VtepMAC":"fe:22:77:eb:2f:a1"}'

?? 問題浮現(xiàn) —— MAC 地址沖突!

2?? 查看物理網(wǎng)卡 MAC 地址是否一致

ip link show enp1s0

不同節(jié)點(diǎn)的物理網(wǎng)卡 MAC 地址是不同的,說明沖突不在物理網(wǎng)卡層面。

3?? 進(jìn)一步查看 flannel.1 接口 MAC

ip -d link show flannel.1

可以看到 flannel.1 接口在多個(gè)節(jié)點(diǎn)上的 MAC 地址是一致的。

問題原因

?? 客戶的節(jié)點(diǎn)是通過 KVM 克隆創(chuàng)建的虛擬機(jī),未對(duì)系統(tǒng)級(jí)唯一標(biāo)識(shí)(如 /etc/machine-id)做處理,導(dǎo)致 MAC 地址生成邏輯一致,flannel 默認(rèn)使用靜態(tài)策略(非隨機(jī))生成 MAC 地址,從而出現(xiàn)沖突。

由于 flannel 使用 VXLAN 建立 overlay 網(wǎng)絡(luò),VTEP MAC 地址用于 VXLAN 建隧道,一旦多個(gè)節(jié)點(diǎn)的 MAC 相同,會(huì)導(dǎo)致 FDB 表異常,轉(zhuǎn)發(fā)路徑錯(cuò)誤,從而出現(xiàn)通信失敗。

解決方案

方式一:讓 flannel 接口 MAC 地址隨機(jī)生成

使用 systemd 的 .link 文件強(qiáng)制設(shè)置接口 MAC 策略為隨機(jī):

# /etc/systemd/network/10-flannel.1.link
[Match]
OriginalName=flannel.1

[Link]
MACAddressPolicy=random

然后執(zhí)行以下操作使配置生效:

# 重啟 systemd-networkd,或重啟節(jié)點(diǎn)
systemctl restart systemd-networkd
# 或重啟 flannel 容器
docker restart flannel-xxxx

這樣每次啟動(dòng)都會(huì)為 flannel.1 分配一個(gè)不同的隨機(jī) MAC,避免沖突。

問題延申:FDB 表未同步導(dǎo)致通信異常

由于MAC地址相同,還會(huì)導(dǎo)致fdb表異常,發(fā)現(xiàn)某節(jié)點(diǎn)無法訪問新增節(jié)點(diǎn)的 Pod 網(wǎng)絡(luò),進(jìn)一步排查:

/sbin/bridge fdb show flannel.1 | grep <mac地址>

發(fā)現(xiàn) FDB 表存在舊的 MAC -> IP 映射,且未及時(shí)更新,導(dǎo)致節(jié)點(diǎn)pod網(wǎng)絡(luò)通過異常

此時(shí)執(zhí)行:

# 重啟 flannel 容器或服務(wù),重新注冊(cè) FDB
docker restart flannel-xxxx

問題解決

總結(jié)思路

檢查項(xiàng)

內(nèi)容

MAC 沖突

多節(jié)點(diǎn) flannel.1 接口 MAC 是否一致

FDB 表

本地 FDB 映射是否含有錯(cuò)誤記錄

flannel 狀態(tài)

是否在 VXLAN 模式、路由是否同步

節(jié)點(diǎn)創(chuàng)建方式

是否通過 VM 克隆,是否處理 machine-id

快速修復(fù)

重啟 flannel 服務(wù)或容器

?? 建議

  • 虛擬機(jī)克隆后建議清理 machine-id 并重新生成;
  • 使用 MACAddressPolicy=random 保證 overlay 網(wǎng)絡(luò)接口唯一;
  • 定期巡檢 flannel 路由表、FDB 表等底層數(shù)據(jù);
  • 可使用 CNI 替代方案(如 Calico)更強(qiáng)的網(wǎng)絡(luò)控制策略。
責(zé)任編輯:龐桂玉 來源: 運(yùn)維之美
相關(guān)推薦

2009-02-24 09:44:00

IP地址沖突設(shè)置

2014-02-19 09:25:21

網(wǎng)絡(luò)沖突改虛擬機(jī)MAC

2015-07-10 09:08:52

IP地址IP地址沖突

2011-07-11 15:20:15

MAC地址java

2022-12-15 08:30:35

Flannel網(wǎng)絡(luò)磁盤

2023-11-13 09:28:20

跨組件組件化

2009-01-03 08:57:00

2009-08-04 16:12:18

2020-11-30 12:15:26

KubernetesPodLinux

2015-01-15 09:53:48

UCSManager

2019-11-20 09:15:53

KubernetesPod

2025-03-04 08:20:00

2022-03-01 14:48:03

IP地址網(wǎng)絡(luò)路由振蕩

2015-07-15 12:31:53

網(wǎng)絡(luò)·安全技術(shù)周刊

2023-10-12 22:35:08

2025-04-10 08:50:00

ARP局域網(wǎng)MAC 地址

2012-04-16 09:16:48

2014-04-24 16:21:50

LinuxIP地址沖突

2013-09-27 11:31:18

IP地址MAC地址

2013-12-11 09:51:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)