Score:0

kubernetes ingress แทนที่เส้นทาง

ธง cn

ฉันมีบริการ API แบ็กเอนด์สองรายการ:

  1. api-บริการ-v1
  2. api-บริการ-v2

ทั้งคู่ตอบสนองบนเส้นทาง "/api/"

ฉันมีการกำหนดค่านี้ทำงานได้ดีเป็นการตั้งค่านักเทียบท่าที่เขียนโดยบริการ nginx ทำหน้าที่เป็นพร็อกซีพร้อมไฟล์กำหนดค่าต่อไปนี้

/etc/nginx/conf.d/default.conf:

เซิร์ฟเวอร์ {
    ...

    ตำแหน่ง /apiv1/ {
        proxy_pass http://api-service-v1/api/;
    }
    ...

    ตำแหน่ง /apiv2/ {
        proxy_pass http://api-service-v2/api/;
    }
    ...
}

ตอนนี้ฉันต้องการปรับใช้การตั้งค่ากับคลัสเตอร์ k8s ฉันติดอยู่กับการกำหนดค่าขาเข้า ingress.yml:

รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
  ชื่อ: dev-ingress
  คำอธิบายประกอบ:
    nginx.ingress.kubernetes.io/use-regex: "จริง"

ข้อมูลจำเพาะ:
  กฎ:
    - โฮสต์: demo.com
      http:
        เส้นทาง:
          - pathType: คำนำหน้า
            เส้นทาง: "/"
            แบ็กเอนด์:
              บริการ:
                ชื่อ: บริการส่วนหน้า
                ท่า:
                  จำนวน: 80

          - pathType: คำนำหน้า
            เส้นทาง: "/apiv1/"
            แบ็กเอนด์:
              บริการ:
                ชื่อ: api-service-v1
                ท่า:
                  จำนวน: 80

          - pathType: คำนำหน้า
            เส้นทาง: "/apiv2/"
            แบ็กเอนด์:
              บริการ:
                ชื่อ: api-บริการ-v2
                ท่า:
                  จำนวน: 80

เส้นทาง "/" ทำงานได้ดี แต่เส้นทาง "/apiv1/" และ "/apiv2/" ไม่ทำงาน

กรุณาช่วย.

ขอบคุณ!

Score:0
ธง us

ทางเข้าจะส่งต่อเส้นทางทั้งหมดไปยังบริการ

เช่น. ของคุณ api-บริการ-v1 จะโดน url เช่น https://yourhost/apiv1/asdfq

หากคุณต้องการให้ Ingress แก้ไขพาธที่ใช้ในการเข้าถึงบริการ คุณต้องบอกให้มันเขียนใหม่ ดังที่อธิบายไว้ใน: https://kubernetes.github.io/ingress-nginx/examples/rewrite/

เปลี่ยน เส้นทาง ของเส้นทางบริการ API ไปที่ /apiv1(/|$)(.*) และ /apiv2(/|$)(.*) ตามลำดับ

จากนั้นเพิ่ม nginx.ingress.kubernetes.io/rewrite-target: /api$1$2 คำอธิบายประกอบ

น่าเสียดายที่หมายความว่า / ของคุณต้องอยู่ในทางเข้าอื่น มิฉะนั้นคำขอสำหรับส่วนหน้าจะถูกเขียนใหม่เพื่อเข้าชม /api/ ในบริการส่วนหน้าของคุณ

โพสต์คำตอบ

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