Istio新架构揭秘:环境化Mesh

自问世以来,Istio因其使用Sidecar(可编程代理与应用容器一同部署)而备受认可。这种架构选择使Istio用户能够享受其好处,而无需对其应用进行 drast 改变。这些可编程代理,与应用容器紧密部署在一起,因其能够引入Istio的诸多好处而备受赞誉,同时又无需对应用进行重大更改。但总有改进的空间,现在Istio引入了环境化Mesh,这是其架构的重大演进。

Sidecar模型:优势和限制

Istio新架构揭秘:环境化Mesh

1*jBu7mQInMfOZPGvBUJ9J1g.gif

传统Istio模型:

?Istio在工作负载的Pod中部署Envoy代理作为Sidecar。

Sidecar的优势:

?无需重构应用即可享受Istio的功能。

Sidecar的限制:

1.侵入性: Sidecar需要集成到应用中,影响其Kubernetes Pod规格并重定向Pod流量。这经常导致需要重启应用Pod。2.资源利用不足: 由于每个Sidecar代理专门分配给其配对的工作负载,资源分配可能导致集群效率低下。3.流量中断: Istio的Sidecar可能对一些应用的流量捕获和HTTP处理造成问题。

环境化Mesh:克服限制

环境化Mesh采用分层方法,分割了Istio的功能:

1.基础层: 一个安全的覆盖层,负责路由和确保流量的零信任安全。2.上层: 当用户需要访问Istio的广泛功能时,可以启用L7处理,而无需改变应用Pod。

这种方法的优势包括:

?允许逐步采用Istio:从无Mesh -> 安全覆盖层 -> 完整的L7处理。?在不同环境模式或带有Sidecar的工作负载之间实现兼容性。

环境化Mesh的工作原理

?在Kubernetes集群的每个节点上都有一个共享代理(ztunnel),负责Mesh内的安全连接。

?Ztunnel仅处理L4流量,将Istio的数据平面与应用关注点分离。?当命名空间激活环境化模式时,将建立一个零信任覆盖层(具有mTLS、遥测、认证和L4授权)。?对于L7功能,命名空间可以部署一个或多个基于Envoy的Waypoint代理。这些代理可以根据实时流量需求进行自动缩放。

安装环境化Mesh

?下载Istio的最新版本,其中包含对环境化Mesh的alpha支持。?安装Kubernetes网关CRDs,在大多数Kubernetes集群上默认未安装

kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \\\\{ kubectl kustomize \\\"github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v0.8.0\\\" | kubectl apply -f -; }

?ambient配置文件旨在帮助您开始使用环境化Mesh。使用上面下载的istioctl命令,在您的Kubernetes集群上安装带有ambient配置文件的Istio:

istioctl install --set profile=ambient --set \\\"components.ingressGateways[0].enabled=true\\\" --set \\\"components.ingressGateways[0].name=istio-ingressgateway\\\" --skip-confirmation

? 安装了Istio核心

? 安装了Istiod

? 安装了CNI

? 安装了入口网关

? 安装了Ztunnel

? 安装完成

?使用以下命令验证已安装的组件:

kubectl get pods -n istio-system
名称 就绪 状态 重启次数 年龄
istio-cni-node-n9tcd 1/1 运行中 0 57秒
istio-ingressgateway-5b79b5bb88-897lp 1/1 运行中 0 57秒
istiod-69d4d646cd-26cth 1/1 运行中 0 67秒
ztunnel-lr7lz 1/1 运行中 0 69秒
kubectl get daemonset -n istio-system
名称 预期 当前 就绪 最新 可用 节点选择器 年龄
istio-cni-node 1 1 1 1 1 kubernetes.io/os=linux 70秒
ztunnel 1 1 1 1 1 kubernetes.io/os=linux 82秒

安全考虑

环境化Mesh将安全性放在首位:

1.Ztunnel:

尽管是一个共享资源,但ztunnel将其密钥限制在其节点上的工作负载上,降低风险。

1.Waypoint代理: 这些共享资源被限制在一个服务账户中,减少了来自受损代理的潜在伤害。2.Envoy的作用: 凭借其强大、经过考验的特性,Envoy被认为比它配对的许多应用更安全。

性能和资源影响

1.资源效率: 环境化Mesh的ztunnel减少了每个工作负载的预留资源。Waypoint代理的动态扩展也确保了资源优化。2.延迟问题: 虽然有一种看法认为Waypoint代理可能引入延迟,但Istio认为这能够通过与传统Sidecar模型相比减少的L7处理来平衡。

Sidecar的未来

环境化Mesh的推出并不意味着Sidecar的结束。它们仍然适用于需要专用数据平面资源的情景,比如合规性或性能调整。Istio将继续支持Sidecar,确保它们与环境化Mesh和谐共存。

总之,环境化Mesh代表了服务网格架构迈出的一大步,解决了Sidecar模型的一些挑战,并为用户提供了更多的灵活性和效率。


  • 系统设计概念系列文章

计算机的层次化架构

每个开发者都应该知道的7个原则

6个系统设计的基本概念

数据库:系统设计的核心

  • 图解系列

系统设计中的缓存技术:完整指南

关系数据库的全景图 

Redis 全景解析

当然架构设计、全景图解系列还有很多,快来关注一起学习吧~

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/33971.html

Like (0)
小技术君的头像小技术君
Previous 2024年4月4日
Next 2024年4月4日

相关推荐

  • 分布式系统:ACID与CAP

    ACID: 在计算机科学中,ACID是数据库事务的一组特性,旨在保证数据的有效性,即使在出现错误、断电和其他意外情况下也能保持数据的一致性。在数据库的上下文中,满足ACID属性的一…

    2024年4月10日
    0
  • 如何更好的处理技术债?

    当处理技术债务时,它可以给开发团队带来很多挫败感和疲劳。软件工程师可能意识到技术债务的副作用。但他们经常需要向产品团队解释为什么快速而简单的编码开发解决方案是有风险的。 在关于开发…

    2024年4月8日
    0
  • 工信部禁止跑pcdn,工信部严禁

    在中国互联网行业,近日掀起了一场轩然大波,因为工信部宣布了一项重大决定:禁止跑pcdn。这一决定牵动着众多网站和服务提供商的神经,引发了广泛的关注和讨论。 在这一政策的影响下,许多…

    2024年5月11日
    0
  • Liunx-搭建DNS服务器(详细教程)

    在Vmware安装rhel10镜像后,要求输入域名能解析出IP地址,输入IP地址后能解析出域名。 步骤: 一、安装DNS服务 1.将“已连接”前方框打钩 2.依次输入命令   mk…

    2024年5月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注