searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Istio笔记

2023-10-25 07:47:29
7
0

1. 微服务的优势和带来的挑战

1.1 什么是微服务
a. 服务之间有轻量级的通讯机制,通常为REST API;
b. 去中心化的管理机制;
c. 每个服务可以使用不同的编程语言实现,使用不同的数据存储技术;
d. 应用按业务拆分成服务,一个大型应用系统可以由多个独立的服务组成;
e. 各个服务均可独立部署,都有自己的业务逻辑;
f.  服务可被多个应用共享,其他服务可复用一些公共的资源服务。

1.2 微服务的优势
a. 模块化开发,以单个服务为组件进行更新升级,提升系统整体异常稳定性;
b. 模块化开发方便管理,单独团队开发维护,职责分明;
c. 模块复用,公共服务模块可被其他业务模块使用;
d. 系统架构更加分明;
e. 结合CI/CD,实现DevOps;
f.  弹性伸缩,结合服务编排K8S动态HPA;
g. 服务熔断/降级,避免但节点异常雪崩效应,分散故障节点。

1.3 微服务带来的挑战
a. 服务越来越多,配置管理维护复杂;
b. 服务间依赖关系复杂;
c. 服务调用链追踪难;
d. 服务之间的负载均衡;
e. 服务的拓展;
f.  服务监控/日志;
g. 服务熔断/降级;
h. ... 

1.4 什么是微服务治理
Kubernetes中服务治理神器Istio。

2. Istio介绍

2.1 istio
Istio 允许连接、保护、控制和观测微服务,Istio有助于降低部署的复杂性,并减轻开发团队压力。它是一个完全开源的服务网格,可以透明的分层到现有的分布式应用程序上。也是一个平台,包括允许集成到任何日志记录平台、遥测或策略系统的 API。Istio 的多样化功能集使能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。

2.2 service mesh
服务网格Service Mesh通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,如 A/B 测试、金丝雀发布、限流、访问控制和端到端认证等。

Istio 提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。

2.3 istio优势
Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,只需要对服务的代码进行​​一点​​或不需要做任何改动。想要让服务支持 Istio,只需要在环境中部署一个特殊的sidecar 代理,使用Istio控制平面功能配置和管理代理,拦截微服务之间的所有网络通信:

HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡
通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行为进行细粒度控制
可插入的策略层和配置 API,支持访问控制、速率限制和配额
对出入集群入口和出口中所有流量的自动度量指标、日志记录和追踪
通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信
Istio 旨在实现可扩展性,满足各种部署需求

3. Istio核心功能

3.1 流量管理
通过简单的规则配置和流量路由,可以控制服务之间的流量和 API 调用。Istio 简化了断路器、超时和重试等服务级别属性的配置,并且可以轻松设置 A/B测试、金丝雀部署和基于百分比的流量分割的分阶段部署等重要任务。

3.2 安全
Istio 的安全功能使开发人员可以专注于应用程序级别的安全性。Istio 提供底层安全通信信道,并大规模管理服务通信的认证、授权和加密。使用Istio,服务通信在默认情况下是安全的,允许您跨多种协议和运行时一致地实施策略——所有这些都很少或根本不需要应用程序更改。

3.3 可观察性
Istio 强大的追踪、监控和日志记录可深入了解服务网格部署。通过 Istio 的监控功能,可以真正了解服务性能如何影响上游和下游的功能,而其自定义仪表板可以提供对所有服务性能的可视性。

Istio 的 Mixer 组件负责策略控制和遥测收集。它提供后端抽象和中介,将 Istio 的其余部分与各个基础架构后端的实现细节隔离开来,并为运维提供对网格和基础架构后端之间所有交互的细粒度控制。

3.4 平台支持
stio 是独立于平台的,旨在运行在各种环境中,包括跨云、内部部署、Kubernetes、Mesos 等。

4. Istio架构和组件

Istio 服务网格逻辑上分为数据平面和控制平面。数据平面由一组以 sidecar 方式部署的智能代理(​​Envoy​​​)组成。这些代理可以调节和控制微服务及 ​​Mixer​​ 之间所有的网络通信。控制平面负责管理和配置代理来路由流量。此外控制平面配置 Mixer 以实施策略和收集遥测数据。

