วิธีกำหนด Ingress ใน GKE ด้วยคอนเทนเนอร์ Spring Cloud Netflix

Aug 15 2020

ฉันมีสถาปัตยกรรมไมโครเซอร์วิสสร้างบน Spring Cloud Netflix:

  • business-owner-service ชี้ไปที่แอป Spring Boot ที่ทำงานบนพอร์ต 8763 การส่งต่อพอร์ตเสร็จสิ้นแล้วบริการเจ้าของธุรกิจ: 80 เปลี่ยนเส้นทางไปยังพอร์ต 8763
  • จุดบริการลูกค้าไปยังแอป Spring Boot ที่ทำงานบนพอร์ต 8766 ฝ่ายบริการลูกค้า: 80 -> 8766

สถาปัตยกรรมทำงานได้อย่างถูกต้องหากฉันเรียกใช้ผ่านเกตเวย์ Spring Cloud Zuul แต่ฉันต้องการตั้งค่า Ingress

การกำหนดค่าที่แน่นอนของฉันมีดังต่อไปนี้:

  • ทางเข้า

  • การกำหนดค่าเส้นทางขาเข้า

ปัญหาคือทางเข้ามีบริการแบ็กเอนด์ทั้งหมดที่ไม่แข็งแรงและฉันไม่รู้ว่าฉันทำอะไรผิด ฉันต้องทำอย่างไรจึงจะมี Ingress ที่ใช้งานได้?

แก้ไข: ตามความคิดเห็นฉันพยายามกำหนดความพร้อมโพรบสำหรับพ็อดบริการลูกค้าดังนี้:

วิธีนี้ใช้ไม่ได้ผลและเมื่อฉันพยายามตรวจสอบการกำหนดค่าที่อัปเดตอีกครั้งจะมองไม่เห็นความพร้อมโพรบ ฉันคิดว่านี่เป็นข้อผิดพลาด แต่ฉันไม่แน่ใจว่าจะตรวจสอบได้อย่างไรว่าโพรบได้รับการอัปเดตหรือไม่

นอกจากนี้ตัวกระตุ้น / สุขภาพ GET กำลังทำงานผ่านเกตเวย์ Zuul:

คำตอบ

1 TudorGrigoriu Aug 19 2020 at 17:49

สิ่งที่เป็นทางออกในกรณีของฉันคือการกำหนดค่าการตรวจสุขภาพไม่ใช่การตรวจสอบความพร้อม ฉันอัปเดตการตรวจสอบประสิทธิภาพการทำงานที่สร้างขึ้นโดยอัตโนมัติเพื่อให้บริการแบ็กเอนด์ขาเข้าชี้ไปที่ / ตัวกระตุ้น / สุขภาพ สิ่งนี้ได้ผล

ArghyaSadhu Aug 16 2020 at 00:24

ตัวควบคุมทางเข้า GKE ทำการตรวจสอบความสมบูรณ์ด้วยโพรบความพร้อมที่กำหนดไว้ในการปรับใช้พ็อด เพิ่มโพรบวัดความพร้อมด้านล่างโดยใช้สปริงบูตแอคชูเอเตอร์

spec:
  containers:
    - name: name
      readinessProbe:
        httpGet:
          port: 8080
          path: /actuator/health
        initialDelaySeconds: 10