微服务治理与istio(1) 我们知道,当应用程度到达了一定程度大的时候,必然会走到分布式,而微服务是作为分布式的一种极致表现。谈到微服务,不得不去提微服务治理,在这之前,我们了解下分布式架构治理模式的演进。 服务治理在早期的治理能是是嵌入在业务代码中的,典型技术如:SOA,ESB,开发人员把服务治理的代码写入到程序中来实现服务发现,符在均衡,熔断容错,动态路由。这意味着每个开发人员都需要在自己的模块内维护一个这些功能。 而到 应用运维 2023-07-15 穿过生命散发芬芳
istio 1.14.1安装与测试(2) 要想部署istio,我门需要kubernetes组件。控制平面默认部署在istio-system名称空间内,包含,istiod,ingress-gateway,egress-gateway,addons(kiali.prometheus,grafanajacger)。而数据平面的自动注入只会在部署应用之后部署在应用的名称空间内,以Sidecar 运行,并且是需要打上一个label才能被启用。 而e 应用运维 2023-07-15 泡泡
初时istio服务网格(3) 网格中有很多service,sidecar就会看到很多egerss listeners通过正向代理来确保pod访问之外服务的时候是通过sidecar来代理,ingress是来接受外部访问内部的,但这并不多,该pod被后端端点的service 的端口所属的服务会在该pod的sidecar生成ingress listeners,通过ingress反向代理完成访问 如: istio-system和被打上 应用运维 2023-07-15 共饮一杯
istio 1.14.1 kiali配置(4) 4.kiali配置 ingress和egress分别处理的出和入的流量,而大部分相关资源都需要定义资源来完成。 每个pod访问外部的时候,流量到达sedcar上,而sedcar上有对应的配置。这些配置包括: 集群内有多少个服务 服务对应的pod是什么 访问给服务流量的比例是多少 而virtualServIce就是为了这些来定义,这类似于nginx的虚拟主机。virtualServIce为每一个服务 应用运维 2023-07-15 竹子爱熊猫
istio 基于url路径路由(5) 流量治理 在istio1.5后的版本,istiod充当控制平面,并且将配置分发到所有的sidecar代理和网关,能够支持网格的应用实现只能话的负载均衡机制。 而envoy通过简单的二次开发后在istio中称为istio-proxy,被用于围绕某个pod,以sidecar的模式允许在某个应用的pod中。除此之外envoy还负责ingress和egress,分别是入向和出向网关。 在k8s中,一旦is 应用运维 2023-07-15 Escape
istio 定义subset子集(6) 定义subset子集 我们将两个版本归类到一个版本的pod上,去进行适配到一个pod上去,通过标签关联来做区分 对于多个版本,在同一个host,通过标签来标注不同的版本信息来进行管理,而后在vs中进行调用 子集 需要在DestinationRule集群上面进行配置 DestinationRule在cluster配置的,通过routes进行调度 基于子集,在本案例中根据version标签来备注,类似 应用运维 2023-07-15 Escape
istio 发布web到集群外(7) 3.开放到外网 我们通过域名通过外网来访问集群内的这两个pod,就需定义gateway和vs,vs也是定义在网关 gateway打开侦听器 gateway必须在网格部署的所在名称空间内,否则有可能注入失败 VirtualService定义路由信息等 此前定义的VirtualService并没有指定网关,如果没有指定,就只会在网格内的各sidecar内使用 如果只是这样,那么网格内部是不能访问的,如 应用运维 2023-07-15 张二河
istio 基于权重路由(8) 紧接前面,这篇我们希望访问dpment服务的请求在百分之90的流量在原来的v10的pod,而百分之10的在新的v11的pod,因此我们配置weight来实现基于权重比例的流量切割 首先部署dpment-a和dpment-b 仍然需要配置service关联到后端的pod标签 apiVersion: v1 kind: Service metadata: name: dpment namespace: 应用运维 2023-07-15 LOVEHL^ˇ^
istio 基于headers请求头路由(9) 5.请求首部条件路由 正常情况下从客户端请求的流量会发送到sidecar-proxy(eneoy),请求发送到上游的pod,而后响应到envoy,并从envoy响应给客户端。 在这个过程中,客户端到envoy是不能够被修改的,只有从envoy到上游serrvice中才是可以被操作的,因为这段报文是由envoy发起的。而从serrvice响应到envoy的也是不能够被修改的。并且从envoy响应到客 应用运维 2023-07-15 向阳逐梦
istio 故障注入/重试和容错/流量镜像(10) 6.故障注入 istiO支持两种故障注入,分别是延迟故障和中断故障 延迟故障:超时,重新发送请求 abort中断故障:重试 故障注入仍然在http层进行定义 中断故障 fault: abort: # 中断故障 percentage: value: 20 # 在多大的比例流量上注入 httpStatus: 567 # 故障响应码 延迟故障 fault: delay: percentage: valu 应用运维 2023-07-15 向阳逐梦
istio bookinfo配置演示(11) bookinfo 其中包包中有一个 bookinfo的示例,这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。 Bookinfo 应用分为四个单独的微服务: productpage. 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。 details. 这个微服务中包含了书籍的信息。 应用运维 2023-07-15 大白菜程序猿
使用robusta收集事件pod崩溃OOM日志 robusta的功能远不止本章介绍的这些,它可以去监控Kubernetes,提供观测性,可以于prometheus接入,作为告警的二次处理,自动修复等,也提供了事件的时间线。 此前使用的是阿里的kube-eventer,kube-eventer仅仅只是提供了一个转发,因此kube-eventer只能解决的是事件触发的通知。 当然, 如果robusta也是仅仅止步于此,那也没用多少必要性去使用它。它 应用运维 2023-07-15 共饮一杯
简介源代码安装nginx/apache 在编译安装时请注意需求!必要时查看官方文档! [root@centos3 ~]# rpm -qi glibc Name : glibc Relocations: (not relocatable) Version : 2.12 Vendor: CentOS Release : 1.149.el6 Build Date: Wed 15 Oct 2014 10:00:58 AM CST Install 应用运维 2023-07-15 张二河
apachectl2.4编译安装及虚拟目录的实现 前提: 安装开发环境 yum groupinstall "Deveopment Tools" "Server Platform Developent" httpd依赖于:apr, apr-util, apr-icon 其他依赖包:pcre-devel zlib-devel 在安装前请确保以上基础的依赖包已经安装! 开始安装: 源码包安装顺序为:arp,apr-util,httpd 环境: os:c 应用运维 2023-07-15 捡田螺的小男孩
nginx编译简单安装和优化(一) nginx编译简单安装 前提: 安装开发环境 yum groupinstall “Deveopment Tools” “Server Platform Developent” 另外,在安装nginx时,可能额外依赖pcre-devel,来实现扩展表达式,扩展URL重写,它不会自动安装 yum -y install pcre-devel 1,下载nginx包,加压 [root@www ~]# tar 应用运维 2023-07-15 剑圣无痕
nginx配置介绍(二) 虚拟主机定义: 1,基于端口的虚拟主机 cp nginx.conf{,.bak} vim /etc/sbin/nginx/nginx.conf server { listen 8080; server_name www.linuxea.com; root "/web/linuxea"; } [root@www ~]# mkdir /web/linuxea -pv mkdir: created di 应用运维 2023-07-15 大树
nginx反向代理功能使用(一) 这里使用的是下载好的rpm包,非yum源安装的。 ngxin-1.6.2-1.e16.ngx.x86_64.rpm rpm -q --scripts nginx查看nginx的安装前脚本安装后的脚本 [cc lang="php"] Mode ngx_http_proxy_module ngx_http_upstream_module [/cc] . server{ listn servername 应用运维 2023-07-15 张二河
nginx反向代理功能使用(二) 12,自定义响应首部 upstream_cache_status; server_addr 通知客户端是由哪个主机代理,代理缓存是否命中。 node1 # vim /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name _; add_header X-Via $server_addr; 代理服务器的 应用运维 2023-07-15 贤蛋大眼萌
nginx cpu亲和性修改笔记(一) 在nginx服务器上,对多颗cpu做亲和性绑定 CPU亲和性修改 #taskset -p mask pid pID和-p之间加上CPU掩码!CPU掩码:假设有4课CPU,第一颗便是:0000,第二颗0001,第三颗0101,第四颗1111也可使用-c选项提供都好分开的独立处理器,或者一组处理器列表,如下:#taskset -c 0,1,2-4 -- myprogram从第0颗开始,以逗号分隔查 应用运维 2023-07-15 竹子爱熊猫
编译安装最新LAMP平台 前言:总的来说,在httpd2.4.16安装时踩到坑了,问题还没解决!后续更上。本章出现的东西基本上OK #cd /usr/local/src1,下载mysql-5-5.45#wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.45-linux2.6-x86_64.tar.gz2,解压# tar zxvf /usr/local/src/my 应用运维 2023-07-15 大白菜程序猿