K8S--Ingress的作用

news2024/11/18 4:21:56

原文网址:K8S--Ingress的作用-CSDN博客

简介

本文介绍K8S的Ingress的作用。

-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------

什么是Ingress?

Kubernetes 暴露服务的有三种方式:LoadBlancer Service、NodePort Service、Ingress。官网的定义:管理对外服务到集群内服务之间规则的集合。即:将请求转发到服务,实现服务暴露。

Ingress的功能类似Nginx:把集群内 Service 配置成外网能够访问的 URL、流量负载均衡、提供基于域名访问的虚拟主机等。

Ingress由两部分组成:

  1. Ingress:配置服务的路由规则。
  2. Ingress Controller:将Ingress转化成Nginx的配置文件并使之生效。
    1. 常用的是基于nginx服务的Ingress Controller。

可以将Ingress比作一张地图,而Ingress Controller则是导航系统,它根据地图上的规则将请求导航到正确的位置。

Ingress在调用流程的位置

为什么用Ingress?

K8S集群内服务想要暴露出去面临着几个问题:

Pod 漂移问题

K8S在任意副本(Pod)挂掉时自动启动一个新的。这个新节点可能在任何节点上,Pod IP 会变。如何把动态的 Pod IP 暴露出去?

答案:使用K8S的Service,以标签的形式选定带有指定标签的Pod,并监控和自动负载它们的 Pod IP,只向外暴露 Service IP即可。

一般使用NodePort来暴露:创建NodePort类型的Service时,K8S会自动在集群的每个节点上开一个端口,将请求转发到内部 Service IP 上,如下图所示:

端口管理问题

用 NodePort 方式暴露服务面临的问题是:如果服务数量很多,NodePort 在每个节点上开启的端口会很多。

思考:能否使用Nginx只监听一个端口,比如80,然后按照域名向后转发?

这思路很好,可以使用 DaemonSet 在每个node上监听80,然后写规则。Nginx 外面绑定了宿主机 80 端口(就像 NodePort),本身又在集群内,那么将请求转发到相应Service IP就行了,如下图所示:

域名分配及动态更新问题

按上面的思路,用 Nginx 似乎已经解决了问题,但是有一个很大缺陷:每次有新服务加入怎么改 Nginx 配置?总不能手动改吧?

Ingress就是为了解决这个问题的。原来要改 Nginx 配置,然后配置各种域名对应哪个 Service,现在把这个动作抽象出来,变成一个 Ingress 对象,你可以用 yml 创建,不用每次都去改 Nginx 了,直接改yml,然后创建/更新就行了。

Ingress Controoler 动态的去感知集群中 Ingress 规则变化,生成一段 Nginx 配置,写到 Nginx Pod 里,最后 reload 一下,工作流程如下图:

在实际应用中,最新版本 Kubernetes 已经将 Nginx 与 Ingress Controller 合并为一个组件,所以 Nginx 无需单独部署,只需要部署 Ingress Controller 即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis数据结构源码分析——跳表zset

文章目录 跳表的基本思想特点节点与结构跳跃表节点zskiplistNode属性 跳跃表链表属性 跳表的设计思想和优势API解析zslCreate(创建跳跃表)zslCreateNode(创建节点)zslGetRank(查找排位)zslDelete&#xff0…

【RPC】序列化:对象怎么在网络中传输?

今天来聊下RPC框架中的序列化。在不同的场景下合理地选择序列化方式,对提升RPC框架整体的稳定性和性能是至关重要的。 一、为什么需要序列化? 首先,我们得知道什么是序列化与反序列化。 网络传输的数据必须是二进制数据,但调用…

2019年认证杯SPSSPRO杯数学建模D题(第一阶段)5G时代引发的道路规划革命全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 5G下十字路口车辆通行效率的讨论和建模 D题 5G时代引发的道路规划革命 原题再现: 忙着回家或上班的司机们都知道交通堵塞既浪费时间又浪费燃料,甚至有的时候会带来情绪上的巨大影响,引发一系列的交通问题。…

图像的初识

一、图像的数组表示 RGB能够构成人眼所能识别的所有颜色。 二、图像的变换 Example: img.shape Out[329]: (512, 768, 3) img.dtype Out[330]: dtype(uint8) #补值变换 shift_temp_img [255,255,255] - img shift_img Image.fromarray(shift_temp_img.astype(ui…

【REST2SQL】09 给Go的可执行文件exe加图标和版本信息等

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

关于2024年3月10日PMP考试的常见问题解答

2024年第一场PMP考试3月10日(星期日)举行,目前报名正在进行中。请参加了这次考试或者计划在2024年尽早取证的伙伴们抓紧报名,本次报名截止到1月18日。 说句题外话,PMP的考试安排越来越随性了,哈&#xff0…

