Я использую Traefik 1.7 в кластере Oracle K8s. Для этого теста я использовал внутренний балансировщик нагрузки. Когда я использую только http, Traefik работает нормально. Я могу получить доступ к своему сервису. Также нет проблем использовать только https. Проблема в том, что я пытаюсь использовать https в сочетании с http-redirect. Для своего теста я создал самоподписанные сертификаты. Вот мое определение входа:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubia-ingress
labels:
app: kubia
annotations:
kubernetes.io/ingress.class: traefik
spec:
defaultBackend:
service:
name: kubia
port:
number: 80
rules:
- host: xxx.yyy.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubia
port:
number: 80
Я могу получить доступ к моему сервису k8s без traefik. Я также могу получить доступ к моей службе через https с curl --insecure https://xxx.yyy.org
В журнале traeffik-controller-log я вижу в этом случае:
10.244.0.128 - - [22/Mar/2021:14:57:01 +0000] "GET / HTTP/2.0" 200 23 "-" "curl/7.61.1" 6 "xxx.yyy.org/" "http://10.244.0.7:8080" 4ms
Но когда я звоню напрямую curl --insecure https://xxx.yyy.org
, я получаю в качестве ответа: Найдено и в журнале вижу:
10.244.0.128 - - [22/Mar/2021:14:56:55 +0000] "GET / HTTP/1.1" 302 5 "-" "curl/7.61.1" 5 "entrypoint redirect for http" "/" 0ms
Моя конфигурация traefik относительно http-redirect:
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "^http://(.*)"
replacement = "https://$1"
или я тоже пробовал
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
Оба не работают. Я также попытался использовать несколько аннотаций во входящем компоненте, но безуспешно. В чем проблема? Насколько я понимаю, я могу глобально настроить http-redirect в traefik-toml на вход через аннотации во входе. Но как-то не получается.
Любые советы приветствуются!