Ingress-nginx工作原理和实践

本文介绍了Ingress与Ingress-nginx的区别,重点阐述了Ingress-nginx如何作为K8s的Ingress控制器工作,通过Paths分流和rewrite-target注解实现服务路由。同时,文章详细探讨了Ingress-nginx到webapp的日志追踪,利用X-Request-ID确保请求在整个架构中的可追溯性,以便于故障排查和责任划分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
这个图算是一个通用的前后端分离的 k8s 部署结构:
Nginx Ingress 负责暴露服务(nginx前端静态资源服务), 根据十二要素应用的原
则,将后端 api 作为 nginx 服务的附加动态资源。

Ingress vs Ingress-nginx

Ingress 是一种向 k8s 集群外部的客户端公开服务的方法, Ingress 在网络协议栈的应用层工作,
根据请求的主机名 host 和路径 path 决定请求转发到的服务。
在这里插入图片描述
在应用 Ingress对象提供的功能之前,必须强调集群中存在 Ingress Controller, Ingress 资源才能正常工作。

我这里的 web 项目使用的是常见的 Ingress-nginx (官方还有其他用途的 Ingress),Ingress-nginx 是使用 nginx 作为反向代理和负载均衡器的 K8s Ingress 控制器, 作为 Pod 运行在kube-system 命名空间。

了解 Ingress 工作原理,有利于我们如何与运维人员打交道。
在这里插入图片描述
下面通过 Ingress-nginx 暴露 Kibana 服务:


apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: kibana
  labels:
    app: kibana
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-body-size: "8m"
    nginx.ingress.kubernetes.io/ssl-redirect: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值