我正在研究一种设置,可以根据该路径访问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均未附加在该链接上,因此无法正常工作)>
要使这项工作有效,我必须使用哪些注释。
答案 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
。