nginx-ingress-controller部署配置详解

 更新时间:2023年11月22日 08:49:53   作者:moon  
这篇文章主要为大家介绍了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日志的实现(避免日志多大)

    分割nginx日志的实现(避免日志多大)

    nginx默认没有提供对日志文件的分割功能,所以随着时间的增长,access.log和error.log文件会越来越大,本文主要介绍了分割nginx日志的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Nginx出现404 Not Found nginx/1.23.4的完美解决方案

    Nginx出现404 Not Found nginx/1.23.4的完美解决方案

    在Nginx配置过程中,404 Not Found错误是一个常见问题,本文将详细解析Nginx 404 Not Found的原因及解决方案,确保您能够轻松解决这一问题,需要的小伙伴跟着小编一起来学习学习吧
    2024-07-07
  • 使用Nginx进行URL转发的配置案例

    使用Nginx进行URL转发的配置案例

    Nginx是一个高性能的Web服务器和反向代理服务器,它还可以用于URL转发,在本教学文章中,我们将从安装Nginx开始,逐步介绍配置步骤,并展示一个URL转发的案例,感兴趣的朋友可以参考下
    2023-09-09
  • SpringBoot项目整合FastDFS+Nginx实现图片上传功能

    SpringBoot项目整合FastDFS+Nginx实现图片上传功能

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题,对SpringBoot整合FastDFS实现图片上传功能,感兴趣的朋友一起看看吧
    2022-05-05
  • nginx容器配置文件独立的实现

    nginx容器配置文件独立的实现

    本文主要介绍了nginx容器配置文件独立,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 详解nginx前端根据$remote_addr分发方法

    详解nginx前端根据$remote_addr分发方法

    这篇文章主要介绍了详解nginx前端根据$remote_addr分发方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Nginx负载均衡配置简单配置方法

    Nginx负载均衡配置简单配置方法

    Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器。下面通过本文给大家分享Nginx负载均衡配置简单配置方法,需要的的朋友参考下吧
    2017-08-08
  • 浅析nginx刚刚发布的JavaScript能力nginScript

    浅析nginx刚刚发布的JavaScript能力nginScript

    Nginx [engine x]是全球最受欢迎,也是最优秀的web服务器、反向代理服务器。nginScript是JavaScript/ECMAscript的子集,nginScript不是通过V8引擎实现的。本文给大家介绍nginx刚刚发布的JavaScript能力nginScript,感兴趣的朋友跟着小编一起了解了解吧
    2015-09-09
  • Nginx Socket代理的实现方法

    Nginx Socket代理的实现方法

    Nginx的socket代理通常指的是Nginx通过stream模块来处理非HTTP的 TCP 流量,本文就来介绍一下Nginx Socket代理的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Nginx 禁止IP访问如何实现

    Nginx 禁止IP访问如何实现

    这篇文章主要介绍了Nginx 禁止IP访问如何实现的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论