ฉันมีพ็อดที่มีคลัสเตอร์ IP 10.233.70.35 ในคลัสเตอร์ Bare Metal Kubernetes 1.19 ที่มี Calico 3.16.9 เป็น CNI เรียกสิ่งนี้ว่า พ็อด เอ. ในโหนดส่วนใหญ่ (ซึ่งแตกต่างจากโหนดของ พ็อด เอ) ฝัก (พ็อด บี) ในเนมสเปซ Kubernetes เดียวกันที่สามารถเข้าถึงได้ พ็อด เอ ดังที่แสดงใน pcap บนโหนด โดยที่ พ็อด เอ อยู่ด้านล่าง:
# tcpdump -vv -i calib33bd7211a6|grep 10.233.109.62
tcpdump: กำลังฟังบน calib33bd7211a6, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์
10.233.109.62.60372 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0x16af (ถูกต้อง), seq 2138999970, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 2089146656 ecr 0,nop,wscale 7], ความยาว 0
10.233.70.35.tproxy> 10.233.109.62.60372: ธง [S. ], CKSUM 0xC961 (ไม่ถูกต้อง -> 0x579E), SEQ 398518010, ACK 2138999971, Win 65160 ,wscale 7], ความยาว 0
10.233.109.62.60372 > 10.233.70.35.tproxy: ค่าสถานะ [.], cksum 0x82fd (ถูกต้อง), seq 1, ack 1, ชนะ 502, ตัวเลือก [nop,nop,TS val 2089146656 ecr 4061902615], ความยาว 0
# tcpdump -vv -i tunl0 | grep 10.233.109.62
tcpdump: กำลังฟัง tunl0, RAW ประเภทลิงก์ (Raw IP), ขนาดการจับภาพ 262144 ไบต์
10.233.109.62.34294 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xbd5b (ถูกต้อง), seq 1964000002, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1018637359 ecr 0,nop,wscale 7], ความยาว 0
10.233.70.35.tproxy> 10.233.109.62.34294: ธง [S. ], CKSUM 0xC961 (ไม่ถูกต้อง -> 0x7b0b), SEQ 1667300057, ACK 1964000003, Win 65160, ตัวเลือก [MSS 1460, Sackok, TS ,wscale 7], ความยาว 0
10.233.109.62.34294 > 10.233.70.35.tproxy: ค่าสถานะ [.], cksum 0xa66a (ถูกต้อง), seq 1, ack 1, ชนะ 502, ตัวเลือก [nop,nop,TS val 1018637359 ecr 4061982287], ความยาว 0
10.233.109.62.34294 > 10.233.70.35.tproxy: ค่าสถานะ [F.], cksum 0x592f (ถูกต้อง), seq 1, ack 1, ชนะ 502, ตัวเลือก [nop,nop,TS val 1018657129 ecr 4061982287], ความยาว 0
10.233.70.35.tproxy > 10.233.109.62.34294: ค่าสถานะ [F.], cksum 0xc959 (ไม่ถูกต้อง -> 0x0bec), seq 1, ack 2, ชนะ 510, ตัวเลือก [nop,nop,TS val 4062002057 ecr 1018657129], ความยาว 0
10.233.109.62.34294 > 10.233.70.35.tproxy: ค่าสถานะ [.], cksum 0x0bf3 (ถูกต้อง), seq 2, ack 2, ชนะ 502, ตัวเลือก [nop,nop,TS val 1018657130 ecr 4062002057], ความยาว 0
อย่างไรก็ตาม ในบางเครื่อง (ซึ่งแตกต่างจากโหนดของ พ็อด เอ) ฝัก (พ็อด ซี) ในเนมสเปซ k8s เดียวกันไม่สามารถเข้าถึงได้ พ็อด เอ แม้ว่าจะสามารถไปถึงอุโมงค์ของ พ็อด เอโหนดที่แสดงด้านล่าง:
# tcpdump -vv -i calib33bd7211a6|grep 10.233.82.51
tcpdump: กำลังฟังบน calib33bd7211a6, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์
# tcpdump -vv -i tunl0 | grep 10.233.82.51
tcpdump: กำลังฟัง tunl0, RAW ประเภทลิงก์ (Raw IP), ขนาดการจับภาพ 262144 ไบต์
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xc924 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899329055 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xc529 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899330074 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xbd49 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899332090 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xacc9 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899336314 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0x8cc9 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899344506 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0x4dc9 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899360634 ecr 0,nop,wscale 7], ความยาว 0
10.233.82.51.35038 > 10.233.70.35.tproxy: ค่าสถานะ [S], cksum 0xc9c8 (ถูกต้อง), seq 2532090843, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3899394426 ecr 0,nop,wscale 7], ความยาว 0
ฉันจะทำอย่างไรเพื่อแก้ไขสิ่งนี้ พ็อด เอ สามารถเข้าถึงได้โดยพ็อดใด ๆ ในโหนดใด ๆ
โหนดทั้งหมดอยู่ในเครือข่ายย่อยเดียวกัน แต่กระจายไปทั่วสวิตช์ L2 สองตัว ปัญหานี้ดูเหมือนจะเกิดขึ้นกับบางโหนดในสวิตช์ตัวใดตัวหนึ่งตั้งแต่นั้นเป็นต้นมา พ็อด เอเครื่องของมาถึงโดยอุโมงค์ ข้อสังเกตนี้ไม่เกี่ยวข้อง