ฉันมีคลัสเตอร์ 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แต่คำถามยังคงอยู่ว่าเป็นไปได้หรือไม่ ขอบคุณ!