网络服务请求流程简单理解

ops/2024/10/18 16:53:06/

网络流程:

DNS负责将域名解析为IP地址,ALB可以在多个服务实例之间分配流量,APISIX作为API网关处理更细粒度的流量管理,Service在Kubernetes中为Pod提供稳定的访问入口,而Kubernetes则负责整个应用的部署、扩展和运维。通过这些技术的协同工作,可以实现高效、可扩展和高可用的云原生应用。

前置知识点:


CDN:

  • 作用:(缓存)就近获取缓存资源
  • 具体概念:在多个地理位置部署服务器节点,将内容缓存到离用户更近的服务器上,从而加快内容的加载速度和提高可用性。
  • 缓存资源类型:CDN通常用于加速静态资源的分发,如图片、视频和JavaScript文件等

DNS服务器:(区别CDN)

  • 作用:将域名解析为IP地址
  • 具体概念:负责将域名解析为IP地址,以便用户可以通过易于记忆的域名访问网站。DNS服务器会缓存域名解析结果,以提高解析效率和减少延迟。
  • 实际上:域名与IP地址映射关系

ALB:

  • 作用:负载均衡,转发,安全防护
  • 具体概念:应用程序层面工作的负载均衡器,它可以在多个目标(如EC2实例、容器和IP地址)之间自动分配传入的流量。ALB会监控已注册目标的健康状况,并仅将流量传输到运行状况良好的目标。它可以根据传入流量随时间的变化对负载均衡器进行扩展,并支持将请求根据URL路径、主机头等条件路由至不同的目标组
  • 安全防护:1.网络访问控制
  1. 设置 IP 白名单和黑名单

    • 通过配置 ALB 的访问控制列表(ACL),明确指定允许或拒绝访问的 IP 地址范围。你可以将已知的可信来源 IP 地址添加到白名单中,阻止来自特定恶意 IP 地址的访问请求。
    • 定期更新黑名单,以应对不断变化的网络威胁。可以使用网络安全情报服务来获取最新的恶意 IP 地址列表。
  2. 限制访问来源

    • 对于特定的应用场景,可以限制 ALB 只接受来自特定网络区域或云服务提供商内部网络的流量。例如,如果你的应用只面向企业内部用户,可以限制访问来源为企业内部 IP 地址范围。
    • 考虑使用虚拟私有云(VPC)来进一步隔离和控制网络访问。确保 ALB 部署在 VPC 中,并配置适当的网络访问策略。



2.加密与认证

  1. 启用 SSL/TLS 加密:

    • 强制所有传入和传出的流量通过 SSL/TLS 进行加密,以保护数据在传输过程中的安全性。ALB 支持多种 SSL/TLS 证书类型,包括自签名证书、由证书颁发机构(CA)颁发的证书等。
    • 定期更新 SSL/TLS 证书,确保证书的有效性和安全性。同时,配置证书的自动更新机制,以减少证书过期带来的风险。
  2. 实施客户端认证:

    • 除了服务器端的认证,还可以考虑实施客户端认证。这要求客户端提供有效的数字证书或其他认证凭证,以验证其身份。通过客户端认证,可以进一步增强应用的安全性,防止未经授权的访问。

APISIX:

  • 作用:网关,路由转发
  • APISIX是一个动态、实时、高性能的API网关,提供丰富的流量管理功能,如负载均衡、动态上游、灰度发布、服务熔断、身份认证等。它可以处理南北向流量和东西向流量,并可以作为Kubernetes Ingress Controller使用。APISIX支持多协议、全动态能力、精细化路由、安全防护和运维友好的特性。
  • 特点:
  1. 丰富的流量管理功能:        
    1. 负载均衡有效分配请求流量到多个后端服务实例,提高系统的可用性和可靠性。通过智能的负载均衡算法,可以根据不同的指标进行请求分发,确保每个实例都能得到合理的负载。
    2. 动态上游:能够动态地调整上游服务的配置,适应不断变化的业务需求。当后端服务发生变化时,APISIX 可以快速响应并更新路由规则,保证请求的正确转发
    3. 灰度发布:支持渐进式的发布策略,允许在不影响整体系统的情况下,逐步将新功能或更新推送给用户。通过控制流量的比例,可以对新版本进行测试和验证,降低发布风险。
    4. 服务熔断:当后端服务出现故障时,能够快速熔断连接,避免故障扩散。APISIX 可以监测后端服务的健康状况,并在出现问题时自动中断请求,保护系统的稳定性。
    5. 身份认证提供多种身份认证方式,确保只有授权用户能够访问 API。这有助于保护系统的安全性,防止未经授权的访问和数据泄露。
  2. 高性能:APISIX 作为一个动态、实时的 API 网关,具备出色的性能表现。它能够快速处理大量的 API 请求,确保系统的响应速度和吞吐量,满足高并发业务场景的需求。
  3. 精细化路由:能够根据不同的请求参数、头部信息等进行精细化的路由转发。这有助于实现复杂的业务逻辑,提高系统的可扩展性和灵活性。
  4. 安全防护:提供多种安全防护机制,如访问控制、加密传输、防止 SQL 注入和 XSS 攻击等。这有助于保护系统的安全性,防止恶意攻击和数据泄露。

