ฉันใช้ HA Proxy เป็น Ingress Controller มันถูกติดตั้งด้วย 2 แบบจำลอง การรับส่งข้อมูลหมายถึงบริการ Ingress Controller LB สามารถกำหนดเส้นทางไปยัง 2 พ็อด
แอปพลิเคชันผู้ใช้ปลายทางของฉันมี 3 แบบจำลอง บริการผู้ใช้ปลายทางได้รับการกำหนดค่าด้วย sessionAffinity:ClientIP
หมายความว่าเซสชันระหว่างพ็อดคอนโทรลเลอร์ขาเข้าและพ็อดแอปพลิเคชันค้างอยู่
สิ่งนี้ทำให้เกิดปัญหาเมื่อพ็อดตัวควบคุมขาเข้า 2 ตัวกำหนดเส้นทางทราฟฟิกไปยังพ็อดแอปพลิเคชันที่แตกต่างกัน 2 ตัว เซสชันของผู้ใช้ปลายทางไม่ได้รับการดูแล และผู้ใช้ออกจากระบบกะทันหัน
สิ่งที่จะเหมาะในกรณีนี้คือ
ทางเลือกหนึ่งคือการแนะนำ sessionAffinity:ClientIP
บน Ingress Ctrl LB ด้วย แต่นั่นจะส่งผลต่อทุกแอปพลิเคชันในคลัสเตอร์
ฉันจะแน่ใจได้อย่างไรว่าสำหรับแอ็พพลิเคชันเฉพาะของฉัน คำขอยังคงส่งถึงพ็อด Ingress Controller เพียงอันเดียวอย่างต่อเนื่อง
คำจำกัดความขาเข้าปัจจุบัน
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
คำอธิบายประกอบ:
haproxy.org/backend-config-snippet: |
Ingress คีย์ไดนามิกคุกกี้
คุกกี้ INGRESSCOOKIE แทรกไดนามิก nocache ทางอ้อม
kubernetes.io/ingress.class: haproxy
ชื่อ: แคช
เนมสเปซ: แคช
ข้อมูลจำเพาะ:
กฎ:
- โฮสต์: ac.com
http:
เส้นทาง:
- แบ็กเอนด์:
บริการ:
ชื่อ: เน็กซัส
ท่า:
หมายเลข: 8080
เส้นทาง: /
pathType: คำนำหน้า