本质上ingress就是一个nginx,而nginx上有很多配置,
ingress支持一些个性化定义配置,以下即为将超时信息设置为60秒,关键注解为annotaions
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: web-tlsannotations:nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"nginx.ingress.kubernetes.io/proxy-send-timeout: "600"nginx.ingress.kubernetes.io/proxy-read-timeout: "600"spec:ingressClassName: "nginx"tls:- hosts:- blog.aliangedu.cnsecretName: blog-aliangedu-cnrules:- host: blog.aliangedu.cnhttp:paths:- path: /pathType: Prefixbackend:service:name: nginxport:number: 80
示例
示例2:设置客户端上传文件大小
nginx.ingress.kubernetes.io/proxy-body-size: "10m"apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: web-tlsannotations:nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"nginx.ingress.kubernetes.io/proxy-send-timeout: "600"nginx.ingress.kubernetes.io/proxy-read-timeout: "600"nginx.ingress.kubernetes.io/proxy-body-size: "100m"spec:ingressClassName: "nginx"tls:- hosts:- blog.aliangedu.cnsecretName: blog-aliangedu-cnrules:- host: blog.aliangedu.cnhttp:paths:- path: /pathType: Prefixbackend:service:name: nginxport:number: 80

示例3:重定向,下面实例为重定向到/目录
nginx.ingress.kubernetes.io/rewrite-target:
https://www.baidu.com
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: web2annotations:nginx.ingress.kubernetes.io/rewrite-target: /spec:ingressClassName: nginxrules:- host: web2.aliangedu.cnhttp:paths:- path: /foopathType: Prefixbackend:service:name: nginxport:number: 80- path: /barpathType: Prefixbackend:service:name: httpdport:number: 80
示例4:自定义规则
nginx.ingress.kubernetes.io/server-snippet: |
if ($http_user_agent ~* '(Android|iPhone)') {
rewrite ^/(.*)
http://m.baidu.com break;
}
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: web1annotations:nginx.ingress.kubernetes.io/server-snippet: |if ($http_user_agent ~* '(Android|iPhone)') {rewrite ^/(.*) http://m.baidu.com break;}spec:ingressClassName: "nginx"rules:- host: web1.aliangedu.cnhttp:paths:- path: /pathType: Prefixbackend:service:name: nginxport:number: 80