Istio:Mixer功能架构与实践

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: Istio:Mixer功能架构与实践

目录

大纲

Istio架构回顾&Mixer介绍

Istio 官方四大功能中两个基于Mixer实现(Control、Observe)

Mixer在Istio中角色

Mixer的功能和设计

没有Mixer的时候

Mixer的Adapter机制

Mixer完整视图

Mixer的处理流程

Mixer的配置模型

Mixer 配置模型概述

Mixer 配置模型1: Handler

Mixer 配置模型2:实例( Instance)

Mixer 配置模型3: 规则( Rule)

Request的属性处理流程

Mixer Adapters

Mixer 的 Check Adapter

Mixer的高可用设计

Mixer 的 Batch Report

Mixer的典型应用

Mixer典型应用1: 华为云应用服务网格

Mixer典型应用2: Google Apigee

Mixer实践1

实践1 从0开发并运行一个Mixer Adapter: 原理

实践1 从0开发并运行一个Mixer Adapter:两个角色

实践1 从0开发并运行一个Mixer Adapter: 步骤

实践1 从0开发并运行一个Mixer Adapter:效果

Mixer实践2

实践2 通过Mixer收集自定义的遥测数据:目标

实践2 通过Mixer收集自定义的遥测数据:步骤

实践2 通过Mixer收集自定义的遥测数据:效果


大纲

Istio架构回顾&Mixer介绍

Mixer的功能和设计

Mixer的配置模型

Mixer的典型应用

Mixer实践1和2


Istio架构回顾&Mixer介绍

  • Pilot -- 配置管理,在Istio中相当于一个大管家,还有服务发现--管理Proxy和Service运行时的配置
  • Mixer-- 守护神,负责管理相对静态的配置
  • Adapter是一个模板,Handler是一个实现

Istio架构回顾


Istio 官方四大功能中两个基于Mixer实现(Control、Observe)


Mixer在Istio中角色

  • 功能上:负责策略控制和遥测收集
  • 架构上:提供插件模型,可以扩展和定制


Mixer的功能和设计

没有Mixer的时候


Mixer的Adapter机制

  • Mixer 处理不同基础设施后端的灵活性是通过使用通用插件模型实现的,这种插件称为Adapter。
  • Mixer通过它们与不同的基础设施后端连接,这些后端可提供核心功能,提供日志、监控、配额、 ACL 检查等


Mixer完整视图

解耦、中介、运维时配置


Mixer的处理流程

Mixer的处理流程

  1. Envoy生成属性上报Mixer
  2. Mixer 调用对应后端处理属性

参考:https://istio.io/docs/reference/config/policy-and-telemetry/attribute-vocabulary/


Mixer的配置模型

Mixer 配置模型概述

  • Handler: 创建 Handler,即配置Mixer适配器
  • Instance: 从 Istio 属性中生成 instance。
  • Rule: 配置一组规则,这些规则描述了何时调用特定适配器及哪些实例。


Mixer 配置模型1: Handler

Mixer 配置模型1: Handler


Mixer 配置模型2:实例( Instance)

Mixer 配置模型2:实例( Instance)


Mixer 配置模型3: 规则( Rule)

Mixer 配置模型3: 规则( Rule)


Request的属性处理流程

接收属性

补充属性,

处理属性

Request的属性处理流程


Mixer Adapters

Mixer Adapters


Mixer 的 Check Adapter

Mixer 的 Check Adapter


Mixer的高可用设计

  • 无状态
  • 高可以用
  • 缓存和缓冲

Mixer的高可用设计


Mixer 的 Batch Report

Mixer 的 Batch Report


Mixer的典型应用

Mixer典型应用1: 华为云应用服务网格

https://console.huaweicloud.com/Istio/

Mixer典型应用1: 华为云应用服务网格


Mixer典型应用2: Google Apigee

Mixer典型应用2: Google Apigee


Mixer实践1

实践1 从0开发并运行一个Mixer Adapter: 原理

实践1 从0开发并运行一个Mixer Adapter: 原理


实践1 从0开发并运行一个Mixer Adapter:两个角色

实践1 从0开发并运行一个Mixer Adapter:两个角色


实践1 从0开发并运行一个Mixer Adapter: 步骤

