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 的工作流程
-
部署 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
-
创建 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
-
Ingress 控制器监听并生效
- Ingress 控制器 Pod 会监听集群中的 Ingress 资源,动态更新负载均衡器配置(如 Nginx 的
nginx.conf
),但不会创建新 Pod。
- Ingress 控制器 Pod 会监听集群中的 Ingress 资源,动态更新负载均衡器配置(如 Nginx 的
3. 常见误解与验证
误解:应用 Ingress 资源会自动创建 Pod
- 纠正:
Ingress 资源仅定义规则,必须提前部署 Ingress 控制器,否则规则不会生效,且不会创建任何 Pod。
验证步骤
-
查看 Ingress 控制器的 Pod:
kubectl get pods -n ingress-nginx # 假设控制器部署在 ingress-nginx 命名空间
输出示例:
NAME READY STATUS ingress-nginx-controller-7c489dc6b5-vwj4s 1/1 Running
-
查看 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 的定义。
相关文章:
Ingrees 控制器与 Ingress 资源的区别
在 Kubernetes 中,单纯的 Ingress 资源定义文件(YAML)本身不会直接创建 Pod。Ingress 的作用是定义路由规则(如将外部流量路由到集群内的服务),而实际处理流量的 Pod 是由 Ingress 控制器(如 Ng…...
android 折叠屏开发适配全解析:多窗口、铰链处理与响应式布局
安卓适配折叠屏指南 折叠屏设备为安卓开发带来了新的机遇和挑战。以下是适配折叠屏的关键要点: 1. 屏幕连续性检测 // 检查设备是否支持折叠屏特性 private fun isFoldableDevice(context: Context): Boolean {return context.packageManager.hasSystemFeature(&…...

[强化学习的数学原理—赵世钰老师]学习笔记01-基本概念
[强化学习的数学原理—赵世钰老师]学习笔记01-基本概念 1.1 网格世界的例子1.2 状态和动作1.3 状态转移1.4 策略1.5 奖励1.6 轨迹、回报、回合1.6.1 轨迹和回报1.6.2 回合 1.7 马尔可夫决策过程 本人为强化学习小白,为了在后续科研的过程中能够较好的结合强化学习来…...

1、Kafka与消息队列核心原理详解
消息队列(Message Queue, MQ)作为现代分布式系统的基础组件,极大提升了系统的解耦、异步处理和削峰能力。本文以Kafka为例,系统梳理消息队列的核心原理、架构细节及实际应用。 Kafka 基础架构及术语关系图 术语简要说明 Produce…...

免费公共DNS服务器推荐
当自动获取的DNS或本地运营商的DNS出现问题,可能导致软件无法连接服务器。此时,手动修改电脑的DNS设置或许能解决问题。许多用户觉得电脑上网速度慢、游戏卡顿,归咎于DNS问题。确实,我们可以自行设置一个DNS来改善网络体验。不少用…...
POST请求 、响应、requests库高级用法
常见请求方式POST请求 代码如下 import requestsdata {name:germey,age:25} r requests.post("https://www.httpbin.org/post",datadata) print(r.text) 如果请求方式为POST方式,运行结果如下: {"args": {}, "data"…...
React 第三十八节 Router 中useRoutes 的使用详解及注意事项
前言 useRoutes 是 React Router v6 引入的一个钩子函数,允许通过 JavaScript 对象(而非传统的 JSX 语法)定义路由配置。这种方式更适合复杂路由结构,且代码更简洁易维护。 一、基础使用 1.1、useRoutes路由配置对象 useRoute…...
ApplicationEventPublisher 深度解析:Spring 事件驱动模型的核心
ApplicationEventPublisher 是 Spring 框架中 事件驱动编程模型 的核心接口,用于实现 观察者模式(Observer Pattern)。它允许 Bean 之间通过 发布-订阅机制 进行松耦合通信,适用于解耦业务逻辑、实现异步处理等场景。 1. Applicat…...

【统计以空格隔开的字符串数量】2021-11-26
缘由一提标准的大一oj提木-编程语言-CSDN问答 void 统计以空格隔开的字符串数量() {//缘由https://ask.csdn.net/questions/7580109?spm1005.2025.3001.5141int n 0, x 0, g 0, k 1;string s "";cin >> n;getchar();while (n--){getline(cin, s);while …...

OSCP备战-kioptrixvm3详细解法
探测IP arp-scan -l 得出目标IP:192.168.155.165 也可以使用 netdiscover -i eth0 -r 192.168.155.0/24 也可以使用 nmap -sN 192.168.155.0/24 --min-rate 1000 修改hosts文件 找到IP后,通过之前读取README.txt了解到,我们需要编辑host…...
客服系统重构详细计划
# 客服系统重构详细计划 ## 第一阶段:系统分析与准备工作 ### 1. 代码审查和分析 (1-2周) - 全面分析现有代码结构 - 识别代码中的问题和瓶颈 - 理解当前系统的业务逻辑 - 确定可重用的组件 - 制作系统功能清单 ### 2. 技术栈升级准备 (1周) - 升级PHP版本到7…...

《从零构建大模型》PDF下载(中文版、英文版)
内容简介 本书是关于如何从零开始构建大模型的指南,由畅销书作家塞巴斯蒂安• 拉施卡撰写,通过清晰的文字、图表和实例,逐步指导读者创建自己的大模型。在本书中,读者将学习如何规划和编写大模型的各个组成部分、为大模型训练准备…...
视频编解码学习六之视频采集和存储
视频采集的核心原理是用光学元件(如摄像头)将光信号转换为电信号进行传输和存储。 摄像头的主要功能是将光学图像转换为电信号(模拟或数字),核心流程如下: 1. 光学成像 镜头组:聚焦光线到感光…...

大数据应用开发和项目实战-电商双11美妆数据分析
数据初步了解 (head出现,意味着只出现前5行,如果只出现后面几行就是tail) info shape describe 数据清洗 重复值处理 这个重复值是否去掉要看实际情况,比如说:昨天卖了5瓶七喜,今天卖了5瓶七…...
《算法导论(第4版)》阅读笔记:p18-p31
《算法导论(第4版)》学习第 11 天,p18-p31 总结,总计 4 页。 一、技术总结 1. Fourier transform(傅里叶变换) In mathematics, the Fourier transform (FT) is an integral transform that takes a function as input then outputs another function…...
[Java][Leetcode simple]26. 删除有序数组中的重复项
思路 第一个元素不动从第二个元素开始:只要跟上一个元素不一样就放入数组中 public int removeDuplicates(int[] nums) {int cnt1;for(int i 1; i < nums.length; i) {if(nums[i] ! nums[i-1]) {nums[cnt] nums[i];}}return cnt;}...

招行数字金融挑战赛数据分析赛带赛题二
赛题描述:根据提供的脱敏资讯新闻数据,选手需要对提供的训练集进行特征工程,构建资讯分类模型,对与测试集进行准确的新闻分类。 最终得分:0.8120。十二点关榜没看到排名,估算100? 训练集很小&am…...

卡尔曼滤波算法(C语言)
此处感谢华南虎和互联网的众多大佬的无偿分享。 入门常识 先简单了解以下概念:叠加性,齐次性。 用大白话讲,叠加性:多个输入对输出有影响。齐次性:输入放大多少倍,输出也跟着放大多少倍 卡尔曼滤波符合这…...

ENSP-OSPF综合实验
AR4中通过ospf获取的其他区域路由信息,并且通过路由汇总后简化路由信息 实现全网通,以及单向重发布,以及通过缺省双向访问, 通过stub简化过滤四类五类lsa,简化ospf路由信息 通过nssa简化ospf信息 区域汇总简化R4路由信…...

电池单元和电极性能
电芯设计中的挑战 对于电池制造商来说,提高电池能量和功率密度至关重要。在高功率密度和长循环寿命之间取得平衡是电池设计中的关键挑战,通常需要仔细优化材料、电极结构和热管理系统。另一个关键挑战是通过优化重量体积比来降低电池单元的总体成本。 工…...

软件设计师-错题笔记-软件工程基础知识
1. 解析: A:体系结构设计是概要设计的重要内容,它关注系统整体的架构,包括系统由哪些子系统组成、子系统之间的关系等 B:数据库设计在概要设计阶段会涉及数据库的逻辑结构设计等内容,如确定数据库的表结…...
Redis协议与异步方式(二)
目录 1.redis pipeline 2.redis 事务 2.1 MULTI 2.2 EXEC 2.3 DISCARD 2.4 WATCH 3.lua 脚本 调用方式 4.ACID 特性分析 5.发布订阅 原理 命令 6.异步连接 思想 代码 1.redis pipeline 通过一次发送多次请求命令,为了减少网络传输时间。 注意:p…...
使用 Java 反射打印和操作类信息
Java 反射是 Java 语言的强大特性,允许开发者在运行时动态检查和操作类、字段、方法和构造函数等信息。通过 java.lang.Class 和 java.lang.reflect 包,反射 API 提供了类似 JDK 工具 javap 的功能,用于打印类的详细信息,或实现动态方法调用和字段访问。反射广泛应用于框架…...

销售管理系统使用全攻略:从基础配置到数据分析
如果你是一名刚接手公司销售管理系统的销售经理,你会深刻体会到一个好工具的重要性。如果老板突然要查看季度销售数据时,就不用手忙脚乱地翻找各种Excel表格。 今天就来分享我的经验,希望能帮助到同样需要快速上手的朋友。 系统基础配置指南 …...

PowerShell 脚本中文乱码处理
问题描述 脚本带中文,执行时命令行窗口会显示出乱码 示例 Write-Host "测试成功!"解决方法 问了DeepSeek,让确认是不是 UTF8 无 BOM 格式 事实证明方向对了 但是确认信息有偏差 改成 UTF8 with BOM 使用任意支持修改编码的文本…...
语音合成之十三 中文文本归一化在现代语音合成系统中的应用与实践
中文文本归一化在现代语音合成系统中的应用与实践 引言理解中文文本归一化(TN)3 主流LLM驱动的TTS系统及其对中文文本归一化的需求分析A. SparkTTS(基于Qwen2.5)与文本归一化B. CosyVoice(基于Qwen)与文本归…...

前端性能指标及优化策略——从加载、渲染和交互阶段分别解读详解并以Webpack+Vue项目为例进行解读
按照加载阶段、渲染阶段和交互阶段三个维度进行系统性阐述: 在现代 Web 开发中,性能不再是锦上添花,而是决定用户体验与业务成败的关键因素。为了全面监控与优化网页性能,我们可以将性能指标划分为加载阶段、渲染阶段、和交互阶段…...

RDD实现单词计数
Scala(Spark Shell)方法 如果你在 spark-shell(Scala 环境)中运行: 1. 启动 Spark Shell spark-shell (确保 Spark 已安装,PATH 配置正确) 2. 执行单词统计 // 1. 读取文件&am…...

Java快速上手之实验七
1.编写鼠标事件响应程序MouseEventDemo.java,当鼠标进入和离开窗口时给出相应显示,当按下、弹起时显示当前鼠标的坐标值。 2.编写鼠标事件响应程序MouseMotionEventDemo.java,当鼠标在窗口内移动时显示鼠标的坐标值。 …...
C++八股——函数对象
文章目录 一、仿函数二、Lambda表达式三、bind四、function 一、仿函数 仿函数:重载了操作符()的类,也叫函数对象 特征:可以有状态,通过类的成员变量来存储;(有状态的函数对象称之为闭包) 样…...