ฉันต้องการความช่วยเหลือเกี่ยวกับเครือข่ายที่ลึกซึ้งกว่านี้ หวังว่าใครสักคนสามารถช่วยฉันหรืออย่างน้อยก็ผลักดันฉันไปในทิศทางที่ถูกต้อง
ในขณะนี้ ฉันมีการตั้งค่าคลัสเตอร์ kubernetes สองโหนด Bare Metal (VPS) ด้วย microk8s
การทดสอบด้วยการปรับใช้เว็บไซต์ใช้งานได้ดี การกำหนดเส้นทางตามข้อมูลขาเข้า :-)
แต่ตอนนี้ฉันต้องการใช้บริการอื่น ๆ ที่สามารถเข้าถึงได้โดยพอร์ต ฉันไม่ต้องการใช้ NodePort เนื่องจากพอร์ตที่ใช้จะสูงกว่า 30,000 เสมอ ฉันต้องการใช้พอร์ตเนทีฟแทน อาจเป็น 21 สำหรับเซิร์ฟเวอร์ FTP หรืออะไรทำนองนั้น
การอ่านที่ละเอียดยิ่งขึ้นทำให้ฉันไปที่ส่วนขยายของ metalLB (LoadBalancer สำหรับ Bare Metal K8S)แต่น่าเสียดายที่ metalLb ต้องการ IP พิสัย ดังนั้นฉันจึงไม่สามารถใช้ pubic IP ที่แตกต่างกันได้ เครื่องทั้งสองของฉันมี IP สาธารณะที่แตกต่างกันมากบน eth0 ซึ่งเข้าถึงได้จากอินเทอร์เน็ต
เพื่อแก้ปัญหา ฉันติดตั้ง NIC ตัวที่สองบนทั้งสองเครื่อง (eth1) ด้วยเครือข่ายท้องถิ่น (192.168.1.10-192.168.1.11) ตอนนี้ฉันมีช่วงของ IP ที่ฉันสามารถมอบให้กับการกำหนดค่าของ metalLB
บนโฮสต์ทั้งสอง ฉันสามารถ ping อีกเครื่องบนที่อยู่ในเครื่องได้ ดังนั้น LAN จึงใช้งานได้
แต่การปรับใช้ (เช่น FTP) เปิดพอร์ตบนที่อยู่ LAN อาจเป็น 192.168.1.11:21
ดูเหมือนจะถูกต้องเมื่อฉันให้ LAN-IPs เหล่านี้แก่ metalLB
ตอนนี้ฉันต้องการเข้าถึงบริการนี้ผ่าน IP สาธารณะ ในแต่ละโฮสต์ IP สาธารณะ (ขอเรียกว่า 5.5.5.5 และ 6.6.6.6 เพื่อให้ชัดเจนว่าไม่ใช่คนในพื้นที่) เป็นเกตเวย์เริ่มต้น ดังนั้นจึงไม่มีเกตเวย์เริ่มต้นสำหรับ IP ของ LAN (192.168.1.x)
ฉันเดาว่าฉันต้องการ DNAT / SNAT เพื่อกำหนดเส้นทางทราฟฟิก โดยมาถึง IP สาธารณะของโฮสต์ NIC ตัวที่สอง (eth1) ที่บริการกำลังฟังอยู่
ในที่สุดฉันก็เล่นนิดหน่อยกับ IPTABLES และพยายามกีดขวางการจราจร ระหว่างอินเทอร์เฟซแต่ไม่มีโชค
ฉันใช้อูบุนตูล่าสุดบนทั้งสองโฮสต์ พอร์ต 21 ถูกเปิดบนไฟร์วอลล์บนทั้งสองโฮสต์...
แต่สุดท้ายฉันต้องการใช้บริการหลาย ๆ พอร์ตด้วยพอร์ตที่แตกต่างกัน TCP และ UDP ด้วย
วิธีแก้ปัญหานี้เป็นไปได้หรือไม่?
ขอบคุณสำหรับความคิดใด ๆ !