范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

实验环境

  作者:丁源 RadonDB 测试负责人
  负责 RadonDB 云数据库、容器化数据库的质量性能测试,迭代验证。对包括云数据库以及容器化数据库性能和高可用方案有深入研究。
  继《混沌工程工具 ChaosBlade Opeator 系列》的 入门篇 和 Node 篇 之后。本期将针对 Pod 类资源的应用场景进行测试,测试场景包括:
  资源场景,比如删除 Pod
  网络资源场景,比如网络延迟
  文件系统异常场景
  不可用异常场景
  | 实验环境测试对象
  基于 KubeSphere平台的 RadonDB MySQL 容器化数据库进行测试。
  RadonDB MySQL 部署说明请参见 《在 KubeSphere 中部署 RadonDB MySQL 集群》。
  环境参数集群名称主机类型CPUMemoryTotal DiskNode CountsReplicate countsShard countsKubeSphere高可用类型8C16G500GB--RadonDB MySQL-4C16GPOD: 50G
  DataDir: 10 G
  测试环境部署完成后,即可从以下五大类场景做相应验证。
  1. Pod 删除资源场景1.1 测试目标
  删除 ChaosBlade 命名空间下标签是 chaosblade-tool-nhzds的 Pod。
  1.2 开始测试
  查看 Pod 状态。$ kubectl get pod chaosblade-tool-nhzds -n chaosblade -w
  查看 delete_pod_by_labels.yaml 中参数信息。apiVersion: chaosblade.io/v1alpha1
  kind: ChaosBlade
  metadata:
  name: delete-two-pod-by-labelsspec:
  experiments:
  - scope: pod
  target: pod
  action: delete
  desc: "delete pod by labels"
  matchers:
  - name: labels
  value:
  - "demo-radondb-mysql-1"
  - name: namespace
  value:
  - "chaosblade"
  - name: evict-count
  value:
  - "2"
  新建终端删除 Pod。$ kubectl apply -f delete_pod_by_labels.yaml
  1.3 测试验证
  查看测试状态。$ kubectl get blade delete-pod-by-labels -o json
  查看测试结果。
  可以看到 Pod 被删除并重启,结果符合预期。
  KubeSphere 平台
  2. Pod 网络延迟场景2.1 测试目标
  Pod 网络资源场景,比如网络延迟。
  对 ChaosBlade 命名空间中,对 demo-radondb-mysql-0Pod 的本地 3306 端口添加 3000 毫秒访问延迟,延迟时间上下浮动 1000 毫秒。
  2.2 开始测试
  配置 delay_pod_network_by_names.yaml中参数信息。apiVersion: chaosblade.io/v1alpha1
  kind: ChaosBlade
  metadata:
  name: delay-pod-network-by-names
  spec:
  experiments:
  - scope: pod
  target: network
  action: delay
  desc: "delay pod network by names" #实验模型名称
  matchers:
  - name: names
  value:
  - "radondb-g4r992-radondb-postgresql-0" #测试对象pod名称
  - name: namespace
  value:
  - "chaosblade" #namespace名称
  - name: local-port
  value: ["5432"] #pod本地端口6379
  - name: interface
  value: ["eth0"] #接口eth0
  - name: time
  value: ["3000"] #添加3000毫秒访问
  - name: offset
  value: ["1000"] #延迟时间上下浮动1000毫秒
  配置后
  保存为文件,并部署应用。$ kubectl apply -f delay_pod_network_by_names.yaml
  查看部署状态。$ kubectl get blade delay-pod-network-by-names -o json
  2.3 测试验证
  获取测试 Pod IP。$ kubectl get pod -l app=redis,role=master -o jsonpath={.items..status.podIP}
  $ kubectl get pod kubectl get pod demo-radondb-mysql-0 -o wide
  进入观测 Pod。$ kubectl exec -ti demo-radondb-mysql-1 /bin/bash
  在 Pod 中安装 Telnet。$ apt-get update && apt-get install -y telnet
  获取测试时间,并分析测试结果。$ time echo "" | telnet 10.10.131.182 3306
  可以看到访问实验 Pod 3306 端口的延迟为 3s 左右,结果符合预期。
  3. Pod 网络丢包场景3.1 测试目标
  在 ChaosBlade 命名空间中,对 demo-radondb-mysql-0Pod 注入丢包率 100% 的故障,只针对 IP 为 192.168.0.18 的 pod 生效,也就是除 192.168.0.18 以外的 Pod 都能正常访问demo-radondb-mysql-0。
  针对指定 IP
  3.2 开始测试
  执行命令部署应用。$ kubectl apply -f loss_pod_network_by_names.yaml
  查看部署状态。$ kubectl get blade loss-pod-network-by-names -o json
  3.3 测试验证
  获取测试 Pod IP。$ kubectl get pod -l app=redis,role=master -o
  jsonpath={.items..status.podIP}10.42.69.44
  进入观测 Pod,IP 为 10.42.69.42,设置丢包率 100%。$ kubectl exec -it redis-slave-6dd975d4c8-lm8jz bash
  Ping 测试 Pod IP。$ ping 10.42.69.44
  PING 10.42.69.44 (10.42.69.44) 56(84) bytes of data.
  回显信息反馈 Ping 无响应。
  进入观测 Pod,该 Pod 未被指定丢包。$ kubectl exec -it redis-slave-6dd975d4c8-2zrkb bash
  再次 Ping 测试 Pod IP。$ ping 10.42.69.44
  PING 10.42.69.44 (10.42.69.44) 56(84) bytes of data.64
  bytes from 10.42.69.44: icmp_seq=1 ttl=63 time=0.128 ms64
  bytes from 10.42.69.44: icmp_seq=2 ttl=63 time=0.128 ms64
  bytes from 10.42.69.44: icmp_seq=3 ttl=63 time=0.092 ms...
  回显信息反馈 Ping 响应正常。测试结果符合预期。
  4. Pod 文件系统 I/O 故障场景4.1 测试准备
  已部署 chaosblade-admission-webhook
  已注入故障的 volume ,即设置 mountPropagation为HostToContainer。
  已在 Pod 中添加了如下 annotations:
  chaosblade/inject-volume: "data"为需要注入故障的 volume name
