带你读《企业级云原生白皮书项目实战》——3.3.1 入方向

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 带你读《企业级云原生白皮书项目实战》——3.3.1 入方向

3.3 访问链路


3.3.1 入方向


集群内访问


对于集群内应用给客户端提供服务, 根据访问客户端的location,可以分为集群内和集群外,这两种访问链路下,整个svc 的网络链路是不一样的。对于集群内访问svc:

•我们首先推荐集群使用svc 的 clusterip,此模式下,访问svc 的clusterip的转发模式取决于svc的internalTraffiffifficPolicy配置,默认是cluster。 所以访问ClusterIP会被iptables/ipvs 规则默认转发到svc 后端的所有endpoint

image.png

•某些客户场景是通过lb类型暴露svc服务到集群外部, 同时配置lb的域名解析到lb的ip。而这个lb是提供给集群外和集群内访问。这种情况下,对于集群外部访问,lb可以均匀的转发到集群内后端的ep。但是对于集群内的pod访问svc的lb IP, 流量转发取决于externalTraffiffifficPolicy的设置,一般情况下,ACK为Local模式,此时,客户端pod和lb后端的某个ep在同一个节点上时,流量才会被iptables/ipvs规则转发该节点上的后端ep上,而不会转发到其他节点上的ep。 这时候就产生了疑问,如何实现在集群内访问lb ip呢?可以给svc配置host(通过service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname:"${your_service_hostname}"), 不过这种情况下,一般建议配置7层监听,如果是4层监听,可能存在访问回环的问题。

•有时不需要或不想要负载均衡,以及单独的 Service IP。 遇到这种情况,可以通过指定 Cluster IP(spec.clusterIP)的值为 "None" 来创建 Headless Service。可以使用一个无头 Service 与其他服务发现机制进行接口,而不必与 Kubernetes 的实现捆绑在一起。对于无头 Services 并不会分配 Cluster IP,kube-proxy 不会处理它们, 而且平台也不会为它们进行负载均衡和路由。 DNS 如何实现自动配置,依赖于 Service 是否定义了选择算符。

集群外访问

•ingress controller的本质是多一层nginx7层代理

•ingress controller本质是多一层nginx7层代理,默认情况下ingress controller svc使用的lb为4层 tcp监听,tls需要通过ingress配置来支持。对于七层节点来说,服务端如果需要采集客户端真实IP地址,需要采集XFF的header来确定客户端的地址需要采集XFF的header来确定客户端的地址

•ingress的后端或者证书更新的时候,svc的ep更新后,ingress也会重新reload backend,这之间是需要一个时间差的,这个差值一般在几秒以内,不会对业务产生影响。所以存在pod已经被从svc 的ep中移除,但是还为从ingress controller的backend移除,依然会存在请求打到老pod,所以建议在pod中设置prestop来进行优雅的关闭连接。

•Loadblance 类型的svc

•依赖slb的负载均衡算法 健康检查,白名单等功能,可以通过SLB的ACL名单, 来控制SLB的访问规则。

•slb支持7层监听,可以将证书放到slb上来完成https的握手,但是slb与后端pod使用http协议通讯。 这时候如果集群内访问SLB IP其实链路是不经过SLB的,会被iptables规则直接转发到目的pod,无法建立http是连接

•默认添加的后端服务器是nodeport类型,Terway模式,优选eni类型,这样SLB会直接转发到目的pod所在的ECS的附属ENI上,避免了后端ECS上的多次转发

•NodePort类型的svc

•依赖节点本身具备公网ip,这种用法会比较消耗eip,需要每个ECS配置EIP来提供被公网访问的能力

•不同的pod所在节点公网能力有所不同,会增加运维成本,建议使用SLB的方式提供对外服务的能力

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
12 2
|
3天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
1天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
2天前
|
Cloud Native API 持续交付
云原生之旅:从容器到微服务的演进之路
【10月更文挑战第39天】在这篇文章中,我们将一起探索云原生技术的奥秘。通过浅显易懂的语言和生动的比喻,我们将了解云原生技术如何改变软件开发的世界。文章将带领读者从容器的基本概念出发,逐步深入到微服务架构的实践,揭示这些技术如何助力现代应用的快速迭代与可靠部署。准备好,让我们启程进入云原生的精彩世界吧!
|
4天前
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
|
4天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
12天前
|
Kubernetes Cloud Native 微服务
云原生之旅:从容器到微服务
【10月更文挑战第29天】在这篇文章中,我们将一起探索云原生的奥秘。云原生不仅仅是一种技术,更是一种文化和方法论。我们将从容器技术开始,逐步深入到微服务架构,最后探讨如何在云平台上实现高效的服务部署和管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的技能。让我们一起踏上这段激动人心的云原生之旅吧!
|
12天前
|
运维 Kubernetes Cloud Native
云原生之旅:容器化与微服务的融合
【10月更文挑战第28天】 在数字化转型的浪潮中,云原生技术如星辰般璀璨,引领着企业IT架构的未来。本文将带你穿梭于云原生的世界,探索容器化技术和微服务架构如何携手共舞,打造灵活、高效的应用部署和运维模式。我们将通过实际代码示例,揭示这股力量背后的奥秘,并展现它们是如何为现代软件开发带来革新。准备好了吗?让我们启航,驶向云原生技术的深海。
|
13天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
44 4
|
12天前
|
Cloud Native 持续交付 云计算
云原生入门指南:从容器到微服务
【10月更文挑战第28天】在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本篇文章将带你了解云原生的基本概念,探索它如何通过容器化、微服务架构以及持续集成和持续部署(CI/CD)的实践来提升应用的可伸缩性、灵活性和可靠性。你将学习到如何利用这些技术构建和部署在云端高效运行的应用,并理解它们对DevOps文化的贡献。
33 2