詹金斯的进入规则

时间:2020-06-04 17:31:39

标签: kubernetes kubernetes-ingress nginx-ingress

我正在研究一种设置,可以根据该路径访问Jenkins的不同安装。 即/ prod可以生产Jenkins,而/ some可以生产其他一些Jenkins。

我创建了以下入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    app: jenkins
  namespace: jenkins
  name: jenkins-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /login
    # nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
    # nginx.ingress.kubernetes.io/cors-allow-headers: Authorization, origin, accept
    # nginx.ingress.kubernetes.io/cors-allow-methods: GET, OPTIONS
    # nginx.ingress.kubernetes.io/enable-cors: "true"
spec:
  rules:
    # - host: "jenkins"
    - http:
        paths:
          - backend:
              serviceName: jenkins-svc
              servicePort: 8080
            path: /prod

使用上面的命令,我可以在/ prod上访问Jenkins,但是单击任何链接会使我离开Jenkins。(问题是,在单击任何链接后,/ prod均未附加在该链接上,因此无法正常工作)

要使这项工作有效,我必须使用哪些注释。

2 个答案:

答案 0 :(得分:0)

尝试添加注释-

nginx.ingress.kubernetes.io/app-root: /prod

根据this,如果服务器的根路径与/不同,则app-route批注会将/ prod视为您的根路径。

答案 1 :(得分:0)

当您想根据路径访问不同的Jenkins时,您可以使用

- apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      cert-manager.io/cluster-issuer: swagger-ui
      kubernetes.io/ingress.class: nginx
      nginx.ingress.kubernetes.io/proxy-body-size: 50m
      nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
      nginx.ingress.kubernetes.io/rewrite-target: /$2
    name: swagger-staging-ingress
  spec:
    rules:
    - host: developer.test.example.io
      http:
        paths:
        - backend:
            serviceName: svc-1
            servicePort: 80
          path: /prod(/|$)(.*)
        - backend:
            serviceName: svc-2
            servicePort: 80
          path: /stag(/|$)(.*)

如果对developer.test.example.io/stag的任何请求被重定向到svc-2,如果/prod将被重定向到svc-1