chaosblade/inject-volume-subpath: "conf" //volume
  为挂载的子目录   4.2 测试目标   在 Kubernetes 的 Pod 中注入文件系统 I/O 故障。   注意:此场景需要激活 --webhook-enable参数。可在 ChaosBlad Operator 参数中添加--webhook-enable,也可在部署数据库时指定--set webhook.enable=true。   激活指定参数   ChaosBlade webhook 会根据 Pod 的 annotation,注入 fuse 的 sidecar 容器:   chaosblade/inject-volume指明需要注入故障的 volume name,比如例子中的data   chaosblade/inject-volume-subpath指明 volume 挂载路径的子目录   上例中 volume 的挂载路径是 /data,子目录是 conf,则在 pod 内,注入I/O异常的目录是/data/conf。   指定需要注入故障的 volume 需要指定 mountPropagation:HostToContainer   4.3 开始测试   部署测试 Pod。$ kubectl apply -f io-test-pod.yaml   查看 sidecar 是否注入成功。$ kubectl get pod test-7c9fc6fd88-7lx6b -n chaosblade   NAME READY STATUS RESTARTS AGE   test-7c9fc6fd88-7lx6b 2/2 Running 0 4m8s   查看 pod_io.yaml 中参数信息。apiVersion: chaosblade.io/v1alpha1   kind: ChaosBlade   metadata:   name: inject-pod-by-labels   spec:   experiments:   - scope: pod   target: pod   action: IO   desc: "Pod IO Exception by labels"   matchers:   - name: labels   value:   - "app=test"   - name: namespace   value:   - "chaosblade"   - name: method   value:   - "read"   - name: delay   value:   - "1000"   - name: path   value:   - ""   - name: percent   value:   - "60"   - name: errno   value:   - "28"   执行命令部署应用。$ kubectl apply -f pod_io.yaml   4.4 测试验证   进入测试 Pod。$ kubectl exec -it test-7c9fc6fd88-7lx6b bash   在 Pod 内读取指定目录中的文件。$ time cat /data/conf/test.yaml   cat: read error: No space left on device   real 0m3.007s   user 0m0.002s   sys 0m0.002s   # 因为有重试,显示有 3s 的延迟   # 因为设置了 60% 的异常,所有还是有成功的情况   $ time cat /data/conf/test.yaml   123
  real 0m0.004s   user 0m0.002s   sys 0m0.000s   结果分析文件读取异常,结果符合预期。在场景中对 Read 操作注入两种异常,异常率为 60%。   对 Read 操作增加 1s 的延迟   对 Read 操作返回错误 28   5. Pod 域名访问异常场景5.1 测试目标   Pod 内访问指定域名异常。   5.2 开始测试   获取 Pod 名称,执行命令部署应用。$ kubectl apply -f dns_pod_network_by_names.yaml   查看测试状态。$ kubectl get blade dns-pod-network-by-names -o json   5.3 测试验证   进入测试 Pod。$ kubectl exec -ti demo-radondb-mysql-0 bin/bash   Ping 一个域名 www.baidu.com$ ping www.baidu.com   查看并分析测试结果。   回显信息反馈 ping 无响应。可以看到访问指定域名 www.baidu.com 异常,结果符合预期。   | 结语   通过使用 ChaosBlade Operator 对 Kubernetes Pod 资源进行混沌工程测试,可得出如下结论:   对于 Pod 资源,ChaosBlade 的操作简单易懂且功能强大,通过模拟不同的故障,可以检验系统监控报警的时效性,也可以检验系统在遇到故障时的情况,对系统进行调整,从而完善系统架构,增加可用性。   本篇只是对于每种场景进行了简单的测试,而每个场景不止有一种测试方式,用户可以通过调整参数进行不同的测试。   抽奖活动   参与抽奖活动,价值 119 元的《混沌工程:复杂系统韧性实现之道》等你拿。   奖品介绍   混沌工程开创者撰写,通过谷歌、微软等行业专家的真实故事,系统阐释混沌工程的核心实践,提供实践建议。   抽奖说明   奖品:技术图书《混沌工程》 1 份   活动时间:即日起至 2021 年 8 月 20 日 16:00   活动自动开奖后,请于 48 小时内联系社区微信 radondb,留下领奖信息。   活动规则   参与活动需关注社区公众号   关注后扫描活动小程序码参与抽奖   开奖后 48 小时内领取,超时视为放弃   邀请好友助力增加中奖概率   本次抽奖活动最终解释权归 RadonDB开源社区所有。   关于 RadonDB   RadonDB开源社区是一个面向云原生、容器化的数据库开源社区。为数据库技术爱好者提供围绕主流开源数据库(MySQL、PostgreSQL、Redis、MongoDB、ClickHouse 等)的技术分享平台,并提供企业级 RadonDB 开源产品及服务。   目前 RadonDB 开源数据库系列产品已被 光大银行、浦发硅谷银行、哈密银行、泰康保险、太平保险、安盛保险、阳光保险、百年人寿、安吉物流、安畅物流、蓝月亮、天财商龙、罗克佳华、升哲科技、无锡汇跑体育、北京电信、江苏交通控股、四川航空、昆明航空、国控生物等上千家企业及社区用户采用。   RadonDB 可基于云平台与 Kubernetes 容器平台交付,不仅提供覆盖多场景的数据库产品解决方案,而且提供专业的集群管理和自动化运维能力,主要功能特性包括:高可用主从切换、数据强一致性、读写分离、一键安装部署、多维指标监控&告警、弹性扩容&缩容、横向自由扩展、自动备份&恢复、同城多活、异地灾备等。RadonDB 仅需企业及社区用户专注于业务层逻辑开发,无需关注集群高可用选型、管理和运维等复杂问题,帮助企业及社区用户大幅度提升业务开发与价值创新的效率!   GitHub:   https://github.com/radondb   微信群:请搜索添加群助手微信号 radondb

