再谈istio

news2024/9/9 4:40:50

微服务之间调用观测,
istio的版本是对k8s 版本有要求的,案例中 istioshi 1.15.2 版本的
在这里插入图片描述

一、下载 Istio

在这里插入图片描述
在这里插入图片描述

二、部署

在这里插入图片描述
在这里插入图片描述
egressgateway 和 ingressgateway 分别控制进出

istio 通过 Envoy proxy,也就是pod加边车的方式来控制用户对svc的访问

在这里插入图片描述
这样做后,新生的pod自动带代理

三、示例 Bookinfo

在这里插入图片描述

四、对外开放应用在这里插入图片描述

在这里插入图片描述

安装metallb,

还得配置下ipvs和 strict ARP
在这里插入图片描述

为了获取 ingressgateway的 EXTERNAL-IP
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个地址在集群内可以访问,但是集群外ping不通,需要配置二层转发才可以用
在这里插入图片描述
在这里插入图片描述
设置ingress host ip 和 port
在这里插入图片描述
设置 gateway_url
在这里插入图片描述
在这里插入图片描述

五、service mesh

做架构选型的时候你需要知道原来架构的缺点,才能知道应该选择什么来弥补缺点
集中式代理,需要对nginx 做keepalived
嵌入式代理,需要额外的基础架构组开发组件,而且语言只能用java
代码写得多了,就会被沉淀下去,变成公共库。写的太多了,就变成了一个独立的进程,和原来的进程脱钩,就是sidecar
是sidecar之间做交互的,相互联系成为网格,即为服务网格 service mesh, istio就是service mesh的一种实现
在这里插入图片描述
用户量没那么多,就没必要复杂,用nginx也行。
用了servicemesh 开发工作量减少了

bookinfo 架构

在这里插入图片描述

istio

在这里插入图片描述
istio服务间http,grpc,tcp 调用都通过边车
在这里插入图片描述
所有日志间调用都得通过mixer,可以用日志收集,链路追踪来理解他,他会记录下这个过程。A调B 合法不合法也是通过mixer判断

istio 1.0的架构,过时了,为了后面便于理解新的架构

所有的东西都要过mixer,它重启全都得停摆一下,太耗费性能了
在这里插入图片描述

1.5版本后就是这样了,复杂是万恶之源

在这里插入图片描述

istio把网络通信之间的关系下沉到和微服务没有关系,解耦了

istio要给命名空间注入的
在这里插入图片描述
在这里插入图片描述
demo是顶配的套餐,什么功能都有
在这里插入图片描述
把demo套餐打个明细出来
在这里插入图片描述
kiali调用链路
在这里插入图片描述

注入

就是在pod里注入sidecar

手动注入

在这里插入图片描述
注入前端口只有80,注入后端口多了几个(监控,通信,流量控制,链路追踪),istio-init 这个开始执行完任务就死掉的哥们做了这件事,它还统一了应用容器和istio-proxy的ip
在这里插入图片描述
一个pod里面两个container的端口是一样的。envoy就是sidecar. pilot-agent就是 控制面板pilot的代理,和pilot 做通信用
在这里插入图片描述
可以看到死去哥们做的环境变量,端口设置等等
在这里插入图片描述
在这里插入图片描述
pilot 监听k8s api server变化 pilot-agent 从pilot 拿配置给sidecar,然后给nginx
在这里插入图片描述
docker insepct proxy镜像
在这里插入图片描述
在这里插入图片描述

六、流量管理(就是负载均衡和灰度发布这类)

svc根据标签可以选择两个不同的pod作为后端负载的点

通过VirtualService 控制 流量分发到两个svc,每个svc对应一个pod. 这些deployment和client的 yaml文件都被注入了istio。以此实现了流量分发. svc是不能被注入的

在这里插入图片描述
在这里插入图片描述

istio virtual service 满足的条件,去的目的地

在这里插入图片描述
在这里插入图片描述
exact: msb的意思是完全等于 msb,走 httpd1-svc
在这里插入图片描述
在这里插入图片描述

bookinfo

先需要执行这个
在这里插入图片描述
再执行这个就总是v1版本
在这里插入图片描述

让用户是xiaodi的走v2,不是的随便走

这个命令能查版本号
在这里插入图片描述
在这里插入图片描述
没有改变一行代码,就让他实现了路由
在官网找到 Virtual Service,还有很多条件可用
在这里插入图片描述
在这里插入图片描述

蓝绿发布 保证服务不间断提供服务

比如8点之后的流量就不要去老服务了
在这里插入图片描述

故障注入:超时

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
timeout就是多久超时,这里一秒就超时
在这里插入图片描述
在这里插入图片描述
前面只等待一秒,没出来就报错了

重试

七、

八、

比如一个程序已经有别人写好的,提供服务,调一万次只要5毛钱,那还要这个开发程序员干什么?没事想想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring验证码

前言:使用Hutool 1.什么是Hutool? 2.代码复制到test类中 3.代码爆红,说明需要引入依赖 4.根据名取Maven仓库相关依赖 5.在pom.xml文件中进行配置 6.引入成功 7. 运行程序 打开d盘,发现已经生成了验证码的图片,路径在…

Python推荐书单:三本不可错过的经典书籍