4.1 Envoy
Istio使用​​Envoy​​代理的扩展版本,Envoy用于调解服务网格中所有服务的所有入站和出站流量。Envoy 的许多内置功能被 Istio 发扬光大,例如:动态服务发现、负载均衡、TLS 终止、HTTP/2 & gRPC 代理等。Envoy 被部署为 sidecar,和对应服务在同一个 Kubernetes pod 中。这允许 Istio 将大量关于流量行为的信号作为​​属性​​​提取出来,而这些属性又可以在 ​​Mixer​​ 中用于执行策略决策,并发送给监控系统,以提供整个网格行为的信息。Sidecar 代理模型还可以将 Istio 的功能添加到现有部署中,而无需重新构建或重写代码。可以阅读更多来了解为什么我们在​​设计目标​​中选择这种方式。

4.2 Mixer
​​Mixer​​​ 是一个独立于平台的组件,负责在服务网格上执行访问控制和使用策略,并从 Envoy 代理和其他服务收集遥测数据。代理提取请求级​​属性​​​,发送到 Mixer 进行评估。Mixer 中包括一个灵活的插件模型,使其能够接入到各种主机环境和基础设施后端,从这些细节中抽象出 Envoy 代理和 Istio 管理的服务。


4.3 Pilot
​​Pilot​​ 为 Envoy sidecar提供服务发现功能,为智能路由(例如 A/B 测试、金丝雀部署等)和弹性(超时、重试、熔断器等)提供流量管理功能。它将控制流量行为的高级路由规则转换为特定于 Envoy 的配置,并在运行时将它们传播到 sidecar。

Pilot 将平台特定的服务发现机制抽象化并将其合成为符合 ​​Envoy 数据平面 API​​ 的任何 sidecar 都可以使用的标准格式。这种松散耦合使得 Istio 能够在多种环境下运行(例如,Kubernetes、Consul、Nomad),同时保持用于流量管理的相同操作界面。

4.4 Citadel
​​Citadel​​​ 通过内置身份和凭证管理赋能强大的服务间和最终用户身份验证,可用于升级服务网格中未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。

4.5 Galley
Galley 代表其他的 Istio 控制平面组件,用来验证用户编写的 Istio API 配置。随着时间的推移,Galley 将接管 Istio 获取配置、 处理和分配组件的顶级责任。它将负责将其他的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节中隔离开来。

 

0条评论
作者已关闭评论
z****n
2文章数
0粉丝数
z****n
2 文章 | 0 粉丝
z****n
2文章数
0粉丝数
z****n
2 文章 | 0 粉丝
原创

Istio笔记

2023-10-25 07:47:29
7
0

1. 微服务的优势和带来的挑战

1.1 什么是微服务
a. 服务之间有轻量级的通讯机制,通常为REST API;
b. 去中心化的管理机制;
c. 每个服务可以使用不同的编程语言实现,使用不同的数据存储技术;
d. 应用按业务拆分成服务,一个大型应用系统可以由多个独立的服务组成;
e. 各个服务均可独立部署,都有自己的业务逻辑;
f.  服务可被多个应用共享,其他服务可复用一些公共的资源服务。

1.2 微服务的优势
a. 模块化开发,以单个服务为组件进行更新升级,提升系统整体异常稳定性;
b. 模块化开发方便管理,单独团队开发维护,职责分明;
c. 模块复用,公共服务模块可被其他业务模块使用;
d. 系统架构更加分明;
e. 结合CI/CD,实现DevOps;
f.  弹性伸缩,结合服务编排K8S动态HPA;
g. 服务熔断/降级,避免但节点异常雪崩效应,分散故障节点。

1.3 微服务带来的挑战
a. 服务越来越多,配置管理维护复杂;
b. 服务间依赖关系复杂;
c. 服务调用链追踪难;
d. 服务之间的负载均衡;
e. 服务的拓展;
f.  服务监控/日志;
g. 服务熔断/降级;
h. ... 

1.4 什么是微服务治理
Kubernetes中服务治理神器Istio。

2. Istio介绍

2.1 istio
Istio 允许连接、保护、控制和观测微服务,Istio有助于降低部署的复杂性,并减轻开发团队压力。它是一个完全开源的服务网格,可以透明的分层到现有的分布式应用程序上。也是一个平台,包括允许集成到任何日志记录平台、遥测或策略系统的 API。Istio 的多样化功能集使能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。

2.2 service mesh
服务网格Service Mesh通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,如 A/B 测试、金丝雀发布、限流、访问控制和端到端认证等。

Istio 提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。

2.3 istio优势
Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,只需要对服务的代码进行​​一点​​或不需要做任何改动。想要让服务支持 Istio,只需要在环境中部署一个特殊的sidecar 代理,使用Istio控制平面功能配置和管理代理,拦截微服务之间的所有网络通信:

HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡
通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行为进行细粒度控制
可插入的策略层和配置 API,支持访问控制、速率限制和配额
对出入集群入口和出口中所有流量的自动度量指标、日志记录和追踪
通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信
Istio 旨在实现可扩展性,满足各种部署需求

3. Istio核心功能

3.1 流量管理
通过简单的规则配置和流量路由,可以控制服务之间的流量和 API 调用。Istio 简化了断路器、超时和重试等服务级别属性的配置,并且可以轻松设置 A/B测试、金丝雀部署和基于百分比的流量分割的分阶段部署等重要任务。

3.2 安全
Istio 的安全功能使开发人员可以专注于应用程序级别的安全性。Istio 提供底层安全通信信道,并大规模管理服务通信的认证、授权和加密。使用Istio,服务通信在默认情况下是安全的,允许您跨多种协议和运行时一致地实施策略——所有这些都很少或根本不需要应用程序更改。

3.3 可观察性
Istio 强大的追踪、监控和日志记录可深入了解服务网格部署。通过 Istio 的监控功能,可以真正了解服务性能如何影响上游和下游的功能,而其自定义仪表板可以提供对所有服务性能的可视性。

Istio 的 Mixer 组件负责策略控制和遥测收集。它提供后端抽象和中介,将 Istio 的其余部分与各个基础架构后端的实现细节隔离开来,并为运维提供对网格和基础架构后端之间所有交互的细粒度控制。

3.4 平台支持
stio 是独立于平台的,旨在运行在各种环境中,包括跨云、内部部署、Kubernetes、Mesos 等。

4. Istio架构和组件

Istio 服务网格逻辑上分为数据平面和控制平面。数据平面由一组以 sidecar 方式部署的智能代理(​​Envoy​​​)组成。这些代理可以调节和控制微服务及 ​​Mixer​​ 之间所有的网络通信。控制平面负责管理和配置代理来路由流量。此外控制平面配置 Mixer 以实施策略和收集遥测数据。

4.1 Envoy
Istio使用​​Envoy​​代理的扩展版本,Envoy用于调解服务网格中所有服务的所有入站和出站流量。Envoy 的许多内置功能被 Istio 发扬光大,例如:动态服务发现、负载均衡、TLS 终止、HTTP/2 & gRPC 代理等。Envoy 被部署为 sidecar,和对应服务在同一个 Kubernetes pod 中。这允许 Istio 将大量关于流量行为的信号作为​​属性​​​提取出来,而这些属性又可以在 ​​Mixer​​ 中用于执行策略决策,并发送给监控系统,以提供整个网格行为的信息。Sidecar 代理模型还可以将 Istio 的功能添加到现有部署中,而无需重新构建或重写代码。可以阅读更多来了解为什么我们在​​设计目标​​中选择这种方式。

4.2 Mixer
​​Mixer​​​ 是一个独立于平台的组件,负责在服务网格上执行访问控制和使用策略,并从 Envoy 代理和其他服务收集遥测数据。代理提取请求级​​属性​​​,发送到 Mixer 进行评估。Mixer 中包括一个灵活的插件模型,使其能够接入到各种主机环境和基础设施后端,从这些细节中抽象出 Envoy 代理和 Istio 管理的服务。


4.3 Pilot
​​Pilot​​ 为 Envoy sidecar提供服务发现功能,为智能路由(例如 A/B 测试、金丝雀部署等)和弹性(超时、重试、熔断器等)提供流量管理功能。它将控制流量行为的高级路由规则转换为特定于 Envoy 的配置,并在运行时将它们传播到 sidecar。

Pilot 将平台特定的服务发现机制抽象化并将其合成为符合 ​​Envoy 数据平面 API​​ 的任何 sidecar 都可以使用的标准格式。这种松散耦合使得 Istio 能够在多种环境下运行(例如,Kubernetes、Consul、Nomad),同时保持用于流量管理的相同操作界面。

4.4 Citadel
​​Citadel​​​ 通过内置身份和凭证管理赋能强大的服务间和最终用户身份验证,可用于升级服务网格中未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。

4.5 Galley
Galley 代表其他的 Istio 控制平面组件,用来验证用户编写的 Istio API 配置。随着时间的推移,Galley 将接管 Istio 获取配置、 处理和分配组件的顶级责任。它将负责将其他的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节中隔离开来。

 

文章来自个人专栏
/
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0