Невозможно получить доступ к Jenkins из браузера, увидев «400 неверный запрос. Обычный HTTP-запрос был отправлен на порт HTTPS». Использование шлюза Istio-ingress

Дженкинс устанавливается через диаграмму управления с помощью настраиваемого пути установки.

      helm install argo-jenkins -f jenkins-volume.yaml jenkinsci/jenkins -n jenkins --set controller.jenkinsUriPrefix='/jenkinsargo'

У нас есть интерфейсный шлюз Istio-ingress для всех запросов браузера. GW.Yaml:

      apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: jenkins-gw
  namespace: jenkins
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

VS.Ямл:

      apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: jenkins-vs
  namespace: jenkins
spec:
  gateways:
  - jenkins-gw.jenkins
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /jenkinsargo
    route:
    - destination:
        host: argojenkins.jenkins.svc.cluster.local
        port:
          number: 8080

Возможность получить доступ к домашней странице jenkins при попытке настроить безопасность jenkins, видя ошибку выше.

PFA для начальной домашней страницы и страницы ошибок. Страница ошибки после перенаправления

Домашняя страница Jenkins

2 ответа

Эта ошибка означает, что запрос HTTPS достигает прослушивателя HTTP (открытый текст). Проверьте слушателей, некоторые из ваших служб могут иметь неправильное имя (например, http), которое не соответствует соглашению об именах: https://istio.io/latest/docs/reference/config/analysis/ist0118/

Я предлагаю использовать слушатели ПК $ istioctl --address

@Arnau Senserrich,

Если это проблема с именованием http, в этом месте даже не должно открываться страница входа в систему jenkins. Если вы видите изображение выше при доступе к jenkins через LB, я могу ввести учетные данные и войти в систему. Но когда я нажал «Управление дженкинсом» -> «Настроить безопасность», я увидел ошибку выше.

Также пробовал GW с http и https:

GW.yaml:

      apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: jenkins-gw
  namespace: jenkins
spec:
  selector:
    custom: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: PASSTHROUGH
    hosts:
    - "*"

VS1.yaml:

      apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: jenkins-vs
  namespace: jenkins
spec:
  gateways:
  - jenkins-gw.jenkins
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /jenkinsargo
    route:
    - destination:
        host: argojenkins.jenkins.svc.cluster.local
        port:
          number: 8080

VS2.yaml:

      apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: jenkins-vs1
  namespace: jenkins
spec:
  gateways:
  - jenkins-gw.jenkins
  hosts:
  - '*'
  tls:
  - match:
    - port: 443
      sniHosts:
      - "oitat.xyz.com"
    route:
    - destination:
        host: argojenkins.jenkins.svc.cluster.local
        port:
          number: 8080

Не повезло, та же проблема.

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