感动!湖北老板为老人免费维修手机,隔天大爷骑车十多公里送蔬菜导语老板为老人免费维修手机,隔天大爷骑车十多公里来这里送蔬菜,让我们一起来看看这究竟是什么情况吧?近日,在湖北通山,一名老人带着手机来到手机店维修,老板检查了一下老人的手机以后发现江西一女生在外买炒粉,钱都付了老板却跑了?扭头一看瞬间明白了导语女大学生在外面买炒粉,付了钱以后老板却跑了,让我们一起来看看这究竟是怎么回事吧?近日,在江西南昌某医学院附近,一名女大学生外出来买炒粉吃,没想到刚刚付完钱以后,老板骑着自己的三安徽6个女孩自助餐吃掉154只螃蟹,蟹壳铺满一桌给老板上一课导语女生吃自助餐,专挑螃蟹吃6个人,吃了154个老板看到螃蟹可以后都傻眼了,让我们一起来看看这究竟是什么情况吧。近日,在安徽安庆,一名女生下班以后,叫上了自己的朋友一起来到自助餐厅湖北恩施幼儿园开学全班都在哭,一萌娃淡定抠脚看别的小朋友哭近日,在湖北恩施,有网友发布了一段幼儿开学全班同学都在哭,只有一个萌娃非常冷静的坐在凳子上淡定抠脚看别的小朋友哭的视频,引发了诸多网友们的关注。画面显示,当天在恩施某幼儿园内,因为返璞归真英语的sh德语的sch法语的ch阿拉伯语首先,要明确的是英语法语德语意大利语西班牙语荷兰语等众多的语言和汉语拼音使用的都是拉丁字母。而拉丁字母是一种希腊字母的变体。俄语使用的西里尔字母则是在希腊字母的基础上经过简化设计出浙江省台州市天台县百名妇联主席履新领实事亮身份见真章上任奔跑天台县百名妇联主席履新领实事我以妇联执委的名义宣誓坚决拥护中国共产党的领导,执行执委的决议,履行执委的职责,竭诚服务妇女,努力做到天台美丽在我,天台文明在我,天台进步在我,河北省衡水市景县妇联把学习贯彻十九届五中全会精神融入社区妇女群众生活咱们姐妹们节约用水,杜绝浪费,养成绿色低碳生活方式,这就是践行党的十九届五中全会精神中的绿色发展理念。近日,河北省衡水市景县妇联党组书记妇联主席夏双燕同志来到东苑社区,结合家庭幸福abigfish不是一条大鱼!弄错就尴尬了英语口语吉米老师说big是大,fish是鱼,bigfish就一定是大鱼吗?吉米老师说不一定哦英语口语实用口语本文属于英语口语(kouyu8)原创转载请到后台授权,侵权必究吉米老师觉月亮又大又圆,老外才不说bigandround!这样说才地道英语口语吉米老师说人逢喜事精神爽,月到中秋分外明。中秋一到,天上的月亮也会又大又圆,又大又圆用英语怎么说呢?快和吉米老师一起来学习吧!英语口语实用口语本文属于英语口语(kouyu8在邮政银行存款变成了保单,我的钱还安全吗?银行存款理财保险这两种类型的资金管理方式,只要选择的不是投资连结型保险,安全性上是没有问题的,但是不是初衷就不好说。银行存款的用意是把闲置的现金做一个储蓄,例如存5年定期享受3。3记住Igetyou不是ampampquot我得到你了ampampquot!真正的意思你想不到英语口语吉米老师说Igetyou在口语里非常常见,但是绝对不是字面意思哦,一起和吉米老师学习地道口语吧!英语口语实用口语本文属于英语口语(kouyu8)原创转载请到后台授权,侵权必
丈夫去世后她未改嫁,悉心照顾公爹,老人去世后她是否继承遗产?延安市某村村民陈某峰于2021年3月亡故,生前与妻子李某(2012年病故)生了三个儿子,三儿子8年前因车祸去世。陈某峰多年来身患疾病,日常生活主要由大儿子以及三儿媳妇王某照料。陈某打卡32天,例假到访,八小时减肥法亲测,距离目标只差19公斤了减肥我就玩,以后土豆减肥法(之前的文章有讲过)和八小时减肥法每3周循环用,我要创纪录,这个记录就是每天吃饱饱,不运动,我也能瘦回标准体重。老规矩先安利方法8小时减肥法就是在8小时内乡下2层小屋,打造水泥花房,种花种草日子休闲惬意,谁不向往?比起城市的喧嚣,我更喜欢乡下的宁静。很羡慕这位小姐姐的生活,搬迁至乡间2层小屋,一层做工作,进门空间打造一个水泥花房,二层做自己的私人住宅使用,种花种草日子休闲惬意,这样的生活谁不打卡31天,八小时减肥法亲测,距离目标只差19公斤了,我就不急减肥我就玩,以后土豆减肥法(之前的文章有讲过)和八小时减肥法每3周循环用,我要创纪录,这个记录就是每天吃饱饱,不运动,我也能瘦回标准体重。老规矩先安利方法8小时减肥法就是在8小时内打卡33天,讨厌的例假来访,心态崩了,八小时减肥法亲测减肥我就玩,以后土豆减肥法(之前的文章有讲过)和八小时减肥法每3周循环用,我要创纪录,这个记录就是每天吃饱饱,不运动,我也能瘦回标准体重。老规矩先安利方法8小时减肥法就是在8小时内我的母亲叫木子梅,我要结婚了,母亲让我去找父亲并告诉他2019年的春天,我认识了乐安,我们从相识到相知相爱只有4个月,我知道他就是我后半生的另一半。结婚前,母亲让我去找父亲并告诉他我要结婚的这个消息。我硬着头皮去了,他已经有了自己的生玄关打造柜子做隔断,还隔出一个榻榻米休闲区,亲戚朋友全夸实用玄关侧边的空间你们会如何利用呢?大多数人家里都是闲置的状态,这位业主却比较聪明,玄关侧边打造一个到顶的柜子做隔断,同时后方延伸出一个榻榻米休闲区使用,多3空间休憩,还能完美划分空间洗漱台不在卫生间,反而被挪到了厨房,2个空间同时都照顾到了为了做好干湿分离,小户型也要打造独立的洗漱台布局,不和卫生间结合,这位合肥业主直接选择把洗漱台移到这里和我们大多见过的设计不同,这次是在厨房门洞侧边不占1空间处,打造一个洗漱台,是不顾劝阻,将厨房设计成玻璃顶,天天露天做饭,这也太有意思了有一说一,要是有房,谁不想方方面面都做最好的设计。同事家就是这样,买房时不顾家人劝阻选择了郊区的自建房,装修时为了想设计一个玻璃顶的厨房还和老公大吵了一架,如今完工入住后,老公天天租房入住后发现厨房下水不能用,是租客负责还是房客?看这里小曹前段时间在公司附近租了一个房子,租金已付。前一个月未入住,这两天入住后,好心的邻居告知她这房子厨房下水不能使用已经半年多了。之前房东并未告知小曹这个状况,小曹该怎么办?肥猫来回女子频频做噩梦感到害怕,只因四年前被骗子公司强制拍下不雅照2017年3月5日,16岁的小丽在招聘网站上看到了一则青岛某公司招聘模特兼职的信息,经电话微信沟通过后,小丽和对方约在2017年3月11日见面试镜。去试镜的时候,小丽还带了同学陪同