服务svc:

  • svc:路由,具体的请求服务
  • 含义:服务(svc)在Kubernetes中是指一种抽象,它定义了一种访问Pod的方式。Service为一组Pod提供一个单一的入口地址,并且可以在Pod之间分配请求。Service可以通过Label Selector来选择特定的Pod,并且可以与Ingress、LoadBalancer等资源配合使用,以实现外部访问和负载均衡。

Kubernetes(K8S):

  • 作用:集群,容器,监控pod如果挂了,可以及时提起来
  • 含义:是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了服务发现、负载均衡、存储编排、自动扩展和自动愈合等功能。在Kubernetes中,Service是连接外部请求与Pod的重要组件,它允许访问者通过一个固定的地址访问后端的Pod,而不管Pod的数量如何变化或Pod的IP地址如何改变

流程:

  1. 用户发起请求:用户通过浏览器或客户端应用发起对某个服务的请求。

  2. DNS域名解析:用户的请求首先需要通过DNS系统解析成服务器的IP地址。

    • 如果请求的是静态资源,可能会直接被CDN缓存并提供服务。
  3. ALB负载均衡:对于动态内容的请求,会经过应用负载均衡器(ALB),它负责将流量分配到不同的服务实例上,以保证服务的高可用和扩展性。

  4. APISIX网关:请求到达APISIX网关,它负责更细粒度的流量管理,如路由、过滤、认证等。

  5. 服务svc:在Kubernetes中,服务(svc)作为微服务的抽象,它定义了如何访问背后的Pod。服务会将请求代理到后端的Pod。

  6. K8S管理服务部署和扩展:Kubernetes负责管理Pod的生命周期,包括服务的部署、扩展和自动愈合。

  7. 返回响应给用户:处理完请求后,结果会返回给用户,完成整个流程。

总结:

DNS负责将域名解析为IP地址,ALB可以在多个服务实例之间分配流量,APISIX作为API网关处理更细粒度的流量管理,Service在Kubernetes中为Pod提供稳定的访问入口,而Kubernetes则负责整个应用的部署、扩展和运维。通过这些技术的协同工作,可以实现高效、可扩展和高可用的云原生应用。


http://www.ppmy.cn/ops/126521.html

相关文章

html嵌入vue如何使用?

html嵌入vue如何使用&#xff1f; <script src"https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script> <script src"https://cdn.bootcdn.net/ajax/libs/vuex/3.6.2/vuex.min.js"></script> <script src&q…

简单说说 spring 是如何处理循环依赖问题的(源码解析)

聊聊源码 在spring 中&#xff0c;解决循环依赖的关键是三级缓存&#xff0c;缓存数据在 DefaultSingletonBeanRegistry类中 /** Cache of singleton objects: bean name to bean instance. */ //一级缓存&#xff0c;是最终生成的对象 private final Map<String, Object&…

web网页---QQ注册页面的实现

代码部分 <title>QQ注册</title> </head> <style>.text-style1 {color: black;font-size: 28px;}.text-style2 {color: rgb(37, 37, 37);font-size: 17px;}.text-style3{color: rgba(189, 185, 185, 0.904);font-size: 9px;}.text-style4 {color: rg…

使用 nrm 管理 npm 镜像源

使用 nrm&#xff08;npm registry manager&#xff09;管理 npm 镜像源可以极大地简化在不同 npm 源之间切换的过程。以下是如何使用 nrm 来管理 npm 镜像源的详细步骤&#xff1a; 一、安装 nrm 首先&#xff0c;你需要全局安装 nrm。打开命令行界面&#xff0c;然后运行以…

永恒之蓝漏洞

MS17-010是微软于2017年3月发布的一个安全补丁&#xff0c;旨在修复Windows操作系统中的一个严重漏洞&#xff0c;该漏洞被称为“永恒之蓝”&#xff08;EternalBlue&#xff09;。这个漏洞影响了Windows的Server Message Block&#xff08;SMB&#xff09;协议&#xff0c;允许…

万界星空科技专门针对数字化改造申报的MES

万界星空科技在制造业管理软件领域&#xff0c;特别是MES&#xff08;制造执行系统&#xff09;方面&#xff0c;展现了强大的技术实力和创新能力&#xff0c;为制造型企业实现数字化转型提供了全方位的支持和保障。针对数字化改造申报的MES系统&#xff0c;万界星空科技提供了…

OSI参考模型与TCP/IP模型

OSI参考模型 物理层 定义电压、接口、线缆标准、传输距离、传输介质等物理参数。数据链路层&#xff08;确定范围里的某一个&#xff09; MAC地址寻址网络层&#xff08;确定一个范围&#xff09; 网络地址层寻址、路由传输层&#xff08;区分不同的程序&#xff09; 数据分段…

《计算机视觉》—— 疲劳检测

文章目录 一、疲劳检测实现的思想二、代码实现 一、疲劳检测实现的思想 了解以下几篇文章有助于了解疲劳检测的方法 基于dlib库的人脸检测 https://blog.csdn.net/weixin_73504499/article/details/142977202?spm1001.2014.3001.5501 基于dlib库的人脸关键点定位 https://blo…