MyBatis 入门指南:基本配置和使用

ORM——对象关系映射 O:对应的是java中的对象&#xff0c;一般是pojo&#xff08;实体类&#xff09; R:关系型数据库 M:映射,指java中对象映射到数据库表中对应的记录&#xff0c;或者是数据库表中对应记录映射成java中的对象 一个mybaties程序 1、添加依赖 <parent&g…

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M 在中低容量存储领域&#xff0c;除了FLASH的使用&#xff0c;&#xff0c;还有铁电存储器FRAM的使用&#xff0c;相对于FLASH&#xff0c;FRAM写操作时不需要预擦除&#xff0c;所以执行写操作时可以达到更高的速度&#xff0…

大数据Doris(五十五):SQL函数之日期函数(三)

文章目录 SQL函数之日期函数(三) 一、SECOND(DATETIME date)

Python画球面投影图

天文学研究中&#xff0c;有时候需要画的并不是传统的XYZ坐标系&#xff0c;而是需要画一个形如这样子的球面投影图&#xff1a; 下面讲一下这种图怎么画 1. 首先要安装healpy包 pip install healpy 2. 然后导入包 如果之前安装过healpy&#xff0c;有的会提示不存在healpy…

将 RGB 转换为十六进制、生成随机十六进制

RGB与十六进制 RGB&#xff08;Red, Green, Blue&#xff09;和十六进制是两种常用的颜色表示方式。 RGB是一种加法混色模式&#xff0c;它通过调节红、绿、蓝三个颜色通道的亮度来混合出各种颜色。对于每个颜色通道&#xff0c;取值范围是0到255&#xff0c;0表示该通道对应…

如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

SpringCloud Aliba-Nacos-从入门到学废【2】

&#x1f95a;今日鸡汤&#x1f95a; 比起不做而后悔&#xff0c;不如做了再后悔。 ——空白《游戏人生》 目录 &#x1f9c8;1.Nacos集群架构说明 &#x1f9c2;2.三种部署模式 &#x1f37f;3.切换到mysql 1.在nacos-server-2.0.3\nacos\conf里找到nacos-mysql.sql 2.查…

【Docker篇】从0到1搭建自己的镜像仓库并且推送镜像到自己的仓库中

文章目录 &#x1f50e;docker私有仓库&#x1f354;具体步骤 &#x1f50e;docker私有仓库 Docker私有仓库的存在为用户提供了更高的灵活性、控制和安全性。与使用公共镜像仓库相比&#xff0c;私有仓库使用户能够完全掌握自己的镜像生命周期。 首先&#xff0c;私有仓库允许…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)一

第四部分、字符串&#xff0c;数据结构中的串存储结构 串存储结构&#xff0c;也就是存储字符串的数据结构。 很明显&#xff0c;字符串之间的逻辑关系也是“一对一”&#xff0c;用线性表的思维不难想出&#xff0c;串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

人脸识别为何老是不过?是什么原因导致的?

人脸识别可能无法通过的原因有很多&#xff0c;以下是可能的一些原因&#xff1a; 1. 非常规面部表情&#xff1a;如果你做出了与常规面部表情不同的表情&#xff0c;如张大嘴巴或瞪大眼睛等&#xff0c;可能会干扰人脸识别系统的准确性。 2. 光线条件&#xff1a;人脸识别系统…

[牛客周赛复盘] 牛客周赛 Round 28 20240114

[牛客周赛复盘] 牛客周赛 Round 28 20240114 总结A\B1. 题目描述2. 思路分析3. 代码实现 小红的炸砖块1. 题目描述2. 思路分析3. 代码实现 小红统计区间&#xff08;easy&#xff09;1. 题目描述2. 思路分析3. 代码实现 小红的好数组1. 题目描述2. 思路分析3. 代码实现 小红统…

电子学会C/C++编程等级考试2023年09月(六级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:生日相同 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536 输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一…

数据库系统课设——教务管理系统

目录 前言 一、总体设计 1、知识背景 2、模块介绍&#xff08;需求分析&#xff09; 3、设计步骤 3.1 页面原型设计 3.2 前端页面开发 3.3 后端接口开发 3.4 数据库设计 二、详细设计 1、 系统功能模块划分 2、 数据流程图 3、数据库概念结构设计 4、 数据库逻辑…

python统计分析——操作案例(模拟抽样)

参考资料&#xff1a;用python动手学统计学 import numpy as np import pandas as pd from matplotlib import pyplot as plt import seaborn as snsdata_setpd.read_csv(r"C:\python统计学\3-4-1-fish_length_100000.csv")[length] #此处将文件路径改为自己的路…