
Istio学习
文章平均质量分 80
Istio学习
Micky_Yang
永远别轻视技术,永远也别轻视自己
展开
-
Istio的JWT认证授权
一、理解JWT JWT(Json Web Token)是一种多方传递可信JSON数据的方案,一个JWT token由.分隔的三部分组成:{Header}.{Payload}.{Signature},其中Header是Base64编码的JSON数据,包含令牌类型typ、签名算法alg以及密钥ID kid等信息;Payload是需要传递的claims数据,也是Base64编码的JSON数据,其中有些字段是JWT标准已经有了的字段,如:exp、iat、iss、sub和aud等等,也可以根据需求添加自定义字段;原创 2021-08-15 15:17:00 · 1468 阅读 · 0 评论 -
Istio的mTLS认证
一、理解mTLS TLS在web端使用的非常广泛,针对传输的内容进行加密,能够有效的防止中间人攻击。双向TLS(Two way TLS/Mutual TLS,简称mTLS)的主要使用场景是在B2B和Server-toServer的场景中,以支持服务与服务之间的身份认证与授权。 mTLS主要负责服务与服务之间传输层面的认证,具体实现在sidecar中,在具体进行请求时,讲经历如下过程: 1)客户端发出的请求将被发送到客户端sidecar 2)客户端sidecar与服务端sidecar开原创 2021-08-14 16:04:44 · 3457 阅读 · 0 评论 -
Istio的授权策略
一、理解授权 为了保障集群中的服务的安全,Istio提供了一系列开箱即用的安全机制,对服务进行访问控制就是其中非常重要的一个部分,这个功能被称为授权。授权功能会按照预定义的配置针对特定的请求进行匹配,匹配成功之后会执行对应的动作,例如放行请求或者拒绝请求。 由于作用的对象是服务,因此,授权功能主要适用于四层至七层(相比较而言,传统的防火墙主要用于二至四层),例如gRPC、HTTP、HTTPS和HTTP2以及TCP协议等等,对基于这些协议的请求进行授权检测,Istio都可以提供原生支持。 从数据流原创 2021-08-07 19:11:42 · 2837 阅读 · 0 评论 -
Istio的分布式追踪Jaeger
一、认识分布式追踪 相比传统的"巨石"应用,微服务的一个主要变化是将应用中的不同模块拆分为了独立的进程。在微服务架构下,原来进程内的方法调用成为了跨进程的远程方法调用。相对于单一进程内的方法调用而言,跨进程调用的调试和故障分析是非常困难的,难以适应传统的代码调试程序或者日志打印来对分布式的调用过程进行查看和分析。 如上图右边所示,微服务架构中系统各个微服务之间存在复杂的调用关系。一个来自客户端的请求在其业务处理中经过了多个微服务进程。我们如果想要对该请求的端到端调用过程进行完整的分析,则必须将原创 2021-08-01 18:14:57 · 4663 阅读 · 0 评论 -
Istio的监控组件Prometheus
一、认识Prometheus Prometheus是一款开源的、自带时序数据库的监控告警系统。目前,Prometheus已经成为Kubernetes集群中监控告警系统的标配。Prometheus的架构如下图所示: Prometheus通过规则对Kubernetes集群中的数据源做服务发现(Service Dicovery),再从数据源中抓取数据,保存在它的时序数据库TSDB中,再根据配置的告警规则,将数据推送给AlterManager服务,做告警信息的推送。同时,Prometheus中也暴露了H原创 2021-08-01 17:23:55 · 5167 阅读 · 0 评论 -
Istio的可视化组件Kiali
一、认识Kiali 单体应用使用微服务架构拆分成了许多微服务的组合。服务的数量显著增加,就需要了解服务之间的通信模式,例如容错(通过超时、重试、断路等等)以及分布式跟踪,以便能够看到服务调用的去向。服务网格可在平台级别提供这些服务,并使应用程序编写者从以上繁重的通信模式中解放出来。路由决策在网格级别完成。Kiali与Istio合作,可视化服务网格拓扑、断路器和请求率等功能。Kiali还包括Jaeger Tracing,可以提供开箱即用的分布式跟踪功能。 Kiali提供以下功能: 1)服务拓扑原创 2021-07-31 18:30:22 · 5453 阅读 · 0 评论 -
Istio的ServiceEntry
一、理解ServiceEntry Istio支持对接Kubernetes、Consul等多种不同的注册中心,控制平面Pilot启动时,会从指定的注册中心获取Service Mesh集群的服务信息和实例列表,并将这些信息进行处理和转换,然后通过xDS下发给对应数据平面,保证服务之间可以互相发现并正常访问。 同时,由于这些服务和实例信息都来源于网格内部,Istio无法从注册中心直接获取网格外的服务,导致不利于网格内部与外部服务之间的通信和流量管理。为此,Istio引入了ServiceEntry实现对外通原创 2021-07-31 18:05:38 · 4623 阅读 · 0 评论 -
Istio的流量镜像
一、理解流量镜像 流量镜像(Mirroring/traffic-shadow),也叫作影子流量,是指通过一定的配置将线上的真实流量复制一份到镜像服务中去,我们通过流量镜像转发以达到在不影响线上服务的情况下对流量或请求内容做具体分析的目的,它的设计思想是只做转发而不接收响应(fire and forget)。这个功能在传统的微服务架构里是很难做到的,一方面,传统服务之间的通讯是由SDK支持的,那么对流量镜像就代表着在业务服务逻辑中有着镜像逻辑相关代码的侵入,这会影响业务服务的代码的整洁性。另一方面,流量镜原创 2021-07-25 17:51:13 · 5262 阅读 · 0 评论 -
Istio的故障注入
一、理解故障注入 在一个微服务架构的系统中,为了让系统达到较高的健壮性要求,通常需要对系统做定向错误测试。比如电商中的订单系统、支付系统等若出现故障那将是非常严重的生产事故,因此必须在系统设计前期就考虑多样性的异常故障并对每一种异常设计完善的恢复策略或优雅的回退策略,尽全力规避类似事故的发生,使得当系统发生故障时依然可以正常运作。而在这个过程中,服务故障模拟一直以来是一个非常繁杂的工作,于是在这样的背景下就衍生出了故障注入技术手段,故障注入是用来模拟上游服务请求响应异常行为的一种手段,通过人为模拟上游服原创 2021-07-25 17:12:44 · 5470 阅读 · 3 评论 -
Istio的熔断
一、理解熔断 熔断(Circuit Breaker),原是指当电流超过规定值时断开电路,进行短路保护或严重过载时的一种保护机制。后来熔断也广泛应用于金融领域,指当股指波幅达到规定的熔断点时,交易所为控制风险采取的暂停交易措施。而在软件领域,熔断则是指当服务达到系统负载阈值时,为避免整个软件系统不可用,而采取的一种主动保护措施。对于微服务系统而言,熔断尤为重要,它可以使系统在遭遇某些模块故障时,通过服务降级等方式来提高系统核心功能的可用性,得以应对来自故障、潜在峰值或其他未知网络因素的影响。二、配置熔原创 2021-07-24 18:55:16 · 4693 阅读 · 0 评论 -
Istio超时与重试
一、理解超时与重试 超时的原理是,如果程序请求长时间无法返回结果,则需要设置超时机制,超过设置的时间则返回错误的信息;这样做既可以节约等待时消耗的资源,也可以避免由于级联错误引起的一系列问题。设置超时的方式也有很多种,比如通过修改代码在应用程序侧设置请求超时时间,但是这样非常的不灵活,也很容易出现遗漏的现象,而Istio则可以在基础设施层解决这一问题。 重试的原理是,在网络环境不稳定的情况下,会出现暂时的网络不可达的现象,这时就需要重试机制,通过多次的尝试来获取正确的返回信息。 二、配置超时原创 2021-07-24 18:13:14 · 5222 阅读 · 4 评论 -
Istio的Ingress与Egress网关
一、认识Ingress 在Istio的流量控制中,Ingress可以理解为前端应用的一个代理网格,当被转发到代理容器的流量到达服务前,会先经过该服务的Ingress Gateway,之后;再有Ingress Gateway转发至后端的VirtualService资源对象上。 二、Ingress实验1)部署httpbin服务➜ cat ../../samples/httpbin/httpbin.yaml # Copyright Istio Authors## Licensed und原创 2021-07-03 18:41:20 · 6749 阅读 · 1 评论 -
Istio流量控制资源对象
一、VirtualService资源 VirtualService(虚拟服务)在增强Istio流量管理的灵活性和有效性方面发挥着至关重要的作用。Virtualservice由一组路由规则组成,用于对服务实体(在Kubernetes中对应为Pod)进行寻址。如果有流量命中了某条路有规则,就会将其发送到对应的服务或者服务的一个版本/子集。 VirtualService描述了用户可寻址目标到网格内实际工作负载之间的映射。可寻址的目标服务使用hosts字段来指定,而网格内的实际负载由每个route配置项中d原创 2021-07-03 16:30:10 · 3900 阅读 · 2 评论 -
Istio安装与Bookinfo部署
一、下载Istio软件包➜ ~ curl -L https://istio.io/downloadIstio | sh - ➜ ~ ls -l istio-1.10.1 total 48-rw-r--r-- 1 jyy staff 11348 6 5 04:44 LICENSE-rw-r--r-- 1 jyy staff 5866 6 5 04:44 README.mddrwxr-x--- 3 jyy staff 96原创 2021-06-19 17:11:53 · 3985 阅读 · 0 评论 -
Service Mesh与Istio初识
一、Service Mesh介绍 服务网格(Service Mesh)是处理服务间通信的基础设施层。它负责构成现代云原生应用程序的复杂服务拓扑来可靠的交付请求。在实践中,Service Mesh通常以轻量级网络代理阵列的形式实现,这些代理与应用程序代码部署在一起,对应用程序来说无需感知代理的存在。 如果用一句话来解释什么是Service Mesh,可以将它比作是应用程序或者说微服务间的TCP/IP,负责服务之间的网络调用、限流、熔断和监控。对于编写应用程序来说一般无须关心TCP/IP这一层(比如说通原创 2021-06-13 16:35:02 · 3851 阅读 · 1 评论