ฉันกำลังพยายามส่งทราฟฟิกไคลเอนต์ไปยังคลัสเตอร์ kubernetes NodePort ที่ฟังบน 192.168.1.100.30000 (พอร์ต https)
ความต้องการของลูกค้าในการส่งคำขอไปที่ 192.168.1.100.8000 ดังนั้นฉันจึงเพิ่มกฎ REDIRECT ต่อไปนี้ใน iptables:
iptables -t nat -I PREROUTING -p tcp --dst 192.168.1.100 --dport 8000 -j REDIRECT --to-port 30000
iptables -t nat -I OUTPUT -d 192.168.1.100 -p tcp --dport 8000 -j REDIRECT --to-port 30000
อย่างไรก็ตาม ฉันได้รับข้อผิดพลาดต่อไปนี้:
# curl -vk https://192.168.1.100:8000/v1/api
* กำลังจะเชื่อมต่อ() กับพอร์ต 192.168.1.100 8000 (#0)
* ลอง 192.168.1.100...
* เชื่อมต่อกับพอร์ต 192.168.1.100 (192.168.1.100) 8000 (#0)
* เริ่มต้น NSS ด้วย certpath: sql:/etc/pki/nssdb
* ข้อผิดพลาด NSS -12263 (SSL_ERROR_RX_RECORD_TOO_LONG)
* SSL ได้รับบันทึกที่เกินความยาวสูงสุดที่อนุญาต
* ปิดการเชื่อมต่อ 0
curl: (35) SSL ได้รับบันทึกที่เกินความยาวสูงสุดที่อนุญาต
ยังพยายามตั้งค่าระบบระยะไกลที่ระบุใน นี้ ตอบและทำการร้องขอไปยังปลายทางเดียวกันและได้รับข้อผิดพลาดดังต่อไปนี้:
# ip netns exec remotesystem curl -vk https://192.168.1.100:8000/v1/api
* กำลังจะเชื่อมต่อ() กับพอร์ต 192.168.1.100 8000 (#0)
* ลอง 192.168.1.100...
* หมดเวลาการเชื่อมต่อ
* ไม่สามารถเชื่อมต่อกับ 192.168.1.100:8000; หมดเวลาการเชื่อมต่อ
* ปิดการเชื่อมต่อ 0
curl: (7) ไม่สามารถเชื่อมต่อกับ 192.168.1.100:8000; หมดเวลาการเชื่อมต่อ
ฉันรู้ว่าคลัสเตอร์ kubernetes มีนโยบายเครือข่ายที่บังคับใช้กับ calico crds อย่างไรก็ตาม ฉันได้เพิ่มค่าดีฟอลต์ที่อนุญาตทั้งหมดให้กับนโยบายเครือข่ายแล้ว และดูเหมือนว่าทราฟฟิกจะยังคงค้างอยู่
ฉันยังตรวจสอบบันทึกของตัวควบคุมขาเข้าเพื่อดูว่ามีคำขอหรือไม่ แต่ไม่เห็นเอาต์พุตบันทึกใด ๆ เมื่อทำการร้องขอ
สิ่งที่แปลกคือการม้วนพอร์ตโหนดโดยตรง https://192.168.1.100.30000/v1/api
ได้ผลและฉันได้รับการตอบกลับที่ประสบความสำเร็จ
คำถามคือทำไมต้องดัดผม https://192.168.1.100:8000/v1/api (ด้วยกฎ REDIRECT เป็น 30000)
ทำให้คำขอค้าง?