Jiangxl~
CSDN博客专家、51CTO专家博主、阿里云博客专家、华为云享专家、DevOps运维领域优质创作者、
2021年度博客之星运维与安全领域TOP1,InfoQ签约作者、阿里云社区签约作者。博客包括:Python、前端、Kubernetes、Docker、CI/CD、DevOps、Prometheus、Zabbix、MQ、Redis、MySQL、WEB集群、自动化运维、阿里云、ELK、Linux、等相关使用及进阶知识。查看博客过程中,如有任何问题,皆可随时沟通。
展开
-
Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)
图形类型选择Appgraph,可以清晰的看到从istio的ingressgateway到具体微服务的架构图,请求首先达到productpage然后由productpage调用details微服务,再调用reviews微服务,reviews微服务会调用ratings微服务。kiali还支持观察微服务程序的架构图,包括程序访问的架构图、service资源的架构图、多版本类型的架构图、工作负载的架构图。1)点击左侧的Workloads,选择命名空间,即可显示这个命名空间下的所有Deployment控制器资源。..原创 2022-07-28 09:27:46 · 3966 阅读 · 63 评论 -
Istio服务网格进阶⑦:Istio流量治理之故障注入与重试
我们可以在busybox容器中请求Nginx服务,由Nginx将请求转发到Tomcat中,由于Tomcat无法响应,Nginx发送一次请求后会接着重试3次,当我们执行一次wget的请求时,就会产生4条请求记录,而这4条请求记录会产生8条Envoy代理程序的日志,分别是出入流量的日志,我们可以在日志中清晰的看到每次请求或者重试都会有2条日志记录。配置Nginx服务的VirtualService资源,设置请求响应的延时时间,将延时时间设置的稍微长一些,经过这段时间后,再返回响应,就可以实现超时配置的效果了。原创 2022-09-25 15:58:12 · 1942 阅读 · 36 评论 -
Istio服务网格进阶⑥:Istio服务网格之流量治理超时配置
在生产环境中常常会遇到调用发起方等待响应方的时间过长,堆积了大量的请求阻塞了自身服务,从而造成雪崩的情况,此类问题会通过配置超时时间来解决,避免由于无限期的等待造成相关的故障,进而增强服务的可用性。配置Nginx服务的VirtualService资源,设置请求响应的延时时间,将延时时间设置的稍微长一些,经过这段时间后,再返回响应,就可以实现超时配置的效果了。系统架构一般都是Nginx+Tomcat反向代理或者负载均衡的方式,通常情况我们都是在Nginx服务中配置代理连接的超时时间。原创 2022-09-20 14:10:32 · 1592 阅读 · 28 评论 -
Istio服务网格进阶⑤:Istio服务网格的流量管理之服务熔断
应用程序调用之间也是有类似保险丝的概念的,被称为服务熔断,当A服务请求B服务时,如果B服务故障无法提供请求时,A服务还是会一直请求B服务,从而占用很多的资源,请求积压过多就会影响服务器的整体性能,当应用程序设置了服务熔断,当B服务无法处理请求时,就不会让A服务再去请求B服务了,根据设置的时间,一段时间后再让A服务去尝试请求B服务。开启了服务降级模式,A服务就不会去调度异常的B服务,此时会给用户返回一个友好的提示页面,比如"请求繁忙,请稍后重试"。当请求数没有超过服务熔断设置的阈值就可以正常访问程序。原创 2022-09-16 09:52:53 · 1113 阅读 · 23 评论 -
Istio服务网格进阶④:Istio服务网格核心资源YAML编排文件配置清单
VirtualService是Istio流量治理的核心配置资源,所有的流量控制策略都是由VirtualService资源实现的,Gateway资源相当于流量的入口,流量如何管控是由VirtualService资源实现的。流量比例分配如果先写weight再写destination参数就更容易理解了,如下图所示,接收到的90%的流量转发到V1版本的路由规则,接收到的10%的流量转发到V2版本的路由规则。这些核心资源都是用于配置Istio流量管理的资源控制器。原创 2022-09-15 09:18:31 · 1754 阅读 · 28 评论 -
Istio服务网格进阶③:基于Istio服务网格实现灰度发布机制
灰度发布的例子:一个应用程序有2个版本,V1版本为线上生产环境的版本的,V2版本为即将上线的版,需要同时将两个版本的应用程序部署,并且全部接入到负载均衡中,通过灰度发布控制,V1版本承担90%的流量,V2版本承担10%的的流量,观察运行效果,循序渐进,最新V1版本下线,V2版本提供线上服务。Kubernetes集群的Pod程序版本升级的默认方式就是滚动发布,先运行一个新版本的Pod,健康检查机制通过后才会将旧版本的Pod删除,不断的执行这个过程,直到所有的Pod全部升级成新的版本为止。绑定hosts解析。.原创 2022-09-01 14:22:51 · 1474 阅读 · 57 评论 -
Istio服务网格进阶②:在Istio服务网格中部署Bookinfo在线书店微服务项目
Bookinfo在线书店微服务是Istio提供学习的一个案例,这个微服务程序中包括4个微服务程序,并且每个微服务程序都是通过不同的语言编写的,这个应用系统是模仿了书店的一个分类,会显示一本书的信息,在页面上会展示这本书的描述和评分等信息。1)ProductPage(系统首页):ProductPage微服务会调用Reviews评论区系统、Details详情内容,用来生成页面。2)Reviews(评论区):Reviews微服务包含了书籍的相关评论,会调用Ratings微服务。...原创 2022-08-19 09:39:25 · 931 阅读 · 47 评论 -
Istio服务网格进阶①:Istio服务网格核心理论概念
官方文档:https://istio.io/docs/concepts/what-is-istio/中文官方文档:https://istio.io/zh/docs/concepts/what-is-istio/Github 地址:https://github.com/istio/istio/releases。原创 2022-08-15 09:28:13 · 948 阅读 · 33 评论 -
基于Istio服务治理网格的SpringCloud大型微服务项目部署流程
用户请求首先到portal前端页面,也就是程序的首页,在首页的各项功能操作都会由Gateway网关服务转发到各自的微服务程序上,比如请求一个订单服务,订单服务会事先注册到Eureka中,由Gateway将请求发送给Eureka,再由Eureka转发给具体的微服务程序,这些微服务程序都有自己单独的数据库服务。......原创 2022-08-04 09:28:35 · 2384 阅读 · 57 评论 -
基于域名的方式访问Istio服务网格中的多个应用程序
我们在Istio中部署的程序一定不止有一个,前面我们已经在Istio中部署了Httpbin、Bookinfo、Nginx这三个应用程序,但是我们使用节点IP加NodePort端口的方式永远只是请求到了一个应用程序,就好比我们已经实现了Nginx的基于端口的访问模式,不过每个应用程序都是用的是80端口,才导致只访问到了一个应用程序,在实际生产中,Istio中一定会部署很多个应用程序,我们需要实现基于域名来访问不同的应用程序。应用部署在Istio之后,将程序对外发布,会创建Gateway以及VirtualSer原创 2022-07-13 10:40:42 · 1230 阅读 · 51 评论 -
Istio微服务治理网格流量管理核心资源控制器详解
Istio常用的流量管理资源有以下四种:Istio中对于流量的转发、访问控制、灰度发布等等功能都是通过编写这四种资源编排文件来实现的。Gateway网关资源主要是为网格内的服务提供一个对外访问的入口,类似于Ingress资源,将网格内的应用程序发布在互联网环境。Gateway网关资源需要配置VirtualService资源才能完成应用程序对外暴露的规则配置信息,Gateway与VirtualService定义的转发规则最终会配置在Istio的Ingressgateway服务中。Gateway网关资源可以管理原创 2022-06-27 09:16:33 · 1121 阅读 · 41 评论 -
Istio服务网格中的流量复制(六)
在发布新版本前,测试同事会通过很多的测试工具对新版本的程序进行压测,虽然可以模拟出很多的流量,但是也不算是真实的流量请求,上线后还是不能保证其他问题的发生。当需要用真实的线上流量进行新版本的测试,但是也不能真的让测试中的版本为线上用户提供服务,基于这种情况,Istio可以通过VirtualService虚拟服务将线上的真实访问流量复制一份到其他的环境。Istio流量复制的技术被称为流量镜像,主要用于将线上真实的流量复制一份,然后通过Proxy代理程序根据策略处理请求,然后转发到某个版本的程序上,并不会影响真原创 2022-06-22 09:09:46 · 1567 阅读 · 52 评论 -
使用Istio部署Bookinfo微服务项目并实现灰度发布管理(流量控制、HTTP头部控制、URL控制)(五)
Bookinfo微服务也是istio提供学习istio的一个案例,这个微服务程序中包括4个微服务程序,并且每个微服务程序都是通过不同的语言编写的。Bookinfo各个微服务程序介绍:ProductPage(系统首页):ProductPage会调用Reviews评论区系统、Details详情内容,在系统首页展示评论的内容。Reviews(评论区):Reviews评论区系统会调用Ratings在页面上展示评论的评分。Details(详情内容):无系统调用。Ratings(评分):无系统调用。Bookinfo图书原创 2022-06-08 10:18:56 · 1171 阅读 · 31 评论 -
Istio服务网格的应用程序主流发布方案(四)
Web应用程序在逻辑上分为A、B两组,在升级过程中,首先将B组从负载均衡器中移除,然后在B组的Web服务器中进行V2版本的升级,A组V1版本依旧正常提供应用服务,当B组完成应用升级后,将B组重新挂载到负载均衡器中,然后将V1版本的A组从负载均衡器中移除,这种发布模式被称为蓝绿发布。蓝绿发布的特点:蓝绿发布的缺点:Kubernetes集群的Pod程序版本升级的默认方式就是滚动发布,先运行一个新版本的Pod,健康检查机制通过后才会将旧版本的Pod删除,不断的执行这个过程,直到所有的Pod全部升级成新的版本为止。原创 2022-06-04 09:25:35 · 883 阅读 · 32 评论 -
Istio微服务治理网格基本使用以及与Kubernetes集成的架构(三)
Istio微服务治理网格基本使用以及与Kubernetes集成的架构文章目录Istio微服务治理网格基本使用以及与Kubernetes集成的架构1.Pod应用程序注入Sidecar代理程序1.1.为应用程序手动注入Sidecar1.2.为应用程序自动注入Sidecar1.3.在集群外部访问服务网格中的程序2.Istio与K8S集成的架构图1.Pod应用程序注入Sidecar代理程序Istio在程序中注入Sidecar的方式有两种:分别是手动注入和自动注入。手动注入是通过Istio命令将Sidecar原创 2022-05-27 09:36:08 · 3728 阅读 · 69 评论 -
在Kubernetes集群中搭建Istio微服务网格(二)
在Kubernetes集群中搭建Istio微服务网格文章目录在Kubernetes集群中搭建Istio微服务网格1.使用sealos部署快速部署K8S集群1.1.基本环境配置1.2.部署K8S集群2.在K8S集群中部署Istio网格服务2.1.下载Istio安装包2.2.查看Istio可用的配置列表2.3.部署Istio网格服务2.4.展示Istio配置档的配置信息2.5.查看Istio在k8s集群部署使用的YAML文件内容1.使用sealos部署快速部署K8S集群1.1.基本环境配置1.设置主机名原创 2022-05-11 13:09:03 · 1715 阅读 · 47 评论 -
云原生核心技术之Istio服务网格核心理论概念(一)
Istio服务网格基本理论概念1.Service Mesh基本概念1.1.什么是Service Mesh服务网格在熟悉和使用Istio之前首先要了解什么是Service Mesh。Service Mesh即为 “服务网格” ,是用于处理服务与服务之间通信的基础设施层,主要负责为复杂构建的云原生应用提供一个可靠网络传递请求,并为微服务通信实现了基本的功能,例如服务发现、负载均衡、监控、流量管理、访问控制等等。服务网格通常是将一个应用程序与一个代理程序部署在一起,并进行关联,对于应用程序来说是透明的,原创 2022-04-27 09:38:20 · 3421 阅读 · 97 评论