Kubernetes traefik ssl прохождение

кубернет: 1,25

трафик: 2.8.7

домен: gitlab.mydomain-prod.dk (у меня уже есть сертификаты для этого домена)

kubectl получить svc gitlab-ce -n gitlab -o yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: gitlab-ce
  name: gitlab-ce
  namespace: gitlab
spec:
  clusterIP: 10.98.93.9
  clusterIPs:
  - 10.98.93.9
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: port-1
    port: 80
    protocol: TCP
    targetPort: 80
  - name: port-2
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: gitlab-ce
  sessionAffinity: None
  type: ClusterIP

Итак, у меня есть модуль gitlab, настроенный с обоими http:

gitlab.rb У меня есть external_url 'http://gitlab.mydomain-prod.dk'

вот путь входа

kubectl получить ingressroute -n gitlab -o yaml

apiVersion: v1
items:
- apiVersion: traefik.containo.us/v1alpha1
  kind: IngressRoute
  metadata:
    name: gitlab-ingress
    namespace: gitlab
  spec:
    entryPoints:
    - websecure
    routes:
    - kind: Rule
      match: Host(`gitlab.mydomain-prod.dk`) && PathPrefix(`/`)
      priority: 1
      services:
      - name: gitlab-ce
        port: 80
    tls:
      secretName: gitlab-test-cert

С реальной конфигурацией я могу получить доступ к https://gitlab.mydomain-prod.dk

Но если я также включу https внутри модуля gitlab (gitlab будет прослушивать как 80, так и 443)

external_url 'https://gitlab.mydomain-prod.dk'

С тем же входным маршрутом у меня плохой шлюз...

Итак, мой вопрос: как только я настроил gitlab для обоих http/https, как мне определить traefik для сквозной передачи ssl?

Something similar to  openshift:

oc create route passthrough route-passthrough-secured --service=frontend --port=80
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
139
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы определить traefik для ssl passthrough, gitlab должен прослушивать порты HTTP и HTTPs. В соответствии с вопросом, похоже, у вас плохой шлюз, когда вы используете один и тот же входной маршрут на HTTPS. См. HTTPS в Kubernetes с использованием прокси-сервера Traefik Рахула Шармы и Traefik Proxy 2.x и TLS 101 Джеральда Кроуса.

Чтобы настроить эту сквозную передачу SSL, вам необходимо настроить TCP-маршрутизатор, следуя этому документу по терминации SSL traefik с помощью промежуточного программного обеспечения oracle fusion, и изменить конфигурацию IngressRoute, чтобы Traefik мог передавать SSL-трафик на серверную службу GitLab. Убедитесь, что tls.passthrough is true это делегирует завершение SSL серверной части и проверяет приложение, можете ли вы получить доступ или нет.

правильно, тем временем я также обнаружил, что мне придется использовать ingressroutetcp вместо ingressroute :) Но, странная часть .... соответствие: HostSNI (*) ЕСЛИ бы я использовал HostSNI (gitlab.mydomain-prod.dk), простое и простое перенаправление не работало ....

johnny bravo 30.03.2023 15:57

можешь поделиться ошибкой.

Hemanth Kumar 31.03.2023 12:09

Другие вопросы по теме