chúng tôi (cuối cùng) đang chuyển từ Traefik 1 sang Traefik 2. Chúng tôi chạy hơn 400 ứng dụng trên GKE. Một thách thức còn lại của chúng tôi là:
Trong Traefik 1, chúng tôi đặt chú thích trên Ingress của mỗi ứng dụng để thêm tiêu đề vào yêu cầu đến phần phụ trợ. Giá trị của tiêu đề đó là duy nhất cho mỗi Ingress. Đây là một ví dụ với giá trị . Mỗi ứng dụng có một giá trị khác trong Ingress của nó.:
---
apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
tên: testapp
không gian tên: kiểm tra
chú thích:
ingress.kubernetes.io/custom-request-headers: X-Backend-Hint:<tên ứng dụng>
thông số kỹ thuật:
...
Traefik 2 không còn hỗ trợ tiêu đề này. Có vẻ như cách duy nhất để thêm tiêu đề yêu cầu như vậy vào mỗi ứng dụng là tạo một phần mềm trung gian customRequestHeaders duy nhất cho từng giá trị duy nhất, sau đó thêm phần mềm trung gian đó vào Ingress phù hợp. Như vậy:
---
apiVersion: traefik.containo.us/v1alpha1
loại: Phần mềm trung gian
metadata:
tên: phụ trợ-gợi ý-tiêu đề
không gian tên: kiểm tra
thông số kỹ thuật:
tiêu đề:
tiêu đề tùy chỉnhRequest:
X-Backend-Gợi ý: <tên ứng dụng>
---
apiVersion: mạng.k8s.io/v1
loại: Xâm nhập
metadata:
tên: testapp
không gian tên: kiểm tra
chú thích:
traefik.ingress.kubernetes.io/router.middlewares: test-backend-hint-header@kubernetescrd
thông số kỹ thuật:
...
Tự động hóa điều này tất nhiên là có thể, nhưng nó có nghĩa là triển khai hơn 400 phần mềm trung gian gần như giống hệt nhau. Điều đó có gây ra vấn đề gì cho Traefik không?
Đây thực sự là cách tốt nhất? Hoặc bằng cách nào đó chúng ta có thể sử dụng một phần mềm trung gian duy nhất với một biến được truyền qua chú thích Ingress không? Có lẽ một cái gì đó khác mà tôi đã không nghĩ đến?
Tại thời điểm này, do khả năng tương thích với các công cụ tham chiếu Ingress khác như cert-manager và external-dns, chúng ta chưa thể sử dụng IngressRoute CRD mà phải sử dụng Ingress cổ điển.