кубернет: 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
Чтобы определить 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
), простое и простое перенаправление не работало ....