ฉันมีคลัสเตอร์ Kubernetes ทำงานใน EKS (บน AWS)
ในคลัสเตอร์ ฉันมี Elasticsearch, Kibana และบริการเว็บอื่น ๆ อีกมากมาย
ฉันต้องการตั้งค่าตัวโหลดบาลานซ์ ALB เดียวเพื่อให้:
- ร้องขอให้
/_คิบานะ/*
ถูกส่งไปยัง บริการ: ค้นหา-kb-http พอร์ต: 5601
- การจราจรอื่นๆ ทั้งหมด
/*
ถูกส่งไปยัง บริการ: web-service-locator, พอร์ต: 5,000
ดังนั้นฉันจึงสร้างสิ่งนี้:
#Note: search-kb-http ให้บริการโดย Kibana
---
api เวอร์ชัน: v1
ชนิด:บริการ
ข้อมูลเมตา:
ชื่อ: เว็บบริการระบุตำแหน่ง
เนมสเปซ: ค่าเริ่มต้น
ข้อมูลจำเพาะ:
พอร์ต:
- ชื่อ: http
พอร์ต: 5,000
โปรโตคอล: TCP
ตัวเลือก:
แอปของบริษัท: เว็บ
ประเภท: NodePort
---
apiVersion: networking.k8s.io/v1beta1
ชนิด: ทางเข้า
ข้อมูลเมตา:
คำอธิบายประกอบ:
alb.ingress.kubernetes.io/load-balancer-name: [SNIP]
ภายนอก DNS.alpha.kubernetes.io/ชื่อโฮสต์: [SNIP]
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/certificate-arn: [SNIP]
alb.ingress.kubernetes.io/scheme: เชื่อมต่ออินเทอร์เน็ต
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
ชื่อ: ทางเข้าสาธารณะ
เนมสเปซ: ค่าเริ่มต้น
ข้อมูลจำเพาะ:
กฎ:
- http:
เส้นทาง:
- เส้นทาง: /_kibana/*
แบ็กเอนด์:
ชื่อบริการ: search-kb-http
บริการพอร์ต: 5601
- เส้นทาง: /*
แบ็กเอนด์:
ชื่อบริการ: ตัวระบุตำแหน่งบริการเว็บ
บริการพอร์ต: 5,000
นี่คือปัญหา
ฉันต้องการยกเลิก SSL ที่ ALB สำหรับบริการเว็บหลัก แต่แบ็กเอนด์ Kibana ให้บริการ HTTPS เท่านั้น ดังนั้นฉันจึงต้องการแบ็คเอนด์ที่แตกต่างกันสองอันเพื่อใช้โปรโตคอลที่แตกต่างกันในการขนส่ง
ในการทำวิจัยของฉัน ดูเหมือนว่ามีคำอธิบายประกอบที่ฉันสามารถนำไปใช้กับทางเข้าได้:
alb.ingress.kubernetes.io/backend-protocol: HTTPS
แต่การเปลี่ยนแปลงนี้ดูเหมือนจะส่งผลกระทบต่อทางเข้าทั้งหมด
มีวิธีการระบุโปรโตคอลการขนส่งที่แตกต่างกันสำหรับแบ็กเอนด์ที่แตกต่างกันหรือไม่?
ขอบคุณมาก!
[แก้ไข] ฉันพบวิธีแก้ปัญหาเพื่อปิดใช้งาน TLS บน Kibana ใน ECKแต่คำถามยังคงอยู่ว่าเป็นไปได้หรือไม่ ขอบคุณ!