kubernetes集群编排——istio
部署
[root@k8s2 ~]# tar zxf istio-1.19.3-linux-amd64.tar.gz [root@k8s2 ~]# cd istio-1.19.3/[root@k8s2 istio-1.19.3]# export PATH=$PWD/bin:$PATH demo专为测试准备的功能集合
[root@k8s2 istio-1.19.3]# istioctl install --set profile=demo -y 
[root@k8s2 istio-1.19.3]# kubectl get pod -A 
给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理
[root@k8s2 istio-1.19.3]# kubectl label namespace default istio-injection=enabled 部署示例应用
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml 
[root@k8s2 istio-1.19.3]# kubectl get pod 

创建 Istio 入站网关
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml 
[root@k8s2 istio-1.19.3]# kubectl -n istio-system get svc 
访问应用:http://192.168.92.102/productpage

部署遥测组件
[root@k8s2 istio-1.17.1]# kubectl apply -f samples/addons

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

访问kiali:http://192.168.56.100:20001/

流量管理
将所有流量路由到每个微服务的 v1 版本
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml 

来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml 
创建故障注入规则以延迟来自测试用户 jason 的流量
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml 用户 jason 登陆到 /productpage 页面,出现了一个问题:Reviews 部分显示了错误消息

设置流量转移,将所有流量转移到 reviews:v3
[root@k8s2 istio-1.19.3]# vim samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: reviews
spec:hosts:- reviewshttp:- match:- headers:end-user:exact: jasonroute:- destination:host: reviewssubset: v3- route:- destination:host: reviewssubset: v1

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml 
修改延迟规则为任何低于 2.5 秒的数值,例如 2 秒
[root@k8s2 istio-1.19.3]# vim samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: ratings
spec:hosts:- ratingshttp:- match:- headers:end-user:exact: jasonfault:delay:percentage:value: 100.0fixedDelay: 2sroute:- destination:host: ratingssubset: v1- route:- destination:host: ratingssubset: v1

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml 
把 50% 的流量从 reviews:v1 转移到 reviews:v3
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml 

当reviews:v3 微服务已经稳定,可以通过应用 Virtual Service 规则将 100% 的流量路由 reviews:v3:
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-v3.yaml 
清理
[root@k8s2 istio-1.19.3]# samples/bookinfo/platform/kube/cleanup.sh 
熔断
部署 httpbin 服务
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/httpbin/httpbin.yaml 
配置熔断规则
[root@k8s2 istio-1.19.3]# kubectl apply -f - <<EOF
> apiVersion: networking.istio.io/v1alpha3
> kind: DestinationRule
> metadata:
> name: httpbin
> spec:
> host: httpbin
> trafficPolicy:
> connectionPool:
> tcp:
> maxConnections: 1
> http:
> http1MaxPendingRequests: 1
> maxRequestsPerConnection: 1
> outlierDetection:
> consecutive5xxErrors: 1
> interval: 1s
> baseEjectionTime: 3m
> maxEjectionPercent: 100
> EOF

增加一个客户端
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/httpbin/sample-client/fortio-deploy.yaml 
[root@k8s2 istio-1.19.3]# kubectl get pod[root@k8s2 istio-1.19.3]# kubectl get svc 
登入客户端 Pod 并使用 Fortio 工具调用 httpbin 服务
[root@k8s2 istio-1.19.3]# export FORTIO_POD=$(kubectl get pods -l app=fortio -o 'jsonpath={.items[0].metadata.name}')[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio curl -quiet http://httpbin:8000/get 
触发熔断器
发送并发数为 2 的连接(-c 2),请求 20 次(-n 20)
[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 2 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/get 
istio-proxy 确实允许存在一些误差
将并发连接数提高到 3 个
[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get 
将并发连接数提高到 5 个
[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 5 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get 
均被熔断器拦截
清理
[root@k8s2 istio-1.19.3]# kubectl delete destinationrule httpbin[root@k8s2 istio-1.19.3]# kubectl delete -f samples/httpbin/sample-client/fortio-deploy.yaml[root@k8s2 istio-1.19.3]# kubectl delete -f samples/httpbin/httpbin.yaml 
卸载istio
[root@k8s2 istio-1.19.3]# istioctl uninstall -y --purge 
[root@k8s2 istio-1.19.3]# kubectl label namespace default istio-injection-
相关文章:
kubernetes集群编排——istio
官网:https://istio.io/latest/zh/about/service-mesh/ 部署 [rootk8s2 ~]# tar zxf istio-1.19.3-linux-amd64.tar.gz [rootk8s2 ~]# cd istio-1.19.3/[rootk8s2 istio-1.19.3]# export PATH$PWD/bin:$PATH demo专为测试准备的功能集合 [rootk8s2 istio-1.19.3]# i…...
mfc140u.dll丢失的解决方法,以及mfc140u.dll解决方法的优缺点
在使用电脑过程中,有时会遇到一些与动态链接库文件(DLL)相关的错误。其中,mfc140u.dll丢失的错误是较为常见的一种。当这个关键的mfc140u.dll文件丢失或损坏时,可能会导致某些应用程序无法正常运行。在本文中ÿ…...
2源码安装网络协议
2.2源码安装/网络协议 一、源码包应用场景 有时我们所用的内核版本太旧,系统自带的库(如libstdc.so.6)版本低或者依赖的其他软件版 本较低,导致无法安装目标软件。 软件/库其实是对机器汇编指令集的封装,在X86体系下…...
未来服务器操作系统的趋势与展望
摘要: 随着云计算、大数据和人工智能不断的发展,服务器操作系统也需要随之进行新一轮的升级。本文通过分析当前服务器操作系统的现状,探讨了未来服务器操作系统的趋势和展望,并针对一些关键问题提出了解决方案。 一、引言 服务器…...
VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
自建ES6.2.4切阿里云商业版ES(7.10)整体方案
一、切换目的&阿里云商业版ES版本选择 1.1 升级切换阿里云商业版7.10目的 自建的Elasticsearch服务运维难度高,操作复杂,需要手动调整资源,遇到性能瓶颈时优化难度相对云上Elasticsearch较大。使用阿里云提供的ES服务,提高系统稳定性使用云服务es,易于备份,数据恢复…...
Vue实现封装自定义指令
目录 一、什么是自定义指令? 二、自定义指令的使用 Vue中的自定义指令使用Vue.directive函数进行定义。该函数接受两个参数,第一个是指令名称,第二个是指令选项对象。 上述代码中,我们定义了一个名为my-directive的自定义指令…...
<MySQL> 查询数据进阶操作 -- 聚合查询
目录 一、聚合查询概述 二、聚合函数查询 2.1 常用函数 2.2 使用函数演示 2.3 聚合函数参数为*或列名的查询区别 2.4 字符串不能参与数学运算 2.5 具有误导性的结果集 三、分组查询 group by 四、分组后条件表达式查询 五、MySQL 中各个关键字的执行顺序 一、聚合查询…...
arm开发板
一个简单的hello world程序 minicom用来和开发板之间交互并且可以向开发板传输文件。打印hello world字符串。在linux虚拟机上编译我的代码,使用的交叉编译工具是arm-linux-gnueabihf-gcc (hard float) 可以使用 readelf -h libc.so.6 查看开发板是不是(…...
nodejs+vue教室管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
用户 用户管理:查看,修改自己的个人信息 教室预约:可以预约今天明天的教室,按着时间段预约(可多选),如果当前时间超过预约时间段不能预约该时间段的教室 预约教室的时候要有个预约用途ÿ…...
rabbitMQ的Topic模式的生产者与消费者使用案例
topic模式 RoutingKey 按照英文单词点号多拼接规则填充。其中消费者匹配规则时候 * 代表一个单词,#表示多个单词 消费者C1的RoutingKey 规则按照*.orange.* 匹配 绑定队列Q1 package com.esint.rabbitmq.work05;import com.esint.rabbitmq.RabbitMQUtils; import …...
【软考篇】中级软件设计师 第五部分
中级软件设计师 第五部分 三十六. 下午题变动题型参考答案例题一 如何保持数据流图平衡例题二 结构化语言例题三 关系模式例题四 用例关系内涵例题五 观察者模式 三十七:下午题第四题往年算法部分参考答案 读前须知: 【软考篇】中级软件设计师 学前须知 …...
论文阅读——RetNet
transformer的问题:计算量大,占用内存大,不好部署。 所以大家在找能解决办法,既能和transformer表现一样好,又能在推理阶段计算复杂度很低。 这些方法大概分类三类:一是代替transformer非线性注意力机制的…...
【Proteus仿真】【51单片机】锂电池管理系统
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602显示模块、DS18B20温度传感器、PCF8691 ADC模块、按键、LED蜂鸣器模块等。 主要功能: 系统运行后,LCD1602显示温度…...
【工具使用-VScode】设置 VSCode 的自动保存功能
要设置 VSCode 的自动保存功能,请按照以下步骤进行操作: 打开 VSCode 编辑器。在顶部菜单中选择 “文件(File)”。选择 “首选项(Preferences)”。在下拉菜单中选择 “设置(Settings࿰…...
常用Git命令记录
持续补充… git add:提交到暂存区git remote add <remote_name> <remote_url> : 添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。git commit:暂存区提交到本地仓库;-m:添加日…...
Go语言常用库
Go语言常用库 文本主要介绍Go常用的一些系统库: sort、math、copy、strconv、crypto 1、sort package mainimport ("fmt""sort" )// sort // int排序 // sort.Ints([]int{}) // 字符串排序 // sort.Strings([]string{}) // 自定义排序 // s…...
二叉树(进阶)
文章目录 1.内容安排说明2. 二叉搜索树2.1二叉搜索树的概念2.2二叉搜索树的实现2.3二叉树的性能: 搜索二叉树的应用k 模型kv模型 1.内容安排说明 二叉树在前面c数据结构阶段;已经讲过了;本节取名二叉树进阶的原因是: 1.map和set特…...
Flink之OperatorState
在Flink中状态主要分为三种: Operator State(算子状态)Keyed State(键控状态)Broadcast State(广播状态) 这里简单介绍一下Operator State的使用,说到使用State就必然要使用到Flink的容错机制也就是Checkpoint.具体内容见代码注解 数据源 这里选用Socket作为Source输入,便于…...
Python集成学习和随机森林算法
大家好,机器学习模型已经成为多个行业决策过程中的重要组成部分,然而在处理嘈杂或多样化的数据集时,它们往往会遇到困难,这就是集成学习(Ensemble Learning)发挥作用的地方。 本文将揭示集成学习的奥秘&am…...
跨环境漏洞复现:Docker Desktop与VMware Kali的TCP/信号对齐实战
1. 这不是“复现个POC就完事”的演练,而是真实攻防链路上的环境卡点攻坚你有没有遇到过这种情况:在本地Kali虚拟机里跑通的CVE-2026-24061利用脚本,一放到客户现场的Docker Desktop环境里就报错——不是缺Python模块,就是socket连…...
# 软考软件设计师 · 考前3天终极实战全攻略
软考软件设计师 考前3天终极实战全攻略📅 2026年5月20日 | 距考试仅剩3天 | D-3 最终准备日 ⚠️ 今天起停止大量刷题,核心任务:熟悉机考系统 梳理答题策略 调整心态 考前物质准备📌 今日重点概览模块内容目的🖥️…...
实战指南:用Python和PyTorch一步步搭建TFT模型,搞定电力负荷多步预测
实战指南:用Python和PyTorch一步步搭建TFT模型,搞定电力负荷多步预测 电力负荷预测是能源管理系统的核心环节,准确的多步预测能帮助电网运营商优化发电计划、降低运营成本。传统统计方法如ARIMA在处理复杂非线性关系时表现有限,而…...
智谱清言 LeetCode 2573. 找出对应 LCP 矩阵的字符串 Python3实现
LeetCode 2573. 找出对应 LCP 矩阵的字符串 思路分析 LCP 矩阵定义:lcp[i][j] 表示字符串 s 从位置 i 和位置 j 开始的最长公共前缀长度。 核心观察:LCP 矩阵具有递推性质: 若 lcp[i][j] > 0,则 lcp[i1][j1] lcp[i][j] - 1&am…...
Rust异步编程实战:构建高性能并发应用
引言 异步编程是构建高性能后端服务的关键技术。作为从Python转向Rust的开发者,我发现Rust的异步模型与Python有很大不同。Rust的异步编程基于协程和事件驱动,通过Tokio运行时实现高效的并发执行。本文将深入探讨Rust异步编程的核心概念、实践模式和性能…...
开源AI编辑器的未来发展趋势
基于当前发展状况来分析,开源AI编辑器的未来发展趋势主要体现在以下几个核心方向:一、技术能力:从“辅助补全”迈向“智能体化”全流程自主化:AI编辑器正从基础的代码补全、语法检查,向具备自主决策能力的智能体&#…...
DVWA通关教程2
本博客所有网络安全相关教程、漏洞原理、渗透实操、攻防技术等内容,仅用于合法安全学习、白帽技术交流、企业授权安全测试。 所有技术严禁用于未授权探测、非法入侵、数据窃取、网络攻击等任何违反《中华人民共和国网络安全法》的违法行为。 任何个人利用本文内容实…...
书匠策AI深度拆解:2025年毕业论文竟然能这样“无痛通关“?|论文科普必看
各位正在被毕业论文反复折磨的同学们,今天这篇文章,我要用最接地气的方式,给你们拆解一个让我直呼"早该有了"的工具——书匠策AI( 官网直达:www.shujiangce.com)。 先说句大实话:写毕…...
Lindy流程自动化实施倒计时手册:仅剩最后23家企业获赠官方认证治理框架V2.3(含审计就绪检查表)
更多请点击: https://intelliparadigm.com 第一章:Lindy流程自动化实施倒计时手册发布背景与战略意义 在企业数字化转型加速演进的当下,重复性高、规则明确但跨系统耦合度强的业务流程正成为组织效能提升的关键瓶颈。Lindy流程自动化&#x…...
第 2 篇:Agent 的三种工作模式,选错了事倍功半
系列简介:从零搭建一个多 Agent AI 助手,覆盖原理、实现、部署全链路。不讲空话,每篇都有可运行的代码。 项目地址:https://github.com/CodeMomentYY/LangGraph-Agent 本篇目标:理解 Agent 的三种工作模式,…...
