一、Istio策略适配器配置

Istio Adapter 机制的另外一个重要应用是策略执行。
策略执行Adapter 负责处理 Mixer 转发的 Check 请求,并将该请求分发给对应的策略执行后端,根据后端的判断逻辑返回拒绝或通过,来控制网格内服务之间的访问。

  1. List适配器

最简单的判断逻辑的 Adapter,它配置了一个黑名单或者白名单,匹配白名单则放行; 匹配黑名单则拒绝。

1.Handler的配置 对Handler的配置如下。
◎ providerUrl:名单的地址,当使用本地名单时可以不进行配置。
◎ refreshInterval:获取名单的刷新间隔。
◎ ttl:名单保存时长。
◎ cachingInterval:缓存的间隔。
◎ cachingUseCount:缓存的记录数。
◎ overrides:重要字段,该列表中的名单覆盖从providerUrl获取的名单。
◎ entryType:名单条目的类型,可以是STRINGS、CASE_INSENSITIVE_STRINGS、
IP_ADDRESSES 和 REGEX,分别表示字符串、大小写不敏感的字符串、IP 地址(段)和表达式。 ◎ blacklist:是否是黑名单,影响匹配后的判断逻辑。 如下所示配置了一个白名单的Handler,只有满足IP段条件的检查通过:

  1. Instance的配置

策略执行的模板一般比遥测数据的模板简单,就是配置待检 查的字段,在如下Instance中定义了从请求中提取IP作为检查输入。

  1. 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适配器配置相关推荐

  1. 十四.SpringCloud源码剖析-Ribbon的初始化配置

    前言 前面我们分析了Eureka的源码,接下来这一章我们来研究一下Ribbon,本篇文章主要是对Ribbon的相关组件做一个认识,以及它的初始化配置做一个分析. Ribbon的自动配置RibbonAu ...

  2. 机器学习(三十四)——策略梯度

    策略梯度 价值函数可以进行近似的参数化表达,策略本身也同样可以函数化.参数化: πθ(s,a)=P[a∣s,θ]\pi_\theta(s,a)=P[a | s, \theta]πθ​(s,a)=P[a ...

  3. 十四、策略模式——你要黄焖鸡、手撕鸡、大盘鸡、叫花鸡都可以,指定一个吧

    文章目录 策略模式 1.实现策略模式 1.1 定义接口和实现类 1.2 客户端切换算法方便 2.多例工厂与静态策略模式 3.反射与动态策略模式 总结 设计模式是面向问题.场景而总结产生的设计思路.是解 ...

  4. linux杂谈(十四):ftp的企业应用级的配置(一)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_player_c/article/details/24869877 1.ftp简单介绍 ( ...

  5. MySQL第十四次作业

    数据库第十四次作业 --电子商城项目 安装并配置MySQL 打开控制台 登录MySQL 数据库.表的基本操作 创建电子商城数据库"mall_姓名全拼" 使用电子商城数据库 创建用户 ...

  6. Istio系列学习(二)----Istio架构

    一.Istio的工作机制 Istio分为控制面和数据面. 控制面包含Pilot,Mixer,Citadel 数据面由伴随每个应用程序部署的代理程序Envoy组成. 1.自动注入 在创建应用程序时自动注 ...

  7. Exchange server 2013(十四)WSUS部署及组策略设置(2)

    我们继续上一节未完的博客,继续我们的WSUS设置.[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51ct ...

  8. Istio学习笔记:Istio及Kiali的安装与配置

    文章目录 前言 一.前置条件 二.安装步骤 1.准备安装 2.安装Istio 3.Istio IngressGateway代理配置 4.Kiali控制面板配置 三.测试验证 1.Bookinfo Ap ...

  9. 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍

    第二十四章. X Window 配置介绍 最近升级日期:2009/08/07 在 Linux 上头的图形介面我们称之为 X Window System,简称为 X 或 X11 罗!为何称之为系统呢?这 ...

最新文章

  1. MATLAB_10-模式识别_
  2. jQuery插件:超酷的多列网格式拖放插件gridster.js
  3. Java将一段逗号分割的字符串转换成一个数组
  4. 算法导论9.2-3习题解答(寻找第i小的数)
  5. 奇奇怪怪的小姿势——关于UI的各种Position
  6. 十字链表 java_十字链表法,十字链表压缩存储稀疏矩阵详解
  7. Spring boot yml文件的书写格式
  8. c++ 23种设计模式_如何用一句话总结23种设计模式
  9. 一般性网络错误 请检查网络文档_“网络工程团队”公众号投稿须知!
  10. Unlock Music音乐解锁源码
  11. IDEA web项目导出 war 包
  12. 100道最新Java面试题,常见面试题及答案汇总
  13. 机器人系统常用仿真软件工具介绍、效果与评价指标(2018年更新)
  14. 手机摄像头的等效焦距
  15. Mbit/s vs MB/s vs MiB/s
  16. [Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
  17. centos 上搭建FC SAN
  18. mysql怎么求时间差
  19. vs-code 中导入新的字体
  20. Invalid bound statement (not found): com.admin.dao.SysLogUserMapper.selectByUserAndLogou

热门文章

  1. protoc-gen-go 安装
  2. 草晶华分享冬季养生小知识
  3. 日计划安排 --- 凡事预则立,不预则废
  4. 什么是哥德尔不完备定理?
  5. iOS App 签名的原理 App 重签名(三)
  6. 我们分析了 10000 条视频,终于知道了今日头条推荐系统的秘密
  7. 离散数学复习--集合的势证明
  8. Python爬虫包 BeautifulSoup 递归抓取
  9. 如何在FPS游戏中快速实现简单的人体定位算法
  10. 华为od统一考试B卷【We Are A Team】C++ 实现