洛神云网络集中式网关ACMG最佳实践

本文涉及的产品
公网NAT网关,每月750个小时 15CU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 洛神云网络集中式网关ACMG最佳实践


上次我们介绍了集中式网关的一些内容,主要包括集中式网关是什么?怎么使用?有哪些优势?ACMG是专门为东西向流量打造的集中式七层网关,使用无侵入式引流的方式,在满足用户流量治理需求的同时,相比Sidecar模式在资源利用率、运维复杂度、性能和时延等方面具有优势。

image.png

总的来看,业内也逐渐意识到了这个问题,逐渐演进出了其他方案,比如Ambient、AWS VPC Lattice都推出了与Sidecar不同的方案。



自上次集中式网关方案发布后,收到了一些大家提出的问题,在这里挑选了一些典型问题,统一进行解答,感谢大家的关注。Q:集中式网关和Sidecar、Ambient有什么区别?

A:集中式网关是专门为服务网格场景打造的集中式七层网关,整个集群的东西向流量都可以由集中式网关接管,无需Sidecar;在满足用户流量治理需求的同时,相比Sidecar、Ambient在资源利用率、运维复杂度、性能和时延等方面具有优势。

Q:集中式网关的转发底座是什么?

A:集中式网关是基于Envoy进行开发设计的。

Q:集中式网关适合哪种业务使用?

A

  • 业务规模较大,对Sidecar消耗的资源较为敏感。
  • 运维复杂的ServiceMesh场景,出现问题时排查、解决都较为困难。
  • 尝试了目前市面上的方案都不太满足自己的需求,欢迎来试用集中式网关

Q:集中式网关打算一直坚持开源吗?

A:是的,我们坚持开源,不会改变。



下面介绍一下ACMG的安装以及使用方法,按照下面的教程可以体验ACMG的基本流量接管功能以及一些拓展的高级用法,同样支持开发者们基于ACMG的源代码进行二次开发。

3.1 编译代码


$ make build

3.2 编译镜像


$ make docker
$ docker images

经过编译,得到下图所示的docker镜像:


localhost:5000/app_sidecar_centos_7        latest      localhost:5000/app_sidecar_debian_11       latest      localhost:5000/app_sidecar_ubuntu_xenial   latest      localhost:5000/app_sidecar_ubuntu_jammy    latest      localhost:5000/app                         latest      localhost:5000/install-cni                 latest      localhost:5000/proxyv2                     latest      localhost:5000/operator                    latest      localhost:5000/pilot                       latest      localhost:5000/istioctl                    latest      localhost:5000/acmg                        latest      localhost:5000/ext-authz                   latest

3.3 安装

Istio有多种安装模式,我们选择acmg(集中式网关)的模式进行安装。


$ ./out/linux_amd64/istioctl profile listIstio configuration profiles:acmgdefaultdemoemptyexternalminimalopenshiftpreview

$ ./out/linux_amd64/istioctl install --set profile=acmg

当上面的命令执行完毕,可以检查一下安装情况。

$ kubectl get pods -n istio-system
NAME                               READY   STATUS    RESTARTS   AGEacmg-controller-798cbd6b9d-x4fmd   1/1     Running   0          5m32sacmg-gateway-66f9f86fcd-xx9qg      1/1     Running   0          3m8sistiod-945b9f699-sm4js             1/1     Running   0          5m31s

可以看到acmg-controller,acmg-gateway,istiod三个重要的角色已经就绪,其中acmg-gateway可以接管整个集群的东西向流量。

3.4 使用

以服务default命名空间里的helloworld为例,介绍一下如何使用集中式网关。

apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: helloworld-acmg  namespace: istio-systemspec:  enableAcmg: true  hosts:  - "*"  http:  - match:    - uri:        exact: /hello    route:    - destination:        host: helloworld.default.svc.cluster.local

其中enableAcmg字段表示此虚拟服务将托管到集中式网关中。发起对helloworld服务的访问,可以发现流量是经过集中式网关到达的helloworld服务。

3.5 卸载


$ ./out/linux_amd64/istioctl uninstall --purge

当上面的命令执行完毕,检查一下卸载情况。

