Peta dunia

 

EN: Read in English

Dunia K3: Kaunter & Pintu

HTTPRoute: papan tanda ke gerai

Anda akan belajar: hantar setiap laluan ke Service yang betul dengan peraturan HTTPRoute.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Anda di sini: kluster kind-dev namespace default
curl minta /api/menu daripada pintu masuk. nginx kedai menjawab 404 Not Found. Output terminal: $ curl -s http://172.18.0.200/api/menu <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.29.8</center> </body> </html>

API menu tinggal di /api. Tapi setiap pesanan sampai ke kaunter kedai. Kedai tiada /api/menu, jadi ia kata 404.

Tengok

Ketik setiap titik pada garis masa.

HTTPRoute: Papan tanda di pintu masuk: laluan mana pergi ke Service mana. pegang papan tanda. Setiap peraturan ialah satu laluan, kemudian satu Service. Papan paling khusus menang.

Cuba

routes.yaml tambah papan tanda ini. Apply, kemudian minta /api/menu sekali lagi.

    - matches:
        - path:
            type: PathPrefix
            value: /api
      backendRefs:
        - name: api
          port: 80
Anda di sini: kluster kind-dev namespace default
Gerai: 3. Dulang: 5 (5 sedia). Menunggu gerai: 0.
Pintu masuk entrance 172.18.0.200/ → shop
  • api2/2 sedia
  • shop3/3 sedia
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka
  • api·w7hql
  • shop·hl847
  • shop·qcgst
dev-worker2Buka
  • api·lrtxv
  • shop·pm62t
Masa: +0s (dipercepat)

Semak

Mei tulis papan /api sendiri. Ia tak boleh apply. Baikinya.

Baiki manifest ini, kemudian tekan Apply.

route.yaml16 baris

Maksudnya: laluan mesti bermula dengan /.

Teka

Silap mana yang buat pintu masuk jawab 500? Cuba setiap kerosakan, satu demi satu.

Rosakkan satu hop supaya pengguna dapat: 500 Internal Server Error.

  1. Pelayar webGET /api/menu di port 80
  2. Gateway (pintu masuk)entrance mendengar di :80
  3. HTTPRoute (papan tanda)/api → api:80
  4. Service (nombor giliran)api: port 80 → 8080
  5. EndpointSlice (dulang sedia)2 sedia daripada 2
  6. Pod (dulang)api-6d8f7b9c5d-k2x8p mendengar di :8080
Rosakkan sesuatu

Semak

Dua papan: PathPrefix /api dan PathPrefix /. Ke mana setiap pesanan pergi?

Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.

      Anda berjaya!

      Kini anda boleh hantar setiap laluan ke Service yang betul.

      Nak tahu lebih (pilihan)

      Peraturan juga boleh padankan hostname dan header. Dua backendRefs dengan weight, contohnya 90 dan 10, jadi canary. Filter boleh hala HTTP ke HTTPS. kubectl describe httproute tunjuk ResolvedRefs: Service yang hilang tunjuk BackendNotFound.

      Latihan sebenar (pilihan), di kluster kind anda dengan controller Gateway:

      Misi sebenar

      1. kubectl describe httproute

      0 daripada 4 langkah siap · Tanda anda disimpan.