В настоящее время я использую traefik 1.6.x в качестве входного контроллера в моих кластерах K8s.Я хотел обновить до 1.7.x (а потом и до 2.x позже), но мои входы больше не работают после обновления.
Кажется, проблема в том, что я делаю ограничения метода http на своемвходит, добавляя методы к аннотации traefik.frontend.rule.type
следующим образом:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-name
namespace: namespace1
annotations:
kubernetes.io/ingress.class: traefik
traefik.frontend.rule.type: "Method: CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT; PathPrefix"
ingress.kubernetes.io/hsts-max-age: "315360000"
ingress.kubernetes.io/hsts-include-subdomains: "true"
ingress.kubernetes.io/custom-frame-options-value: "SAMEORIGIN"
ingress.kubernetes.io/content-type-nosniff: "true"
ingress.kubernetes.io/browser-xss-filter: "true"
ingress.kubernetes.io/custom-response-headers: "Server:||X-Application-Context:||X-Powered-By:||exception:"
spec:
rules:
- host: ...
Я не знаю, предполагалось ли это когда-либо сделать таким образом, но, очевидно, это сработало.Я обнаружил, что в каком-то другом посте StackOverflow iirc.
Удаление части Method (или всей аннотации тогда, потому что PathPrefix
по умолчанию) возвращает маршруты к жизни.Но, конечно, это снова позволяет, например, метод TRACE
.
Есть ли другой способ ограничить их (возможно, даже для всех входов) версиями traefik из 1.7.x?
Спасибозаранее!