$ kubectl get pods -n istio-systemNo resources found.

可以看到,集中式网关的相关资源已经全部清理完毕。



4.1 流量分发

创建DestinationRule,指定不同版本的helloworld服务。

apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:  name: helloworld-acmg  namespace: istio-systemspec:  host: helloworld.default.svc.cluster.local  trafficPolicy:    loadBalancer:      simple: ROUND_ROBIN  subsets:    - name: v1      labels:        version: v1    - name: v2      labels:        version: v2

创建VirtualService,引用不同版本的helloworld服务。

apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: helloworld-acmg  namespace: istio-systemspec:  enableAcmg: true  hosts:  - "*"  http:  - match:    - uri:        exact: /hello    route:    - destination:        host: helloworld.default.svc.cluster.local        subset: v1      weight: 90    - destination:        host: helloworld.default.svc.cluster.local        subset: v2      weight: 10

4.2 故障注入

例如,我们可以为访问 helloworld 服务千分之一的请求配置一个 5 秒的延迟访问:

apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: helloworld-acmg  namespace: istio-systemspec:  enableAcmg: true  hosts:  - "*"  http:  - fault:      delay:        percentage:          value: 0.1        fixedDelay: 5s  - match:    - uri:        exact: /hello    route:    - destination:        host: helloworld.default.svc.cluster.local

4.3 服务熔断

例如下面的设置将helloworld服务v1子集的工作负载并发连接数限制为 100:

apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:  name: helloworld-acmg  namespace: istio-systemspec:  host: helloworld.default.svc.cluster.local  trafficPolicy:    loadBalancer:      simple: ROUND_ROBIN  subsets:    - name: v1      labels:        version: v1      trafficPolicy:        connectionPool:          tcp:            maxConnections: 100    - name: v2      labels:        version: v2



云原生理念让我们受益良多,但是也带来了一些问题,比如原先的单体式应用变成了多个服务单元,这使得服务发现与路由规则变得更为复杂了;而且通常情况下,东西向流量的访问也是默认使用http,当攻击者绕过防火墙进入K8S集群,那么整个集群内的服务都会直接暴露给攻击者。这时候就要考虑每个服务如何安全地与集群内其他服务进行通信。

image.png

相关文章
|
6月前
|
人工智能 Cloud Native 安全
AI 网关代理 LLMs 最佳实践
云原生 AI 网关其实并不是一个新的独立的产品,而是属于云原生 API 网关产品内的一部分功能,基于 AI 的场景,设计了更贴合 AI 业务的 AI API 及各个功能。同时也具备云原生 API 网关本身提供的各个通用能力。
281 15
|
12月前
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,网关的发展趋势和最佳实践
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
774 113
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
1614 121
|
7月前
|
负载均衡 数据中心 芯片
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
194 0
|
9月前
|
负载均衡 芯片 异构计算
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI‘24于4月16-18日在美国圣塔克拉拉市举办,阿里云飞天洛神云网络首次中稿NSDI,两篇论文入选。其中《LuoShen: A Hyper-Converged Programmable Gateway for Multi-Tenant Multi-Service Edge Clouds》提出超融合网关LuoShen,基于Tofino、FPGA和CPU的新型硬件形态,将公有云VPC设施部署到边缘机柜中,实现小型化、低成本和高性能。该方案使成本降低75%,空间占用减少87%,并提供1.2Tbps吞吐量,展示了强大的技术竞争力。
|
9月前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
10月前
|
人工智能 数据可视化 API
FastGPT 基于Higress 聚合 LLM 网关的最佳实践
本文介绍了Fast GPT的产品形态和设计理念,重点讨论了大模型的幻觉问题及其对应用落地的影响。Fast GPT通过结合工作流的强逻辑性和AI的理解能力,提升系统的稳定性和可靠性。文章还详细描述了Fast GPT的工作流节点、知识库管理及AI网关的功能,并展示了几个实际应用场景,如私人助手、图文生成和文档处理等。最后,探讨了如何通过引入云函数和Copilot简化代码编写,实现无代码编排的工作流解决方案,提升用户体验。
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
191 17
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
11月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
186 4
|
11月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
204 2