术语表

E | M | P | T | | | | | | | | |

E

Envoy

Envoy 是在 Istio 里使用的高性能代理,用于为所有服务网格里的服务调度进出的流量。 了解更多关于 Envoy

M

Mixer

Mixer 是 Istio 里的一个组件,它负责加强服务网格里的访问控制和使用策略。它还负责收集来自 envoy 和其他服务的遥测数据。 了解更多关于 Mixer

Mixer Handler

Mixer handler 相当于配置完备的 mixer 适配器。一个适配器二进制文件可以被不同配置使用,这些配置也可以称为 handler。在 mixer 运行时,mixer 将 mixer instance 路由到一个或多个 handler。

Mixer Instance

一个 mixer instance 代表一组 mixer 数据,这些数据通过检查一组请求的属性和应用操作者提供的配置产生。Mixer instance 会被发送到对应的 mixer handler,并随之发送到基础设施后端服务。

P

Pilot

Pilot 是 Istio 里的一个组件,它控制 Envoy 代理,负责服务发现、负载均衡和路由分发。

T

TLS 源

TLS 源 (TLS origination) 出现在:当 Istio 代理(sidecar 或出口网关)配置为接受未加密的内部 HTTP 连接,加密请求,然后将它们转发到使用简单或相互 TLS 保护的 HTTPS 服务器时。 这与 TLS 终止相反,TLS 终止出现在一个入口代理接受 TLS 连接,解密这个连接,并将未加密的请求传递给内部网格服务。

双向 TLS 认证

双向 TLS 通过内置身份和凭证管理,提供强大的服务到服务身份验证。 了解更多关于双向 TLS 身份验证

安全命名

安全命名提供一个服务名工作负载实例主体的映射,这个工作负载实例被授权运行一个工作负载实例,实现一个服务

属性

属性控制着在网格里面运行的服务的运行时行为。属性是一堆有名字的、有类型的元数据,它们描述着入口和出口流量,以及这些流量存在的环境。一个 Istio 属性承载着一些特点的信息,比如 API 请求的错误码,或者一个 API 请求的耗时,又或者一个 TCP 连接的源 IP 地址,如下:

request.path: xyz/abc
request.size: 234
request.time: 12:34:56.789 04/17/2017
source.ip: 192.168.0.1
destination.workload.name: example

属性在 Istio 的 策略与遥测特性里面会用到。

工作负载

工作负载是通过操作部署的二进制文件,用于在 Istio 里提供某种功能。工作负载有名字,命名空间和唯一的 id。工作负载的属性可以通过下面这些属性在策略和遥测配置功能里获取:

  • source.workload.name, source.workload.namespace, source.workload.uid
  • destination.workload.name, destination.workload.namespace, destination.workload.uid

在 Kubernetes里,一个工作负载通常对应一个 Kubernetes 的 deployment,然后一个工作负载的实例对应一个 deployment 管理的其中一个 pod。

工作负载实例

工作负载实例是工作负载的一个二进制实例化对象。一个工作负载实例可以开放零个或多个服务 endpoint,也可以消费零个或多个服务

工作负载实例具有许多属性:

  • 名称和命名空间
  • 唯一的 ID
  • IP 地址
  • 标签
  • 主体

通过访问 [source.*destination.* 下面的属性],在 Istio 的策略和遥测配置功能中,可以用到这些属性。

工作负载实例主体

工作负载实例名是工作负载实例的可验证权限。Istio 的服务到服务身份验证用于生成工作负载名。在默认情况下,工作负载名符合 SPIFFE ID 格式。

通过访问 source.principaldestination.principal 属性,在策略和遥测配置中可以使用工作负载实例主体。

微分段

微分段是一种安全性技术,它通过在云部署里面创建安全区,使组织之间可以将工作负载彼此隔离,保证组织之间的安全性。

服务

服务是在服务网格里划定的一个行为相似的组。服务通过服务名进行标识,而且服务名在 Istio 的策略里(如负载均衡、路由等)会应用到。 一个服务通常有一个或多个服务 endpoint 实现,且会存在多个服务版本

服务 Endpoint

服务 endpoint 是一个服务的网络可达表现形式。服务 endpoint 由工作负载实例暴露。并不是所有的服务都有服务 endpoint。

服务名

服务名是服务唯一的名字,是服务在服务网格里的唯一标识。 一个服务不应该被重命名,或者维护他的标识,每一个服务名都是唯一的。 一个服务有多个版本,但是服务名是与版本独立的。

服务操作者

服务操作者是在服务网格里管理服务的代理,它们通过操纵配置状态并通过各种仪表板监视服务的运行状况来管理这些服务。

服务注册表

Istio 维护了一个内部服务注册表 (service registry),它包含在服务网格中运行的一组服务及其相应的服务 endpoint。 Istio 使用服务注册表生成 Envoy 配置。 Istio 不提供服务发现,尽管大多数服务都是通过 pilot adapter 自动加入到服务注册表里的,而且这反映了底层平台(Kubernetes, Consul, plain DNS)的已发现的服务。 还有就是,可以使用 ServiceEntry 配置手动进行注册。

服务消费者

服务消费者是使用服务的代理。

服务版本

服务版本区分服务的不同变形,通常由一个工作负载的不同版本支持。 多个服务版本使用的场景通常有 A/B 测试、金丝雀滚动发布等等。每一个服务都有一个默认的版本。

服务生产者

创建服务的代理。

服务网格

服务网格是一套共享的名称和标识,它们让通用策略实施和遥测收集成为可能。服务名工作负载实例主体在服务网格里是唯一的。

源服务

源服务 (source) 是 envoy 代理的下游客户端。 在服务网格里,一个源服务通常是一个工作负载,但是入口流量的源服务有可能包含其他客户端,例如浏览器,或者一个移动应用。

目标服务

目标服务 (destination) 是 envoy 代表一个源服务工作负载与之打交道的远程上游服务。这些上游服务可以有多个服务版本,envoy 根据路由选择对应的版本。

适配器

适配器(adapter)是 Istio 的策略与遥测组件: Mixer 里的插件。适配器使 Mixer 可以通过接口使用开放式基础设施后端服务,去为 Istio 提供核心功能,比如日志、监控、配额、ACL 检查等等。

运行时确切生效的适配器是通过配置指定的,而且适配器很容易进行扩展来适配一个新的或者自定义的基础设施后端服务。

了解更多关于适配器