#kubernetes #traefik #oracle-cloud-infrastructure #traefik-ingress
Вопрос:
Я использую Traefik 1.7 в кластере Oracle K8s. Для этого теста я использовал внутренний балансировщик нагрузки. Когда я использую только http, Traefik работает нормально. Я могу получить доступ к своему сервису. Также нет проблем использовать только https. Проблема в том, что я пытаюсь использовать https в сочетании с http-перенаправлением. Для своего теста я сгенерировал самозаверяющие сертификаты. Вот мое определение входа:
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-контроллера я вижу в этом случае:
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-перенаправления такова
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "^http://(.*)"
replacement = "https://$1"
или я тоже пытался
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
И то, и другое не работает.
Я также попытался использовать несколько аннотаций в компоненте «вход», но безуспешно.
В чем проблема?
Насколько я понимаю, я могу глобально настроить http-перенаправление в traefik-toml для каждого входа с помощью аннотаций во входе. Но кое-как это не работает.
Любые советы приветствуются!