叶工好容7-Ingress的由来

目录

前言

第一章:Service

第二章:Service+LB

第三章:Service+LB+Nginx

第四章:Service+Ingress

总结


前言

吃透一个技术,不仅要掌握详细的用法能够熟练的操作,更需要掌握技术出现的前因后果。不会平白无故创造一种技术,技术的产生是为了解决现有痛点的。本篇就一起来看下ingress出现的前因后果。

第一章:Service

service这个逻辑概念的出现是为了解决pod漂移和容器云服务内部调用的问题。其实容器云很多概念跟公有云相似,因为它就是从公有云实例管理的理念演化过来的。service是个逻辑概念,是不占用真实资源的,跟弹性伸缩组的概念类似;pod与云实例概念类似,代表一个最小的管理资源;pod中的container与实例中进程概念类似;init-container干的事一般是cloud-init或者开机启动项里干的事。

k8s内部通过service互相寻址,但service解决不了k8s外部访问服务的问题。

第二章:Service+LB

为了让k8s外部有一个固定的入口访问k8s内的服务,常规的做法是通过负载均衡器,这样就有了固定的IP+端口,LB负责将流量转发到对应的service上。

这套解法虽然解决service外部访问的问题,但又会带来另一个致命的弊端:成本太高了。按照这种设计,每一个service都要配置一个LB,那就相当不划算了,特别是微服务场景。而关于LB的维护又不属于k8s体系,需要在云平台中去进行操作,为了完成一件事情还得跨越两个基础底座去完成。

第三章:Service+LB+Nginx

为了降低成本,可以只使用一个公共的规格足够强劲的LB,这个LB先把流量转发到Nginx上然后让Nginx转发到service上,不就解决了资源成本的问题么?

思路完全对头,也确实能达到省钱的目的,但这看似完美的设计存在一个致命的缺陷:Nginx的配置维护。每次service发生变化,Nginx就得相应的去改配置,面对一整个集群service的维护,配错了服务流向出现问题就会造成故障。要是能有个东西帮我们把这陀脏活累活干掉那该多好啊。

第四章:Service+Ingress

service的变动与Nginx配置的变动是存在绑定关系的,我们为啥不让k8s自己来管理nginx的配置,使用manifest这种声明式的方式,织入到自动化流水线中呢?这样只要把Nginx运行在k8s里,既能解决Nginx的配置维护问题,又能解决Nginx的部署和算力问题,一箭双雕。这就是Ingress。

只不过这种设计会让Nginx变成性能瓶颈,因为它承载着整个k8s的流量,可以通过pod的横向扩展能力解决算力问题,但一定要注意做好反亲和防止nginx的pod落到同一台node上,避免因竞争宿主机的网络资源带来性能瓶颈。

总结

为了解决外部访问需要引入LB,为了解决LB太多的问题引入了Nginx,为了解决Nginx配置和部署问题引入了Ingress,Ingress的使用需要注意反亲和。

新技术的产生是为了解决现有的痛点,一定要分析前因后果;新技术往往会带来新的问题,不是技术越新潮越好,而是越合适越好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/659901.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php反序列化以及相关例题

目录 一、什么是序列化和反序列化? 二、相关函数 serialize()函数: unserialize()函数:反序列化 三、PHP序列化格式 四、序列化与反序列化的作用 五、各种数据类型序列化后的效果 六、魔术方法 七、反序列化的一些绕过 八…

Ubuntu C++ man手册安装及使用

Ubuntu下C++ man手册安装 C++在线文档: http://www.cplusplus.com/reference/ 第一种办法:使用cppman $ sudo apt install cppman 使用方法 第二种办法: 打开网页:GCC mirror sites- GNU Project 点击下图中的突显行链接: Russia, Novosibirsk:

stm32单片机开发一、中断之外部中断实验

stm32单片机的外部中断和定时器中断、ADC中断等都由stm32的内核中的NVIC模块控制,stm32的中断有很多中,比如供电不足中断,当供电不足时,会产生的一种中断,这么多中断如果都接在CPU上,或者说CPU去处理&#…

灵魂面甲Soulmask联机需要加速吗 灵魂面甲加速器推荐

对那些怀抱田园梦想又兼备冒险之心的伙伴们,这里有个好消息:即将到来的五一假期,一款极富趣味的多人合作生存PVE游戏《灵魂面甲》,将于5月1日在Steam平台正式启动其测试篇章。这款游戏适应单人冒险或组建服务器团队作战&#xff0…

Redis 源码学习记录:字符串

redisObject Redis 中的数据对象 server/redisObject.h 是 Redis 对内部存储的数据定义的抽象类型其定义如下: typedef struct redisObject {unsigned type:4; // 数据类型,字符串,哈希表,列表等等unsigned encoding:4; …

Ieetcode——21.合并两个有序链表

21. 合并两个有序链表 - 力扣(LeetCode) 合并两个有序链表我们的思路是创建一个新链表,然后遍历已知的两个有序链表,并比较其节点的val值,将小的尾插到新链表中,然后继续遍历,直到将该两个链表…

ThingsBoard PE专业版解决方案技术文档——温度湿度

1、项目总览 2、设备接入 3、设备告警 3.1 高温告警 创建一个Flag作为标杆,作为开启告警的开关。 3.2 低湿度告警

华为配置mDNS网关示例(AP与AC间二层转发)

华为配置mDNS网关示例(AP与AC间二层转发) 组网图形 图1 配置mDNS网关组网图 组网需求配置思路操作步骤配置文件 组网需求 如图1所示,某企业的移动终端通过WLAN连接网络,AP_1和AP_2分别与AC之间采用二层转发。部门1和部门2分别属…

《Git---Windows Powershell提交信息中文乱码解决方案》

解释: Windows PowerShell中的Git乱码通常是因为字符编码不正确或Git配置不支持Windows系统的默认编码导致的。Git在处理文件时可能使用UTF-8编码,而Windows系统的命令行工具(如PowerShell)默认使用的是Windows-1252或GBK编码。 …

夏天一到,手机越用越烫?怎样降低持久使用手机时的温度?

夏季来临,手机的温度也随着使用环境的温度升高变得更容易发热。 虽说属于正常的物理现象,但手机过热用起来还是不太舒服,还容易出现过热提醒,导致除“拨号”和“联系人”外,无法使用其它应用。 分享几个减少功耗的小技…

Aiseesoft Data Recovery for Mac:专业数据恢复软件

Aiseesoft Data Recovery for Mac是一款高效且专业的数据恢复软件,专为Mac用户量身打造。 Aiseesoft Data Recovery for Mac v1.8.22激活版下载 无论是由于误删、格式化还是系统崩溃等原因导致的数据丢失,Aiseesoft都能帮助您快速找回。 它采用先进的扫描…

磁盘格式化文件恢复:一文看懂数据恢复操作

当你意识到关键的硬盘已经被格式化,而且你不能获取里面的内容时,这会是非常令人沮丧的。这种情况可能是因为硬盘被不小心格式化,或者是你在试图修正一些问题、调整文件系统或者释放存储空间时,有意进行的格式化。无论具体情况是什…