当前位置: 首页 > news >正文

endpoint与ingress-nginx的区别

  1. Ingress-nginx
  • 作用
    • 流量入口管理:
      • Ingress-nginx 是一个 Ingress Controller,负责实现 Kubernetes 的 Ingress 资源功能。
      • 它充当集群的 外部访问入口,处理 HTTP/HTTPS 流量,并根据规则将请求路由到后端的 Service 或 Pod。
      • 支持基于域名、路径的路由,以及 TLS 终止、负载均衡等高级功能。
  • 关键特性:

    • 七层(L7)代理:基于 HTTP/HTTPS 协议的路由(如 example.com/api → service-a)。
    • 依赖资源:
      • 需要定义 Ingress 资源(YAML 文件)来描述路由规则。
      • 需要部署 ingress-nginx 的 Pod 作为控制器(通常以 Deployment + Service 形式运行)。
  • 典型场景:

    • 对外暴露多个 Web 服务(通过不同域名或路径区分)。
    • 替代传统的 NodePort/LoadBalancer,提供更灵活的流量管理。
# Ingress 资源定义示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: my-ingress
spec:rules:- host: example.comhttp:paths:- path: /apipathType: Prefixbackend:service:name: api-serviceport:number: 80

2、Endpoint(或 EndpointSlice)
作用:

  • 服务后端发现:

    • Endpoint 是 Kubernetes 自动维护的资源,用于记录一个 Service 后端所有 Pod 的 IP 和端口。
    • 当 Service 的 Pod 发生变化(扩缩容、重启)时,Endpoint 会自动更新。
    • EndpointSlice 是 Endpoint 的升级版,适用于大规模集群(更高效的数据分片)。
  • 关键特性

    • 四层(L4)代理:直接关联 Pod 的网络地址(IP:Port),不感知应用层协议(HTTP/HTTPS)。
    • 自动生成:
      • 由 Kubernetes 根据 Service 的 Label Selector 自动创建和管理。
      • 用户通常无需手动操作(除非使用 Headless Service 或自定义 Endpoint)。
  • 典型场景:

    • Service 流量转发的实际目标(如 ClusterIP 类型的 Service 通过 Endpoint 找到 Pod)。
    • 集成外部服务(手动创建 Endpoint 指向集群外 IP)。
# 查看某个 Service 的 Endpoint
kubectl get endpoints <service-name># 输出示例
NAME           ENDPOINTS                         
api-service    10.244.1.2:80,10.244.2.3:80
  • 核心区别对比
特性 Ingress-nginx Endpoint
功能层级 七层(HTTP/HTTPS) 四层(IP:Port)
主要作用 外部流量路由、TLS 终止、路径匹配 记录 Service 后端 Pod 的实际地址
资源类型 需要部署 Ingress Controller(如 Nginx Pod) Kubernetes 自动生成的资源对象
配置方式 通过 Ingress 资源定义规则 自动由 Service 和 Pod 生成
适用协议 HTTP/HTTPS/GRPC(应用层) 任何 TCP/UDP 协议(传输层)
手动操作频率 高(需定义路由规则) 低(通常自动维护)
  • 协作关系
用户访问 https://example.com/api → 请求到达 ingress-nginx Pod。Ingress-nginx 查询 Ingress 资源,匹配到路径 /api 对应的后端 api-service。Service api-service 通过 Endpoint 获取实际 Pod 的 IP 列表(如 10.244.1.2:80)。流量被转发到目标 Pod。

deepseek_mermaid_20250814_3b7f64

总结:
Ingress-nginx:面向外部流量,提供高级路由能力(需主动配置)。
Endpoint:面向内部服务发现,自动跟踪 Pod 变化(无需配置)。
两者协同工作,共同完成 Kubernetes 服务的暴露和流量管理。

http://www.sczhlp.com/news/11818/

相关文章:

  • PO、VO、BO、DTO、DAO、POJO傻傻分不清楚
  • 2025/08/14 模拟赛总结
  • 题解:洛谷 P4401 [IOI 2007] Miners 矿工配餐
  • 【译】NGINX 推出对 ACME 协议的原生支持
  • 优德普SAP一体化平台有哪些功能?宁波SAP实施优德普
  • vue源码工程运行报错解决
  • 实时动画版本,动态展示 QPSK 与 16QAM 在调制过程中的“星座点跃迁”过程
  • Linux使用Remmina连接远程Windows桌面
  • Python:如何处理WRF投影(LCC, 兰伯特投影)?
  • 主事件循环运行机制
  • 【自学嵌入式:stm32单片机】TIM编码器接口
  • edu 104 G(高维dp + 容斥 + 前缀和优化)
  • mysql 8.4.6开启审计(使用Percona审计插件不成功)
  • Streamlit实战
  • 21Java基础之集合进阶(二)
  • ARM服务器UOS系统升级OpenSSH源码安装
  • 思通数科 AI 视频监控:以核心价值驱动安防行业智能化升级
  • 实战指南|消防管理系统搭建全流程解析
  • CAN BUS 测试教程Ⅱ:德承工控机DS-1402在Linux操作系统调试CAN模块的详细教程指南 - Johnny
  • Windows 10\11 离线安装.NET Framework 3.5(包括.NET 2.0和3.0)
  • 光学元件公司
  • nginx4层代理详解
  • 用函数展示QPSk与16QAm的差异
  • 深度学习教材自动化翻译系统架构解析
  • 矢量绘图到字体管理 | CDR工具箱全方位提升设计效率
  • 在Vue实例中编写生命周期时,为什么不使用箭头函数?
  • 2025年中国薪酬软件厂商全方位对比分析
  • 关于MT管理分享文件到微信,微信提示获取资源失败
  • 我们如何识别软件缺陷并优化代码性能
  • 服务器-用ed25519加密算法生成SSH公钥私钥连接服务器