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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
简介: 洛神云网络集中式网关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

相关文章
|
4月前
|
缓存 数据安全/隐私保护 Kotlin
Kotlin 中的网络请求代理设置最佳实践
Kotlin 中的网络请求代理设置最佳实践
|
5天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
23 4
|
15天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
38 2
|
1月前
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,网关的发展趋势和最佳实践
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
148 10
|
2月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
65 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
1月前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
59 1
|
1月前
|
安全 物联网 物联网安全
探索未来网络:物联网安全的最佳实践
随着物联网设备的普及,我们的世界变得越来越互联。然而,这也带来了新的安全挑战。本文将探讨在设计、实施和维护物联网系统时,如何遵循一些最佳实践来确保其安全性。通过深入分析各种案例和策略,我们将揭示如何保护物联网设备免受潜在威胁,同时保持其高效运行。
48 5
|
2月前
|
机器学习/深度学习 安全 物联网安全
探索未来网络:物联网安全的最佳实践与创新策略
本文旨在深入探讨物联网(IoT)的安全性问题,分析其面临的主要威胁与挑战,并提出一系列创新性的解决策略。通过技术解析、案例研究与前瞻展望,本文不仅揭示了物联网安全的复杂性,还展示了如何通过综合手段提升设备、数据及网络的安全性。我们强调了跨学科合作的重要性,以及在快速发展的技术环境中保持敏捷与适应性的必要性,为业界和研究者提供了宝贵的参考与启示。
|
2月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
390 17
|
1月前
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
50 0