Score:0

การสื่อสาร NodePort ระหว่างโหนดไม่ทำงาน

ธง kr

ฉันมี 4 โหนดคลัสเตอร์พร้อมบริการ NodePort ที่เปิดเผยจากพอร์ต 80 ถึงพอร์ต 30871 ฉันสามารถเข้าถึงบริการในแต่ละโหนดด้วยชื่อโฮสต์ของโหนดนั้น เช่น:

ขด http://hostname1:30871 บนโหนด hostname1

ทำงานตามที่คุณคาดหวัง เหมือนกันสำหรับ

ขด http://hostname2:30871 บนโหนด hostname2

ฉันคาดว่าจะสามารถเข้าถึงบริการจากโหนดอื่นได้ อย่างไรก็ตามการวิ่ง

ขด http://hostname1:30871

จากโหนด hostname2 ส่งผลให้เกิดข้อผิดพลาดหมดเวลาการเชื่อมต่อ สิ่งเดียวกันเมื่อฉันใช้ IP ฉันใช้ผ้าสักหลาดสำหรับเครือข่ายและอยู่ในคลัสเตอร์ CentOS แบบ Bare Metal, Kubernetes 1.20

ฉันสามารถเข้าถึงบริการผ่าน ClusterIP จากโหนดใดก็ได้ ดังนั้น

ขด http://clusterIPaddress:80

ทำงานเหมือนมีเสน่ห์สำหรับโหนดทั้งหมด

ไฟร์วอลล์ทั้งหมดเปิดอยู่และผ่านการทดสอบแล้วว่าใช้งานได้ สิ่งเดียวกันนี้เกิดขึ้นกับเครื่องที่อยู่นอกคลัสเตอร์อีกครั้งฉันคาดว่าจะสามารถเข้าถึง http://hostname1:30871 จากที่ใดก็ได้ แต่เกิดปัญหาการหมดเวลาเดียวกัน

SYN avatar
hk flag
SYN
เป็นเรื่องแปลก ... ในขั้นตอนนั้นฉันจะติดตั้ง tcpdump และพยายามหาว่าการเชื่อมต่อที่ขาดหายไปนั้นหายไปจากที่ใด เมื่อเร็ว ๆ นี้ (สักหลาด + iptables) ฉันได้เห็นสิ่งแปลก ๆ กับกฎ iptables: อย่าลังเลที่จะเปรียบเทียบกฎจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง
mxcolin avatar
kr flag
เป็นเรื่องแปลก ฉันทดสอบไฟร์วอลล์และเปิดพอร์ตโดยใช้ nc บนพอร์ตเดียวกัน และทำงานได้ตามที่คุณคาดหวัง ซึ่งแปลกมาก
SYN avatar
hk flag
SYN
ใช้ tcpdump บนโหนดต้นทางและปลายทาง ดูที่อินเทอร์เฟซเครือข่ายหลัก/ที่โหนดพอร์ตกำลังฟังอยู่ กรองพอร์ตปลายทาง: คุณเห็นการเชื่อมต่อเหล่านั้นออกจากโหนดต้นทางหรือไม่ ถึงโหนดปลายทางหรือไม่ อัปเดตโพสต์ของคุณด้วย tcpdumps แจ้งให้เราทราบว่าคุณเห็นอะไร
mxcolin avatar
kr flag
นี่คือสิ่งที่ฉันเห็นจนกว่าจะหมดเวลา `17:15:37.090460 IP 10.120.112.226.57008 > 10.120.112.210.80: ค่าสถานะ [S], seq 4047977385, ชนะ 29200, ตัวเลือก [mss 1460,sackOK,TS val 281286877 ecr 0,nop length,wscale 7], 0`
mxcolin avatar
kr flag
ฉันเปลี่ยน k8s เพื่ออนุญาตการแชร์พอร์ต 80 แต่พฤติกรรมเดียวกันนี้เกิดขึ้นกับทุกพอร์ตพอร์ตทั้งหมดและทดสอบระหว่างเครื่องและการทำงาน
SYN avatar
hk flag
SYN
นั่นคืออะไร? โหนดต้นทาง โหนดปลายทาง ? คุณใช้ tcpdump บนอินเทอร์เฟซใด ๆ หรือไม่ โปรดแก้ไขโพสต์เริ่มต้นของคุณด้วยเอาต์พุต tcpdump บนอินเทอร์เฟซเครือข่าย NON-SDN (ไม่มีเหตุผลที่เราจะเห็นพอร์ต 80 นั้น) และกรองพอร์ต THE DESTINATION (ที่คุณกำลังเชื่อมต่อ: พอร์ต NodePort ของคุณ) แสดงทั้งโหนดต้นทางและปลายทาง
SYN avatar
hk flag
SYN
`10.120.112.226.57008 > 10.120.112.210.80` นี้ควรอยู่ใน SDN ของคุณ โหนดของคุณควรมีเส้นทาง (`ip r`) ซึ่งส่งเครือข่ายย่อยนั้นผ่าน SDN ของคุณ หากคุณไม่บอกเราว่าคุณเคยเห็นสิ่งนี้ที่ไหน: มันไม่มีประโยชน์
mxcolin avatar
kr flag
ฉันไม่คุ้นเคยกับ tcpdump มากนัก พยายามเรียนรู้ นี่จะเป็น: `sudo tcpdump --อินเทอร์เฟซ -nn โฮสต์ ` บนโฮสต์และ ` sudo tcpdump --interface -nn โฮสต์ และพอร์ต 30871` ที่ปลายทาง?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา