当前位置: 首页 > news >正文

kubernetes istio

目录

一、部署

二、部署示例应用

三、部署遥测组件

四、流量管理

五、熔断


官网:https://istio.io/latest/zh/about/service-mesh/

一、部署

提前准备好文件

tar zxf 15t10-1.19.3-linux-amd64.tar.gz
cd 15t10-1.19.3/
export PATH=$PWD/bin:$PATHistioctl install --set profile=demo -y
kubectl get pod -A

给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理

二、部署示例应用

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

三、部署遥测组件

kubectl apply -f samples/addons

 

 待插件部署完毕后,修改kiali服务的访问方式为Loadbalancer

访问kiali:http://192.168.67.125:20001/

四、流量管理

将所有流量路由到每个微服务的 v1 版本

kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml
kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml

 来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2

kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

创建故障注入规则以延迟来自测试用户 jason 的流量

kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
用户 jason 登陆到 /productpage 页面,出现了一个问题:Reviews 部分显示了错误消息

设置流量转移,将所有流量转移到 reviews:v3

vim  samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
kubectl apply -f   samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

 

修改延迟规则为任何低于 2.5 秒的数值,例如 2 秒

vim  samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
kubectl apply -f   samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml

把 50% 的流量从 reviews:v1 转移到 reviews:v3    一半v1 一半v3

kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml

当reviews:v3 微服务已经稳定,可以通过应用 Virtual Service 规则将 100% 的流量路由 reviews:v3:

kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-v3.yaml

清理:

samples/bookinfo/platform/kube/cleanup.sh

五、熔断

部署 httpbin 服务
kubectl apply -f samples/httpbin/httpbin.yaml
配置熔断规则
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: httpbin
spec:host: httpbintrafficPolicy:connectionPool:tcp:maxConnections: 1http:http1MaxPendingRequests: 1maxRequestsPerConnection: 1outlierDetection:consecutive5xxErrors: 1interval: 1sbaseEjectionTime: 3mmaxEjectionPercent: 100
EOF
增加一个客户端
kubectl apply -f samples/httpbin/sample-client/fortio-deploy.yaml

登入客户端 Pod 并使用 Fortio 工具调用 httpbin 服务

export fortio-deploy-6cf68cc4c-qfcb=$(kubectl get pods -l app=fortio -o 'jsonpath={.items[0].metadata.name}')kubectl exec "fortio-deploy-6cf68cc4c-qfcb" -c fortio -- /usr/bin/fortio curl -quiet http://httpbin:8000/get

触发熔断器

发送并发数为 2 的连接(-c 2),请求 20 次(-n 20)

kubectl exec "fortio-deplov-6cf68cc4c-abfcb" -c fortio -- /usr/bin/fortio load -c 2 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/get
istio-proxy  确实允许存在一些误差

 

将并发连接数提高到 3 个

kubectl exec "fortio-deploy-6cf68cc4c-qbfcb" -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get

将并发连接数提高到 5 个   均被熔断器拦截

kubectl exec "fortio-deploy-6cf68cc4c-qbfcb" -c fortio -- /usr/bin/fortio load -c 5 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get

 清理

kubectl delete destinationrule httpbinkubectl delete -f samples/httpbin/sample-client/fortio-deploy.yaml
kubectl delete -f samples/httpbin/httpbin.yaml

回收istio

istioctl uninstall -y --purge
kubectl label namespace default istio-injection-

http://www.lryc.cn/news/226547.html

相关文章:

  • 25期代码随想录算法训练营第十四天 | 二叉树 | 递归遍历、迭代遍历
  • 常用布局以及其优缺点
  • 海康工业相机如何提高相机帧率
  • Linux之IPC通信共享内存(一次拷贝)与消息队列、管道、信号量、socket(两次拷贝)总结(六十二)
  • 【多线程 - 01、概述】
  • SQL SELECT INTO 语句
  • 【刷题】(AtCoder Beginner Contest 328) C、D 补题
  • NI USRP软件无线设备的特点
  • 大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
  • 最新获取支付宝cardIndex参数图文教程
  • Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
  • 自然语言处理(一):RNN
  • 超全总结!大模型算法面试指南(含答案)
  • 前端使用C-lodop 实现循环套打小案例
  • 基于SpringBoot+Vue+mysql卓越导师双选系统设计与实现
  • Windows 11系统cmd终端美化、Vscode终端美化
  • [游戏中的图形学实时渲染技术] Part1 实时阴影技术
  • NtripShare Mos地铁自动化监测终端盒子硬件设计
  • 第 117 场 LeetCode 双周赛题解
  • OpenCV C++ 图像处理实战 ——《多二维码识别》
  • 经典算法(查找与排序)
  • 微软和Red Hat合体:帮助企业更方便部署容器
  • ZYNQ_project:IP_ram_pll_test
  • Leetcode刷题详解——优美的排列
  • [PHP]Kodexplorer可道云 v4.47
  • C/C++数字判断 2021年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 云栖大会丨桑文锋:打造云原生数字化客户经营引擎
  • 如何用java写一个网站:从零搭建个性化网站
  • Easyui DataGrid combobox联动下拉框内容
  • 力扣学习笔记——11. 盛最多水的容器