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部署配置的资料请关注脚本之家其它相关文章!

相关文章

  • 安装OpenResty(Nginx仓库)

    安装OpenResty(Nginx仓库)

    这篇文章主要介绍了安装OpenResty(Nginx仓库),需要的朋友可以参考下
    2023-06-06
  • nginx配置代理多个前端资源

    nginx配置代理多个前端资源

    本文主要介绍了nginx配置代理多个前端资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 封80端口应对策略 Nginx反向代理For WIN2003超级傻瓜式配置

    封80端口应对策略 Nginx反向代理For WIN2003超级傻瓜式配置

    封80应对策略,Nginx反向代理ForWIN2003超级傻瓜式配置!
    2010-03-03
  • Nginx请求头丢失的问题解决

    Nginx请求头丢失的问题解决

    本文主要介绍了在使用Nginx进行请求转发时,遇到请求头参数丢失的问题,导致的原因可能是api_key_id和api_key_value这2个参数传递过程中丢失或则根本没传递,下面就来具体介绍一下
    2024-12-12
  • 使用Nginx配置文件服务器方式

    使用Nginx配置文件服务器方式

    这篇文章主要介绍了使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • 升级nginx支持HTTP/2服务端推送的方法

    升级nginx支持HTTP/2服务端推送的方法

    这篇文章主要介绍了升级nginx支持HTTP/2服务端推送的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • nginx设置上传目录无执行权限的方法

    nginx设置上传目录无执行权限的方法

    在windows+iis下,可以设置上传目录,类似:upload,uploadfile,attachments,这样的目录下面无脚本执行权限,从而防止非法用户上传脚本得到webshell
    2010-11-11
  • 教你如何快速在CentOS7中安装Nginx

    教你如何快速在CentOS7中安装Nginx

    今天我们就只图快不图细的讲解一下如何在CentOS7系统下快速安装Nginx,本文通过图文并茂的形式给大家展示,感兴趣的朋友一起看看吧
    2021-09-09
  • 在Nginx中增加对OAuth协议的支持的教程

    在Nginx中增加对OAuth协议的支持的教程

    这篇文章主要介绍了在Nginx中增加对OAuth协议的支持的教程,OAuth协议如今广泛用于社交网络的API中,需要的朋友可以参考下
    2015-06-06
  • Nginx代理后HTTP头部丢失问题的解决方案

    Nginx代理后HTTP头部丢失问题的解决方案

    在日常开发和运维中,我们经常会使用 Nginx 作为反向代理服务器,将客户端的请求转发到后端服务,然而,在某些情况下,通过 Nginx 代理后,后端服务可能会丢失部分 HTTP 头部信息,所以本文给大家介绍了Nginx代理后HTTP头部丢失问题的解决方案,需要的朋友可以参考下
    2025-02-02

最新评论