istio
文章平均质量分 83
对istio的学习
迷茫路人
本身掌握常用框架(ssm) 虽没有做过太多的项目,但是每次都能从项目中感悟一些经验.学而杂,都不太精通,希望接下来自己能够找准一门精通下去。加油!
展开
-
Istio-智能DNS
在k8s中,我们可以使用..svc.cluster.local的方式对服务直接访问,该原理是在集群中部署一个kubeDNS,然后修改为默认的DNS服务器!原创 2022-10-24 11:08:16 · 931 阅读 · 0 评论 -
Istio-sidecar注入原理
Istio的一个亮点就是为每个应用自动添加代理程序,并且采用无代码侵入的方式,这样的好处是,代理与应用进行解耦。原创 2022-10-18 10:29:32 · 608 阅读 · 0 评论 -
Istio—金丝雀升级
Istio本身提供了金丝雀的升级方式,官网也推荐使用此方式升级istio控制器与其代理版本。原创 2022-10-17 14:49:58 · 444 阅读 · 0 评论 -
OpenTelemetry-go的SDK使用方法
2019年5月,OpenCensus 和 OpenTracing形成了 OpenTelemetry(简称 OTel)也就是说,我们在使用链路追踪SDK的时候就需要使用OpenTelemetry的新规范.OpenTelemetry帮我们实现了相应语言的SDK,所以我们只需要进行调用即可.接下来,我们开始对go所对应的SDK进行使用.本文主要根据官方文档实例进行讲解.原创 2022-09-21 11:26:53 · 3264 阅读 · 0 评论 -
istio-k8singress使用istio-ingressgateway实战
k8singress可以被istio中的ingressgateway使用,其原理是,istiod会将ingress资源转换成gateway与virtualservice资源(这两个是istio中的资源).到这里k8s原生ingress暴露实战就结束了,想必还有一个大大的疑问,为什么它监听的是8080端口,为什么不是8082端口或者80端口那?通过上面的信息,我们能够了解到port为80端口,targetPort为8080,当我们创建完上面的资源后,我们可以使用命令查看生成的监听端口信息。原创 2022-08-24 15:03:03 · 1313 阅读 · 0 评论 -
Istio服务发现-资源事件
通过前面几篇文章,我们已经知道了istio服务注册的一个大体流程,但是对于每个资源在变动的时候是如何进行处理的,比如创建一个k8s原生service,istio在监听到事件后该怎么处理,是否需要对其进行转换然后推送到envoy中?让我们带着这些疑问开始对istio中的资源事件进行一一分析....原创 2022-08-10 10:18:37 · 829 阅读 · 0 评论 -
Istio-PilotAgent源码分析
至此agnet流程分析结束,本文还有主要分析了证书的使用,对于status判断,审计,日志等没有进行分析.本文感觉agent的配置有些混乱有些用法重复.可能有同学观察到,SDSserver中有xdsserver,它与xdsproxy有什么不一样的地方嘛?...原创 2022-07-29 13:38:42 · 1015 阅读 · 0 评论 -
Istio-PilotDiscovery服务的启动
istio的代码有些绕,主要表现在handler,它会时不时add一下,所以最后都不知道handler具体调用了哪些.本文对增量更新与全量更新没有分析,能力有限!原创 2022-07-25 17:21:47 · 613 阅读 · 0 评论 -
Istio-PilotDiscovery服务的创建
info在本文中,将对pilotDiscovery服务创建流程进行源码分析具体代码注释请移至pilot-discovery是istio的注册发现中心,可以说它相当于k8s中的kube-apiserver与协调各个组件,相当于指挥部的存在.那么它具体有什么功能那?让我们来罗列一下(内容可能不全,还请补充)我们可以看到返回值是一个Server结构体,它包含了整个discovery运行过程中所需要的服务,配置信息,那么就让我们看一下它都有哪些属性!.........原创 2022-07-18 16:55:23 · 661 阅读 · 0 评论 -
Istio-配置规则监听分发原理
我们对于istio的操作基本上都是通过修改CRD资源来进行实现,无论是istio服务的配置(istiooperators.install.istio.io) 还是流量规则(virtualservices、serviceentries…)接下来让我们走进源码去看看istio对资源是如何进行监听、转换并推送给envoy的.下面是创建virtualservices资源后,istio对其进行响应流程图.:::infoistio中的规则资源对应envoy中的配置是一对多的关系,也就是说istio中的一个规则原创 2022-07-14 16:36:58 · 671 阅读 · 0 评论 -
Envoy学习笔记
根据上面的流程图,我们开始对每个模块进行详解。在讲解之间,我们先了解一下他们的基本意思:支持以下 v3 xDS 资源类型:typeURL的概念 出现在下面,并采用以下形式——例如, 对于资源。在来自 Envoy 的各种请求和管理服务器的响应中,都说明了资源类型 URL。type.googleapis.com/type.googleapis.com/envoy.config.cluster.v3.ClusterCluster比如 type.googleapis.com/envoy.extensions.fi原创 2022-07-11 15:16:59 · 1176 阅读 · 0 评论 -
istio系列:第六章-Telemetry遥测配置
遥测配置可以对mesh网络流量追踪量进行配置,可以过滤特定的应用,可以对遥测后的数据标签进行添加和修改,可以根据选择器禁用某个应用的遥测功能。注意:如果配置命名空间为istio-system,那么使用与所有的命名空间。该命名空间称之为父配置,如果配置中的信息与父配置的信息重叠则优先使用配置中的信息。接下来直接上结构体进行讲解接下来我们一一讲解tracing可以进行配置采样率,过滤工作负载,指定报告发送插件比如zipkin-alternate。Match配置在流量经过应用的何种方向时使用遥测策略有三种方原创 2022-07-06 15:52:29 · 717 阅读 · 0 评论 -
Istio资源修改流程源码分析
在使用过程中,注册中心一般都使用k8s,那么对于istio中的资源是如何进行管理的那?下面让我们一一探索基于K8s的云原生软件最大的特点就是采用CRD的方式将配置注入到K8s中,istio也不例外,比如VirtualService、DestinationRule等。istio对路由规则等实现的原理是,监听K8s中的CRD资源,将其转化为Envoy能够识别的配置信息,发送给envoy这样就能实现路由转发等一系列功能。接下来让我们进入源码阶段进行一一探索该方法由NewServer()->initControll原创 2022-07-04 17:26:04 · 351 阅读 · 0 评论 -
istio系列:第二章-流量路由转发配置详解
下面是VirtualService.yaml对应的结构体接下来让我们细细讲解每个属性的作用标明目的地址,可以是IP、DNS也可以是短域名、服务名(仅用于k8s) 例如reviews(短域名)、reviews.default.svc.cluster.local。对于短域名来说,VirtualService会自动添加后面的服务信息,比如添加命名空间。注意:VirtualService 的 hosts 的短域名填充到的完整域名时,补齐的 Namespace 是VirtualService的Namespace原创 2022-06-20 16:25:13 · 1481 阅读 · 0 评论 -
istio系列:番外二 内网到外网访问配置实例
上一篇番外我们讲解了外网到内网的访问问题,这节让我们掌握一下内网访问外网。为了方便请求,我们采用gateway的方式先请求内网、内网服务再请求外网服务的流程向注册中心注册外部服务,让路由规则等可以像使用内部服务那样使用外部服务number为向注册中心注册的端口号,targetPort为向www.baidu.com请求的端口号这里我们可以看到number配置为8083,含义是请求www.baidu.com这个服务的8083端口这样就完成了一个外网到内网、内网又访问外网的请求。......原创 2022-06-24 10:42:15 · 455 阅读 · 0 评论 -
istio系列:第三章-目的地规则
下面是DestinationRule的具体属性让我们对属性一一分析服务注册表中的服务名称应用的流量策略(负载平衡策略、连接池大小、异常值检测)我们重点关注前两个属性对于负载均衡里的LoadBalancerSettings_Simple有以下集中策略对于LoadBalancerSettings_ConsistentHashLB要复杂一些可以使用基于一致性哈希的负载均衡来提供软基于 HTTP 标头、cookie 或其他的会话亲和性特性。对于LocalityLbSetting来说,我们可以设置错误转移策略原创 2022-06-21 14:35:56 · 407 阅读 · 0 评论 -
istio系列:第一章-核心概念与原理
istio是一个产品,那么这个产品肯定提供了一些功能让用户使用。因为Istio与k8s的高度结合,所以对于这些功能的使用,采用了CRD的方式。用户只需要创建相应的规则资源,istio监听到资源后会进行一些系列的操作比如创建一个路由规则VirtualService,istio监听到该资源后,会将规则解析成Sidecar识别的配置,然后推送给POD中的Sidecar。接下来让我们对Sidecar进行讲解。Sidecar存在于每个POD当中,它有两种安装方式,一种是通过istioctl命令行工具手动注入,另一种是原创 2022-06-17 16:26:30 · 492 阅读 · 0 评论 -
istio系列:第四章-Ingress网关配置
在istio中,同注入pod之间通讯是通过envoy进行路由的,但是普通pod与istio.pod、外网与istio.pod之间的通讯,有该如何进行那?如果使用k8s原生的service可以进行通讯,但是就无法使用istio中的路由转发、流量限制等功能。那么我们既想可以外网访问又可以使用istio中的功能,该怎么办那?Gatway解决了这个问题。Gatway的原理与ingress基本类似,都是在内部部署了一个类似于nginx的组件,解析请求hosts然后转发到POD上。接下来让我们看一下它的具体配置结构S原创 2022-06-22 17:42:38 · 2306 阅读 · 2 评论 -
istio系列:第五章-ServiceEntry内到外的通讯配置
在isito中,我们一般都是通过服务名去注册中心寻找服务,原理类似于springcloud中的nacos。对于服务注册一般都是采用自动发现与注册的方式,但是istio提供了ServiceEntry资源让我们可以手动对服务进行注册。在这里我们想到了一个问题就是那可不可以将外部服务也注册到istio中去哪?答案是可以。接下来就让我们了解一下ServiceEntry的各个属性Hosts定义服务名称,可以是DNS、前缀模糊匹配,用于virtual service中的host等使用表示与服务关联的虚拟IP地址,可原创 2022-06-24 10:42:57 · 782 阅读 · 0 评论 -
istio系列:番外一 外网到内网访问配置实例
由于istio使用envoy进行流量转发、控制的操作,服务A访问服务B时,A将数据发出,Envoy拦截然后根据规则进行转发到B服务,B服务上的Envoy拦截判断然后发送给B。从这里我们可以看到Envoy在通讯中起到了巨大的作用,但是我们想象一下如果一个服务没有Envoy那又该怎么样与有Envoy的服务进行通讯那?在istio中,给我们创建了两个服务,IngressGateway与EgressGateway,这两个服务就是用来完成外部到内部、内部到外部访问的功能。接下来让我们讲解一下IngressGatewa原创 2022-06-23 13:43:40 · 703 阅读 · 0 评论 -
istio系列:第六章-Sidecar代理规则配置
在前面我们学习了流量的转发、过滤等规则,但是这些都是根据host、客户端请求维度对流量进行管理的,在istio1.1版本以后,添加了新的规则Sidecar,该规则在Sidecar的维度对请求进行管理,接下来就让我们看看它到底是什么吧!有一个Sidecar资源时1.1版本后添加的,用来配置Sidecar组件中的规则。另一个是Sidecar组件,由envoy实现,这里希望不要弄混说白了就是,在Sidecar组件上配置一些规则,比如可以设置某个host下的端口为3302的请求全部允许转发,这就相当于,我们配置路由原创 2022-06-27 09:56:37 · 997 阅读 · 0 评论