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

Ingrees 控制器与 Ingress 资源的区别

在 Kubernetes 中,单纯的 Ingress 资源定义文件(YAML)本身不会直接创建 Pod。Ingress 的作用是定义路由规则(如将外部流量路由到集群内的服务),而实际处理流量的 Pod 是由 Ingress 控制器(如 Nginx Ingress Controller、Traefik 等) 创建的。以下是详细解释:

1. Ingress 资源与 Ingress 控制器的区别

组件作用是否创建 Pod
Ingress 资源定义路由规则(例如将 example.com 的流量转发到 my-service:80)。❌ 否
Ingress 控制器监听 Ingress 资源,根据规则配置负载均衡器(如 Nginx),并运行对应的 Pod。✅ 是

2. Ingress 的工作流程

  1. 部署 Ingress 控制器

    • 需要手动部署一个 Ingress 控制器(如 Nginx Ingress Controller)的 Deployment/DaemonSet。
    • 此步骤会创建控制器 Pod(例如 ingress-nginx-controller-xxxxx)。
    # 示例:Nginx Ingress Controller 的 Deployment(简化版)
    apiVersion: apps/v1
    kind: Deployment
    metadata:name: ingress-nginx-controllernamespace: ingress-nginx
    spec:replicas: 1selector:matchLabels:app: ingress-nginxtemplate:metadata:labels:app: ingress-nginxspec:containers:- name: ingress-nginximage: registry.k8s.io/ingress-nginx/controller:v1.8.1
    
  2. 创建 Ingress 资源

    • 定义路由规则(不创建 Pod)。
    # 示例:Ingress 资源(定义路由规则)
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:name: my-ingress
    spec:ingressClassName: nginx  # 指定使用 Nginx 控制器rules:- host: example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: my-serviceport:number: 80
    
  3. Ingress 控制器监听并生效

    • Ingress 控制器 Pod 会监听集群中的 Ingress 资源,动态更新负载均衡器配置(如 Nginx 的 nginx.conf),但不会创建新 Pod。

3. 常见误解与验证

误解:应用 Ingress 资源会自动创建 Pod
  • 纠正
    Ingress 资源仅定义规则,必须提前部署 Ingress 控制器,否则规则不会生效,且不会创建任何 Pod。
验证步骤
  1. 查看 Ingress 控制器的 Pod:

    kubectl get pods -n ingress-nginx  # 假设控制器部署在 ingress-nginx 命名空间
    

    输出示例:

    NAME                                        READY   STATUS
    ingress-nginx-controller-7c489dc6b5-vwj4s   1/1     Running
    
  2. 查看 Ingress 资源是否生效:

    kubectl get ingress
    

    输出示例(需确保 ADDRESS 已分配):

    NAME         CLASS   HOSTS         ADDRESS          PORTS
    my-ingress   nginx   example.com   192.168.1.100    80
    

4. 总结

行为是否创建 Pod说明
应用 Ingress 资源❌ 否仅添加路由规则,需配合 Ingress 控制器生效。
部署 Ingress 控制器✅ 是创建控制器 Pod,负责实际流量处理(如 Nginx、Traefik)。
更新 Ingress 资源❌ 否控制器 Pod 会动态加载新配置,但不会新建 Pod。

可以将 Ingress Controller 理解为 nginx,将 Ingress 资源理解为对 nginx.conf 的定义。

http://www.xdnf.cn/news/384445.html

相关文章:

  • 容器技术 20 年:颠覆、重构与重塑软件世界的力量
  • A1062 PAT甲级JAVA题解 Talent and Virtue
  • 《Hadoop 权威指南》笔记
  • CDGP主观题题库与范例解答
  • 2021-11-16 C++歌手去掉2最高2最低均分
  • 438. 找到字符串中所有字母异位词(滑动窗口)
  • 判断点是否在立方体内
  • 计算机网络笔记(二十)——4.2网际协议IP
  • 滑动窗口,438找出字符串中所有字母的异位词
  • cpu缓存一致性
  • C语言模糊不清的知识
  • BC12-字符金字塔
  • 【C++贪心 位运算】B3930 烹饪问题|普及
  • RESTful API 与传统 API 设计:深度对比与完整实践指南RESTful 与 传统 API 的核心区别
  • 基于STM32的LCD信号波形和FFT频谱显示
  • Pandas 内存不足 或 UDF 执行慢
  • Python面向对象编程:初识类与对象
  • c++学习之路(3)
  • sched_fair 调度:负载权重、虚拟运行时间与最小虚拟时间
  • 安达发|制药车间生产计划准备性的关键影响因素及优化策略研究
  • 力扣刷题(第二十二天)
  • 最小生成树
  • 挪度半身复苏小安妮模型QCPR成人半身急救心肺复苏模拟人
  • Python训练营打卡DAY21
  • Yocto中的${D}解读
  • CTFd 文件上传模块解读
  • CSDN 中 LaTeX 数学公式输入方法
  • NVMe控制器之仿真平台搭建
  • 深入探究 InnoDB 的写失效问题
  • C34-递归函数编码实战