ingress controller 注解使用
官網github注解地址:
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
#http 跳轉到https
nginx.ingress.kubernetes.io/ssl-redirect: 'true'
#即使未啟用TLS,也強制將重定向到HTTPS
nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
#abc.com 跳轉到www.abc.com
nginx.ingress.kubernetes.io/from-to-www-redirect: 'true'
#session affinity
nginx.ingress.kubernetes.io/affinity: 'cookie'
#開啟路徑正則匹配
nginx.ingress.kubernetes.io/use-regex: 'true'
#uri重定向
nginx.ingress.kubernetes.io/rewrite-target: 'string'
#示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)
在此入口定義中,捕獲的任何字符(.*)都將分配給占位符$2,然后將其用作rewrite-target注釋中的參數。
例如,上面的入口定義將導致以下重寫:
rewrite.bar.com/something 重寫為 rewrite.bar.com/
rewrite.bar.com/something/ 重寫為 rewrite.bar.com/
rewrite.bar.com/something/new 重寫為 rewrite.bar.com/new
#定義應用根路徑
nginx.ingress.kubernetes.io/app-root: 'string'
#示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/app-root: /app1
name: approot
namespace: default
spec:
rules:
- host: approot.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /
$ curl -I -k http://approot.bar.com/
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.11.10
Date: Mon, 13 Mar 2017 14:57:15 GMT
Content-Type: text/html
Content-Length: 162
Location: http://stickyingress.example.com/app1
Connection: keep-alive
后續補充...