强烈推荐这三本书!! 一、《Python编程从入门到实践》 这本书适合零基础的Python读者,旨在帮助他们快速入门Python编程,并达到初级开发者的水平。书中深入浅出地介绍了Python的基础概念,如变量、循环、函数等&#xff…

智能优化算法(三):遗传算法

文章目录 1.问题描述2.遗传算法2.1.算法概述2.2.编码操作2.3.选择操作2.4.交叉操作2.5.变异操作2.6.算法流程 3.算法实现3.1.MATLAB代码实现3.2.Python代码实现 4.参考文献 1.问题描述 \quad 在利用启发式算法求解问题时,我们常常需要应用遗传算法解决函数最值问题&…

【Golang 面试 - 进阶题】每日 3 题(八)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

重塑七人拼团模式:社交电商的裂变新策略

在当今的电商领域,七人拼团模式作为一种创新的商业模式,正以其独特的魅力引领着中小型企业迈向新的增长阶段。这一模式巧妙融合了社交电商的互动性与拼购的趣味性,旨在通过用户间的自然传播,实现市场的快速渗透与品牌影响力的显著…

【赛事推荐】2024中国高校计算机大赛人工智能创意赛

“中国高校计算机大赛”(China Collegiate Computing Contest,简称C4)是面向全国高校各专业在校学生的科技类竞赛活动,于2016年由教育部高等学校计算机类专业教学指导委员会、教育部高等学校大学软件工程专业教学指导委员会、教育…

NSS [SWPUCTF 2022 新生赛]funny_php

NSS [SWPUCTF 2022 新生赛]funny_php 开题&#xff0c;直接给了源码 <?phpsession_start();highlight_file(__FILE__);if(isset($_GET[num])){if(strlen($_GET[num])<3&&$_GET[num]>999999999){echo ":D";$_SESSION[L1] 1;}else{echo ":C&…

Express基于Node.js基础知识【1】全面总结 推荐收藏

最近在用基于node.js平台的web应用开发做项目&#xff0c;梳理了下关于Express框架的相关知识&#xff0c;方便自己以后查看&#xff0c;希望也能帮助证字啊学习express相关知识的同学&#xff0c;欢迎大家参考&#xff0c;有问题评论区留言&#xff0c;谢谢。 目录 1.安装 …

【人工智能】基础三:深度学习概述、人工神经网络基础

文章目录 一. 深度学习1. 深度学习概念2. 深度学习原理3. 深度学习学习方式4. 深度学习训练方法 二. 人工神经网络基础1. 神经元感知器模型2. 神经网络模型2. 学习方式3. 学习规则3.1. 正向传播求误差3.2. 反向传播求偏导&#xff08;ing&#xff09; 4. 激活函数 一. 深度学习…

【环境搭建问题】linux服务器安装conda并创建虚拟环境

1.检查有没有conda 首先看root文件夹下有没有anaconda或者conda 没有的话就要先下载安装conda&#xff1a; https://repo.anaconda.com/archive/index.html 在这个链接下找自己需要的。服务器一般为linux&#xff0c;所以我这里选择的是&#xff1a; 2.安装conda 下载安装…

阳光混合试验的三个指标

户外干燥气候循环系统&#xff08;仿真模拟空气干燥气侯&#xff09;户外湿冷气侯循环系统&#xff08;仿真模拟寒湿和冰冷晚间气侯&#xff09;室内干燥气候耐久度 阳光模拟温湿度试验箱 主要用于汽车及零部件的曝晒试验、如塑料样板、仪表盘、中控屏、方向盘、保险杠等&…

基于 GADF+Swin-CNN-GAM 的高创新电能扰动信号识别模型!

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

【计算机毕设论文】基于SpringBoot的诗词管理系统

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】小伙伴可以关注我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…

小程序开发_05协同工作和发布

一、开发流程 二、权限管理 三、不同成员的权限 四、小程序发布上线的步骤 上传代码--->提交审核-->发布1. 上传代码 提交审核 三、发布上线

文件IO相关作业

1> 使用文件IO完成&#xff0c;将源文件中的所有内容进行加密&#xff08;大写转小写、小写转大写&#xff09;后写入目标文件中 源文件内容不变 #include<myhead.h>int main(int argc, const char *argv[]) {//判断传入的是否是两个文件if(argc!3){write(2,"inp…

期末复习资料——计算机系统基础

第一章 1、下列关于机器字长、指令字长和存储字长的说法中&#xff0c;正确的时_②、③_ ①三者在数值上总是相等的。②三者在数值上可能不相等。③存储字长是存放在一个存储单元中的二进制代码位数。④数据字长就是MDR的位数。 机器字长、指令字长和存储字长&#xff0c;三…

【区块链+绿色低碳】碳低链 | FISCO BCOS应用案例

在碳中和、碳达峰国家战略的号召下&#xff0c;碳中和数字化、协同低碳的发展如火如荼。但是在金融业的实际场景应用中&#xff0c; 存在数据收集效率低、数据核查困难、服务单一等问题&#xff0c;痛点集中为两个&#xff1a;一是数据冗杂&#xff0c;可能会存在数据篡改&…

【python报错已解决】`AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言&#xff1a; 在数据分析或者数据处理的过程中&#xff0c;我们经常会遇到各种各样的报错信息&#xff0c;这些报错信息往…

【漏洞复现】APP分发签名系统index-uplog.php存在任意文件上传漏洞

漏洞描述 APP分发签名系统index-uplog.php存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵…