CHƯƠNG 16 · Istio Ambient & Zero Trust•BÀI 64 / 80

Gateway API, routing và mesh telemetry

Phân biệt mesh HTTPRoute với public edge ingress.

Mạng nâng cao◷ 4 phút đọc4/4 trong chương

Nắm bản chất

Gateway API dùng GatewayClass, Gateway và HTTPRoute. Trong Ambient, một HTTPRoute có thể parentRefs tới Service để điều khiển traffic qua waypoint; một edge HTTPRoute gắn Gateway điều khiển inbound traffic khác.

Istio/Kiali/Prometheus/OTel giúp quan sát mesh, nhưng mTLS thành công không tự sinh một distributed trace đầy đủ. Cần trace context propagation, spans và exporter/backend tương ứng. Weighted routing theo request chỉ có ý nghĩa khi controller và telemetry được kiểm chứng.

Luồng hoạt động

HTTPRoute→waypoint/gateway→backend

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata: {name: payments-split, namespace: shop}
spec:
  parentRefs:
  - {group: '', kind: Service, name: payments, port: 8080}
  rules:
  - backendRefs:
    - {name: payments-v1, port: 8080, weight: 90}
    - {name: payments-v2, port: 8080, weight: 10}

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Trong lab Buổi 16, gửi nhiều requests /version, xem tỷ lệ v1/v2, HTTPRoute conditions và Kiali traffic graph nếu metrics pipeline đã có.

Lỗi dễ mắc

!

Retries trên POST thanh toán có thể gây tác dụng phụ trùng; cần idempotency keys và retry budgets, không chỉ cấu hình proxy.

Tự kiểm tra

HTTPRoute được apply có tự cung cấp public HTTPS không?Xem đáp án ↗

Không. Cần controller, Gateway listener, certificates, DNS và routing/exposure phù hợp.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.

↓ Tải mã nguồn thực hành chương 16
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