nginx-ingress-controller部署配置详解
引言
- 开源
Nginx Ingress Controller
(k8s 官网推荐)、Nginx Incorporaton (nginx inc,nginx官网) 和 Nginx Incorporaton Plus - 当多个ingress对象资源配置同一个主机时,就会发生主机冲突。
Ingress Controller
支持两种处理主机冲突的选项:
- Choosing the Winner
If multiple resources contend for the same host, the Ingress Controller will pick the winner based on the creationTimestamp of the resources: the oldest resource will win. In case there are more than one oldest resources (their creationTimestamp is the same), the Ingress Controller will choose the resource with the lexicographically smallest uid.
- Merging Configuration for the Same Host
It is possible to merge configuration for multiple Ingress resources for the same host. One common use case for this approach is distributing resources across multiple namespaces.
- 所以最好一个域名,对应一个ingress对象
# describe ingress 报错 Warning Rejected 17m (x2 over 6d23h) nginx-ingress-controller All hosts are taken by other resources Warning Rejected 17m (x2 over 3d17h) nginx-ingress-controller All hosts are taken by other resources
一. 部署
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.1/deploy/static/provider/cloud/deploy.yaml # 选择版本 https://github.com/kubernetes/ingress-nginx/blob/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml # 修改yaml中的image,改为自己的 # 可用国内源: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.1 registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.1 registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407
二. 配置
1. 跨域
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: front-web namespace: web annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS" nginx.ingress.kubernetes.io/cors-allow-headers: "Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control" nginx.ingress.kubernetes.io/cors-expose-headers: "*, X-CustomResponseHeader" nginx.ingress.kubernetes.io/cors-max-age: 600
2. 白名单
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-myapp namespace: default annotations: kubernetes.io/ingress.class: "nginx" # 白名单 nginx.ingress.kubernetes.io/whitelist-source-range: 120.176.65.13,120.79.18.35
# 设置从代理服务器读取响应的超时时间(以秒为单位,默认值60) nginx.ingress.kubernetes.io/proxy-read-timeout: "300" # 强制重定向到 HTTPS(即使 Ingress 未启用 TLS) nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
3. 强制https
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/preserve-trailing-slash: "true" spec: rules: - http: paths: - path: /testpath backend: serviceName: test servicePort: 80
4. 跳转
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress namespace: uf annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: ingressClassName: nginx-ingress rules: - host: dev-gf.uf.net.cn http: paths: - backend: service: name: uf-epi-html port: number: 80 path: /epi/(.*) pathType: ImplementationSpecific
以上就是nginx-ingress-controller部署配置详解的详细内容,更多关于nginx ingress controller部署配置的资料请关注脚本之家其它相关文章!
相关文章
Nginx出现404 Not Found nginx/1.23.4的完美解决方案
在Nginx配置过程中,404 Not Found错误是一个常见问题,本文将详细解析Nginx 404 Not Found的原因及解决方案,确保您能够轻松解决这一问题,需要的小伙伴跟着小编一起来学习学习吧2024-07-07SpringBoot项目整合FastDFS+Nginx实现图片上传功能
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题,对SpringBoot整合FastDFS实现图片上传功能,感兴趣的朋友一起看看吧2022-05-05浅析nginx刚刚发布的JavaScript能力nginScript
Nginx [engine x]是全球最受欢迎,也是最优秀的web服务器、反向代理服务器。nginScript是JavaScript/ECMAscript的子集,nginScript不是通过V8引擎实现的。本文给大家介绍nginx刚刚发布的JavaScript能力nginScript,感兴趣的朋友跟着小编一起了解了解吧2015-09-09
最新评论