Istio

istio 1.10学习笔记14: 使用istio实现http服务的JWT身份认证

2021-08-01
Istio

前面一节初步学习了istio安全管理功能中的认证策略,并使用认证策略配置了服务之间的双向TLS,使用认证策略对暴露到集群外部的http服务开启了基于JWT的终端用户认证。本节将对上节配置JWT终端用户认证时用到一些JWT相关知识做一个补充学习。

...

istio 1.10学习笔记13: 使用认证策略设置双向TLS和基本的终端用户认证

2021-07-30
Istio

前面3~12节学习了istio的流量管理功能,包括如何配置请求路由、故障注入、流量转移、流量镜像、设置请求超时和熔断、将服务网格外部流量接入到集群内、控制服务网格的出口流量等。 从本节开始学习istio的安全管理功能,看istio是如何保护服务网格内的微服务的。本节将根据istio官方文档https://istio.io/latest/zh/docs/tasks/security/authentication/authn-policy/中的内容,学习使用istio的认证策略来设置双向TLS和基本的终端用户认证。

...

istio 1.10学习笔记12: Istio Egress Gateway及其使用场景

2021-07-29
Istio

上一节学习了istio服务网格内部访问外部服务的三种方法,推荐使用ServiceEntry将一个外部服务注册到服务网格中的方式,这样服务网格内部的到外部服务的访问流量都是受到istio管理的,但这种方法下访问外部服务的流量都是从内部服务实例所在节点的sidecar代理发出的,这在某些场景下会有一些限制。 例如,一个对安全有严格要求的组织,要求服务网格所有的出站流量必须经过一组专用节点。专用节点运行在专门的机器上,与集群中运行应用程序的其他节点隔离,这些专用节点将专门实施针对出站流量的策略,并且受到比其余节点更严密地监控。另外一个场景是在集群中不是所有节点都可以访问公网(或某个外部IP的),如集群中只有一个节点可以访问公网,所以服务网格内其他节点上的服务实例也就无法访问公网上的外部服务了。在这两个场景中都是因为服务网格内的一部分节点在网络上无法访问外部服务,因此需要有一个在网络上可以访问外部服务的节点作为egress gateway节点,用来引导所有的出站流量,这样也能实现该节点以受控的方式访问外部服务。

...

istio 1.10学习笔记11: Istio流量管理之访问外部服务的三种方法

2021-07-28
Istio

在默认情况下所有istio服务网格内某个服务实例的出战流量都将被重定向到其Envoy Sidecar代理,集群外部URL的可访问性取决于Sizdecar代理的配置。 在默认情况下,isito将Envoy代理配置为允许传递请求到未知服务(未在isito服务发现中注册的服务),这带来了一定的便利性,但一般情况下在生产环境建议配置更为严格的配置。 在实际中,由我们负责开发的部署在服务网格中的服务往往还需要访问一些外部资源,如外部的API、中间件等,这就需要配置从istio服务网格内访问外部服务的方式。

...

istio 1.10学习笔记10: Istio流量管理之流量镜像

2021-07-27
Istio

流量镜像,也叫称为影子流量,是指将实时流量的副本发送到镜像服务。镜像流量发生在主服务的关键请求路径之外。 本节将测试使用istio流量管理中的流量镜像功能。会在k8s的default命名空间内部署httpbin服务的v1和v2两个版本,首先把流量全部路由到httpbin:v1,然后执行规则将一部分流量镜像到v2版本。

...

istio 1.10学习笔记09: Istio流量管理之设置请求超时和熔断

2021-07-26
Istio

前面几节内容我们学习了Istio API资源对象中的虚拟服务VirtualService, 目标规则DestinationRule, Gateway。 使用它们可以实现将集群外部流量(http或tcp)接入到服务网格内部,可以进行一些常见的流量管理功能如: 设置请求路由、故障注入、流量转移(http或tcp)等。 本节我们学习使用istio进行流量管理的另外两个常见功能:设置请求超时和熔断。

...

istio 1.10学习笔记08: Istio流量管理之TCP流量转移

2021-07-25
Istio

上一节我们学习了使用Istio Gateway将集群内的http服务暴露到集群外部。 Istio Gateway在接入集群外部流量时与K8S的Ingress类似istio-ingressgateway组件相当于k8s里的ingress-controller。 Istio Gateway对于K8S的不同之处在于在Istio Gateway资源中只定义对外暴露的端口、协议、域名,对于路由信息需要使用Istio的虚拟服务VirtualService的路由规则来配置,这样就可以将Istio提供的各种各样的功能应用到接入集群的流量上。

...

istio 1.10学习笔记07: 使用Istio Gateway将外部流量接入到服务网格

2021-07-22
Istio

在Kubernetes中提供了Ingress用来接入集群外部的流量,将集群内部的Service暴露到集群外部。 而Istio提供了另一个配置模型Istio Gateway,使用Istio Gateway同样可以将服务暴露到服务器网格之外,它还允许我们将Istio的功能(诸如:监控和路由规则等)应用到进入集群的流量上。

...

istio 1.10学习笔记06: 使用Istio对服务进行流量管理之流量转移

2021-07-20
Istio

上节内容学习了istio流量管理API的两个资源对象虚拟服务VirtualServiceDestinationRule目标规则。这里先复习一下:

  • 虚拟服务是客户端请求服务的地址,通过在虚拟服务上配置路由(route),路由的目标(destination)指向k8s中的Service,即虚拟服务用来配置如何将流量路由到目标地址(如k8s的Service)。 虚拟服务的路由规则可以在流量端口、header 字段、URI 等内容上设置匹配条件,将流量路由到适当的目标;同时还可以在流量上执行一些操作,例如添加删除header、重写URL、为调用这一目标地址的请求设置重试策略等。
  • 目标规则可以为目标地址(如k8s的Service)指定命名的服务子集(例如按版本为给定服务的实例分组,然后可以在虚拟服务的路由规则中使用这些服务子集来控制到不同服务实例的流量); 还可以在调用这个目标服务或特定子集时定制Envoy的流量策略(例如负载均衡策略、TLS安全模式或熔断器设置)。

istio-virtualservices-and-destinationrules.png

...

© 2024 青蛙小白