Istio系列学习(十四)----Istio策略适配器配置和Env适配器配置
一、Istio策略适配器配置
Istio Adapter 机制的另外一个重要应用是策略执行。
策略执行Adapter 负责处理 Mixer 转发的 Check 请求,并将该请求分发给对应的策略执行后端,根据后端的判断逻辑返回拒绝或通过,来控制网格内服务之间的访问。
- List适配器
最简单的判断逻辑的 Adapter,它配置了一个黑名单或者白名单,匹配白名单则放行; 匹配黑名单则拒绝。
1.Handler的配置 对Handler的配置如下。
◎ providerUrl:名单的地址,当使用本地名单时可以不进行配置。
◎ refreshInterval:获取名单的刷新间隔。
◎ ttl:名单保存时长。
◎ cachingInterval:缓存的间隔。
◎ cachingUseCount:缓存的记录数。
◎ overrides:重要字段,该列表中的名单覆盖从providerUrl获取的名单。
◎ entryType:名单条目的类型,可以是STRINGS、CASE_INSENSITIVE_STRINGS、
IP_ADDRESSES 和 REGEX,分别表示字符串、大小写不敏感的字符串、IP 地址(段)和表达式。 ◎ blacklist:是否是黑名单,影响匹配后的判断逻辑。 如下所示配置了一个白名单的Handler,只有满足IP段条件的检查通过:
- Instance的配置
策略执行的模板一般比遥测数据的模板简单,就是配置待检 查的字段,在如下Instance中定义了从请求中提取IP作为检查输入。
- Rule的配置
配置如下Rule关联Handler和Instance,只有来源负载上标签是"forecast"的请求执行名单检查:
二、 Denier适配器
Denier适配器也是一个比较简单的Adapter,按照配置总是返回拒绝。
1.Handler的配置
Denier 适配器的 Handler 的主要配置(见图 4-26)就是定义拒绝的状态信息 status,包括状态码
(code)、消息(message)和详情(details),类似在写代码时定义的异常信息。还有两个有意思的字 段:validDuration和validUseCount,分别表示有效间隔和有效次数。当时间不超过validDuration时,检查 次数若不超过validUseCount,则不再做检查。
在满足条件时将会返回“1333”状态码:
2.Instance的配置
Denier的检查对象同List名单中的检查对象定义。
3.Rule的配置
只需配置如下所示的 Rule 让上面的 Handler 生效,来自标签为“forecast”的服务请求就都会被拒绝, 并返回“1333”状态码
4.3.3 Memory Quota适配器
使用场景是设置一个生效时间进行限流,即 设置在一个时间段内的访问配额。
4.3.4 Redis Quota适配器
具备 HA 能力,功能类似Memory Quota
4.4 Kubernetes Env适配器配置
用于提取Kubernetes中服务的元数据并交给后续的Adapter处理。
下面是一个具体场景:
在Envoy上报数据时,在上报的访问源和目标信息中一般只包含IP等基础信 息,不会包含服务的命名空间信息,但后端APM需要基于命名空间对数据进行分组管理。这时基于负载 的标识关联和补齐其他需要的属性就可以通过Kubernetesenv Adapter来实现,补齐的属性就可以在后续的 APM Adapter中使用。
1.Handler的配置
Kubernetes Env最主要的一个参数是通过kubeconfigPath配置Kubeconfig的文件位置,即找到Kube- apiserver,从Kube-apiserver上获取需要的信息。配置如下:
2.Instance的配置
在Kubernetes Instance中定义Kubernetesenv Adapter如何发现和生成需要的与Pod相关的数据,如下所 述。
◎ sourceUid:源Pod的UID。
◎ sourceIp:源Pod的IP。
◎ destinationUid:目标Pod的UID。
◎ destinationIp:目标Pod的IP。
◎ destinationPort:目标容器的端口。
另外,通过定义 attribute_binding 将 Kubernetesenv Adapter 输出的属性绑定到 Mixer的属性上,可以
供其他Adapter使用。
在Kubernetes Output模板中能提取的属性如下。
(1)源 Pod 的信息:sourcePodUid、sourcePodIp、sourcePodName、sourceLabels、
sourceNamespace、sourceServiceAccountName、sourceHostIp、sourceWorkloadUid、 sourceWorkloadName、sourceWorkloadNamespace、sourceOwner。
(2)目标 Pod 的信息:destinationPodUid、destinationPodIp、destinationPodName、
destinationContainerName、destinationLabels、destinationNamespace、destinationService AccountName、 destinationHostIp、destinationOwner、destinationWorkloadUid、destination WorkloadName、 destinationWorkloadNamespace。
istio安装时会定义Kubernetes的如下模板实例,
3.Rule的配置
Istio系列学习(十四)----Istio策略适配器配置和Env适配器配置相关推荐
- 十四.SpringCloud源码剖析-Ribbon的初始化配置
前言 前面我们分析了Eureka的源码,接下来这一章我们来研究一下Ribbon,本篇文章主要是对Ribbon的相关组件做一个认识,以及它的初始化配置做一个分析. Ribbon的自动配置RibbonAu ...
- 机器学习(三十四)——策略梯度
策略梯度 价值函数可以进行近似的参数化表达,策略本身也同样可以函数化.参数化: πθ(s,a)=P[a∣s,θ]\pi_\theta(s,a)=P[a | s, \theta]πθ(s,a)=P[a ...
- 十四、策略模式——你要黄焖鸡、手撕鸡、大盘鸡、叫花鸡都可以,指定一个吧
文章目录 策略模式 1.实现策略模式 1.1 定义接口和实现类 1.2 客户端切换算法方便 2.多例工厂与静态策略模式 3.反射与动态策略模式 总结 设计模式是面向问题.场景而总结产生的设计思路.是解 ...
- linux杂谈(十四):ftp的企业应用级的配置(一)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_player_c/article/details/24869877 1.ftp简单介绍 ( ...
- MySQL第十四次作业
数据库第十四次作业 --电子商城项目 安装并配置MySQL 打开控制台 登录MySQL 数据库.表的基本操作 创建电子商城数据库"mall_姓名全拼" 使用电子商城数据库 创建用户 ...
- Istio系列学习(二)----Istio架构
一.Istio的工作机制 Istio分为控制面和数据面. 控制面包含Pilot,Mixer,Citadel 数据面由伴随每个应用程序部署的代理程序Envoy组成. 1.自动注入 在创建应用程序时自动注 ...
- Exchange server 2013(十四)WSUS部署及组策略设置(2)
我们继续上一节未完的博客,继续我们的WSUS设置.[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51ct ...
- Istio学习笔记:Istio及Kiali的安装与配置
文章目录 前言 一.前置条件 二.安装步骤 1.准备安装 2.安装Istio 3.Istio IngressGateway代理配置 4.Kiali控制面板配置 三.测试验证 1.Bookinfo Ap ...
- 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍
第二十四章. X Window 配置介绍 最近升级日期:2009/08/07 在 Linux 上头的图形介面我们称之为 X Window System,简称为 X 或 X11 罗!为何称之为系统呢?这 ...
最新文章
- MATLAB_10-模式识别_
- jQuery插件:超酷的多列网格式拖放插件gridster.js
- Java将一段逗号分割的字符串转换成一个数组
- 算法导论9.2-3习题解答(寻找第i小的数)
- 奇奇怪怪的小姿势——关于UI的各种Position
- 十字链表 java_十字链表法,十字链表压缩存储稀疏矩阵详解
- Spring boot yml文件的书写格式
- c++ 23种设计模式_如何用一句话总结23种设计模式
- 一般性网络错误 请检查网络文档_“网络工程团队”公众号投稿须知!
- Unlock Music音乐解锁源码
- IDEA web项目导出 war 包
- 100道最新Java面试题,常见面试题及答案汇总
- 机器人系统常用仿真软件工具介绍、效果与评价指标(2018年更新)
- 手机摄像头的等效焦距
- Mbit/s vs MB/s vs MiB/s
- [Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
- centos 上搭建FC SAN
- mysql怎么求时间差
- vs-code 中导入新的字体
- Invalid bound statement (not found): com.admin.dao.SysLogUserMapper.selectByUserAndLogou