nginx ingress путь Дженкинса переписать конфигурацию не работает
Я развернул Дженкинс на Kubernetes и пытаюсь настроить Nginx для его проникновения.
Предположим, что я хочу, чтобы он был доступен по адресу https://myip/jenkins
Это моя начальная конфигурация входа:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: jenkins-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/add-base-url: "true"
spec:
rules:
- http:
paths:
- path: /jenkins
backend:
serviceName: jenkins
servicePort: 8080
С этим, когда я обращаюсь к https://myip/jenkins, я перенаправлен на http://myip/login?from=%2F.
При обращении к https://myip/jenkins/login?from=%2F он остается на этой странице, но ни один из статических ресурсов не найден, так как они ищутся в https://myip/static ...
1 ответ:
Вот как я решил его, настроив путь контекста изображения Дженкинса без необходимости использовать аннотации ingress rewrite:
kind: Deployment metadata: creationTimestamp: null labels: app: jenkins name: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins strategy: {} template: metadata: creationTimestamp: null labels: app: jenkins spec: securityContext: fsGroup: 2000 runAsUser: 1000 runAsNonRoot: true volumes: - name: jenkins-storage persistentVolumeClaim: claimName: jenkins containers: - image: jenkins/jenkins:lts name: jenkins ports: - containerPort: 8080 name: "http-server" - containerPort: 50000 name: "jnlp" resources: {} env: - name: JENKINS_OPTS value: --prefix=/jenkins volumeMounts: - mountPath: "/var/jenkins_home" name: jenkins-storage status: {}Вход:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: prfl-apps-devops-ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/add-base-url: "true" spec: rules: - http: paths: - path: /jenkins backend: serviceName: jenkins servicePort: 8080
Comments