1.创建独立的Adapter目录,并开发Adapter的代码开发Adapter代码

cd $MIXER_REPO/adapter && mkdir mysampleadapter && cd mysampleadapter

#创建mysampleadapter .go文件定义处理逻辑

2. //配置config.proto,描述配置的定义。 #创建config.proto文件,描述adapter的配置参数

mkdir config

3. 根据proto生成go的配置,并在adapter代码中使用

go generate ./...

go build ./...

4.在Mixer中注册这个新的Adapter。 # 在inventory.yaml 中注册adapter,

mysampleadapter: "istio.io/istio/mixer/adapter/mysampleadapter"

go generate $MIXER_REPO/adapter/doc.go

5. 配置并使用新创建的adapter。 #在testdata目录下创建使用该adapter的配置,即handler, instance, rulle。

mkdir $MIXER_REPO/adapter/mysampleadapter/testdata

#确认两个文件attributes.yaml和mysampleadapter.yaml

6. 启动mixer 服务端

pushd $ISTIO/istio && make mixs

$GOPATH/out/linux_amd64/release/mixs server --configStoreURL=fs://$(pwd)/mixer/adapter/mysampleadapter/testdata

7.启动一个客户端,模拟上报数据

pushd $ISTIO/istio && make mixc

$GOPATH/out/linux_amd64/release/mixc report -s destination.service="svc.cluster.local" -t request.time="2019-01-10T20:00:00Z"

8.查看结果输出

tail $ISTIO/istio/out.txt


实践1 从0开发并运行一个Mixer Adapter:效果

Mixer服务端

模拟客户端


Mixer实践2

实践2 通过Mixer收集自定义的遥测数据:目标

  • 编写自定义的Metric模板
  • 在Istio中创建自定义Metric、 Prometheus Handler和Rule
  • 认识Prometheus Adapter
  • 实践Prometheus 的主要能力


实践2 通过Mixer收集自定义的遥测数据:步骤

--1. 创建配置,包括prometheus的handler、 metric和rule

kubectl apply -f double-request.yaml

--2. 查看创建的对象

kubectl get metrics.config.istio.io -nistio-system

kubectl get rules.config.istio.io -nistio-system

kubectl get prometheus.config.istio.io -nistio-system

-- 3. 发起对服务的访问,生成访问metric数据

--4.通过Prometheus查看metric数据
--4.1 查看doublereques的metric

http://49.4.84.29:9090/graph?g0.range_input=1h&g0.expr=istio_double_request_count&g0.t

ab=1

--4.2 通过prometheus检索特定目标的metric

istio_double_request_count{destination="details-v1"}


实践2 通过Mixer收集自定义的遥测数据:效果

Instance定义

Prometheus检索



相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
目录
打赏
0
0
0
0
3331
分享
相关文章
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
基于虚拟服务配置的渐进式迁移实践:Istio集群至ASM集群的平滑切换
本文介绍了从Istio+k8s环境迁移到阿里云ASM+ACK环境的渐进式方法,通过配置虚拟服务和入口服务实现新老集群间的服务调用与流量转发,确保业务连续性与平滑迁移
543 132
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
24天前
|
转转平台IM系统架构设计与实践(二):详细设计与实现
以转转IM架构为起点,介绍IM相关组件以及组件间的关系;以IM登陆和发消息的数据流转为跑道,介绍IM静态数据结构、登陆和发消息时的动态数据变化;以IM常见问题为风景,介绍保证IM实时性、可靠性、一致性的一般方案;以高可用、高并发为终点,介绍保证IM系统稳定及性能的小技巧。
30 6
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
微信红包本质是小额资金在用户帐户流转,有发、抢、拆三大步骤。在这个过程中对事务有高要求,所以订单最终要基于传统的RDBMS,这方面是它的强项,最终订单的存储使用互联网行业最通用的MySQL数据库。支持事务、成熟稳定,我们的团队在MySQL上有长期技术积累。但是传统数据库的扩展性有局限,需要通过架构解决。
78 18
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
政采云业务网关实践:使用 Higress 统一替代 APISIX/Kong/Istio Ingress
政采云基础架构团队技术专家朱海峰介绍了业务网关项目的背景和解决方案。
121 11
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
125 17

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等