Невозможно получить доступ к 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 для начальной домашней страницы и страницы ошибок. Страница ошибки после перенаправления
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
Не повезло, та же проблема.