术语表
A | C | D | E | F | G | H | I | M | N | O | P | R | S | T | W | Z | 数 | 自
A
Ambient
Ambient 指的是一种数据面模式, 由每个节点以及可选的按命名空间的组件构成。 Ambient 模式是基于 Sidecar 部署的替代方案。
Annotation
注解(Annotation)指的是附加到 Pod 等某个资源的 Kubernetes 注解。 有关 Istio 专用的有效注解列表,请参见 Resource Annotations。
Attribute
属性控制着网格中服务运行时的行为,是一堆有名字的、有类型的元数据,它们描述了 Ingress 和 Egress 流量,以及这些流量所在的环境。 一个 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 的策略和遥测功能会用到属性。
C
Cluster
集群是运行容器化应用程序的一组计算节点。 通常,组成集群的计算节点彼此可以直接连接。 集群通过规则或策略限制外部访问。
Control Plane
控制平面是一组系统服务,这些服务配置网格或者网格的子网来管理工作负载实例之间的通信。 单个网格中控制平面的所有实例共享相同的配置资源。
CRD
自定义资源定义 (CRD) 是默认的 Kubernetes API 扩展。Istio 使用 Kubernetes CRD API 来配置,即使是在非 Kubernetes 环境下部署的 Istio 也是如此。
D
Data Plane
数据平面是网格的一部分,直接控制工作负载实例之间的通信。Istio 的数据平面使用智能 Envoy 代理部署成 Sidecar 去调节和控制服务网格中发送和接受的流量。
Destination
目标服务 (Destination) 是 Envoy 代表一个源服务工作负载与之打交道的远程上游服务。 这些上游服务可以有多个服务版本,Envoy 根据路由选择对应的版本。
E
Envoy
Envoy 是在 Istio 里使用的高性能代理,用于为所有服务网格里的服务调度进出的流量。 了解更多关于 Envoy。
External Control Plane
External Control Plane 是从外部管理运行在自己的 Cluster 或者其他基础设施中的网格工作负载的 Control Plane。 Control Plane 可以部署在一个 Cluster 中,尽管不能部署在它所控制的网格的一部分 Cluster 中。 它的目的是将 Control Plane 与网格的 Data Plane 完全分离。
F
Failure Domain
故障域是计算环境中物理或者逻辑的一部分,当关键设备或服务遇到问题时,它也会受到负面影响。
对于 Istio 部署而言,故障域可能包含平台中的多个可用性区域。
G
Gateway
网关是部署在网格边缘的独立 Istio 代理。 网关用于将流量路由进或者路由出网格。
Istio Gateway
CR 用于配置网关部署的公开端口。
H
HBONE
基于 HTTP 的上层网络环境(HTTP-Based Overlay Network Environment,HBONE) 是在 Istio 组件之间使用的安全隧道化协议。在 HBONE 中,用户流量通过 mTLS 身份验证加密的 HTTP CONNECT
隧道进行安全的隧道传输。
I
Identity
身份是基本的安全基础结构概念。Istio 的身份模型是基于第一阶级的工作负载身份。在服务之间的通信开始时,双方使用身份信息交换证书来实现相互认证的目的。
客户端根据其安全的命名信息检查服务器的身份,以便确定服务器是否被授权运行服务。
服务器检查客户端的身份,以确定客户端可以访问的信息。服务器基于客户端的身份,来确定配置的策略。
通过使用身份,服务器可以审核访问信息的时间和特定客户端访问的信息内容。还可以根据客户使用的服务向他们收费,并拒绝任何未付款的客户访问服务。
Istio 身份模型非常灵活,粒度足以代表单个用户、单个服务,或者一组服务。在没有第一阶级服务身份的平台,Istio 可以使用其他的身份为服务实例进行分组,例如服务名称。
Istio 在不同的平台上支持以下服务身份:
Kubernetes: Kubernetes 服务账户
GKE/GCE: GCP 服务账户
GCP: GCP 服务账户
AWS: AWS IAM 用户/角色 账户
本地 (非 Kubernetes):用户账户、客户服务账户、服务名称、Istio 服务账户或者 GCP 服务账户。 客户服务账户指现有的服务账户,就像客户身份目录中管理的身份。
通常,信任域指定身份所属的网格。
Injection
注入或 Sidecar 注入是指在创建时使用 动态 Webhook 来修改 Pod 规范。 注入可用于为网格服务添加 Envoy Sidecar 配置或配置网关 的 Envoy 代理。
有关更多信息,请参阅安装 Sidecar。
IO
请参阅 Istio Operator Custom Resource。
IOP
请参阅 Istio Operator Custom Resource。
Istio Operator Custom Resource
Istio Operator Custom Resource 通常使用缩写 IOP
或 IO
来表示, 指的是在使用 istioctl install
命令或集群内 Operator 进行安装时用于配置 Istio 安装的自定义资源。
Istiod
Istiod 组件是单体 Control Plane 二进制的组合体,封装了 Pilot、Galley、Citadel 和 Sidecar 注入器的功能。
M
Managed Control Plane
托管控制平面是一个为客户提供管理的控制平面。 托管控制平面降低了用户部署的复杂性,并通常保证一定水平的性能和可用性。
Mesh Federation
网格联邦是在网格之间公开服务的一种行为,并且能跨越网格边界进行通信。每一个网格或许会公开其一部分的服务,使一个或多个其他网格使用此公开的服务。 您可以使用网格联邦来启用网格之间的通信,可参阅多个网格部署。
Micro-Segmentation
Micro-segmentation 是一种安全技术,可在云部署中创建安全区域,使组织能够将工作负载彼此隔离,并分别保证它们的安全。
Multi-Mesh
Multi-mesh 是由两个或多个服务网格组成的部署模型。 每个网格都有独立的命名管理和身份管理,但是您可以通过网格联邦来暴露网格之间的服务, 最终构成一个多网格部署。
Multicluster
Multicluster 是一种部署模型,由具有多个集群的网格组成。
Mutual TLS Authentication
双向 TLS 通过内置身份和凭证管理,提供强大的服务到服务身份验证。 了解更多关于双向 TLS 身份验证。
N
Namespace Sameness
在多集群网格中,适用命名空间相同规则, 即所有具有相同给定名称的命名空间都被认为是同一个命名空间。 如果多个集群包含具有相同命名空间名称的 Service
,那这些 Service
将被识别为单个组合服务。 默认情况下,对于给定的服务,流量是跨网格中的所有集群进行负载均衡的。
与端口号匹配的端口也必须具有相同的端口名称,才会被视为组合的 service port
。
Network
Istio使用基于一般连接性的网络简化定义。 如果工作负载实例在没有网关的情况下能够直接通信,那么它们就会在同一个网络上。
O
Operator
Operator 是打包、部署和管理 Kubernetes 应用程序的一种方法。 有关更多信息,请参见 Operator 模式。
P
Pilot
Pilot 是 Istio 里的一个组件,它控制 Envoy 代理,负责服务发现、负载均衡和路由分发。
Pod
Pod 中包含了一个或多个共享存储和网络的容器(例如 Docker 容器), 以及如何运行容器的规范。 Pod 是 Istio 的 Kubernetes 部署中的一个 工作负载实例。
Primary Cluster
主集群是具有控制平面 的集群。 一个网格可以有一个以上的主集群,以用于 HA 或需要低延迟的场景。 主集群可以充当从集群的控制平面。
Proxyless
Proxyless(无代理)是指一种不使用代理运行的数据平面模式, 这种模式直接将网格功能移植到应用程序中。 目前,Istio 支持 Proxyless gRPC 模式, 可以在 gRPC 框架中启用网格功能。
R
Remote Cluster
从集群是一个连接到集群外部 控制平面 的集群。 从集群可以连接到 主集群 的控制平面,或连接到一个 外部控制平面。
Routing Rules
您在虚拟服务中配置的路由规则,遵循服务网格定义了请求的路径。 使用路由规则,您可以定义将寻址到虚拟服务主机的流量路由到指定目标的工作负载。 路由规则使您可以控制流量,以实现如 A/B 测试、金丝雀发布以及按百分比分配流量的分阶段发布等任务。
S
Secure Naming
Secure Naming 提供一个 service name 到 workload instance principals 的映射,这个工作负载实例被授权运行一个 workload instances,实现一个 service。
Service
使用服务名称标识一组具有关联行为的服务服务网格,并使用这些名称应用 Istio 策略(例如负载均衡和路由)。 服务通常由一个或多个服务 Endpoint 实现,并且或许包含多个服务版本。
Service Consumer
服务消费者是使用 service 的代理。
Service Endpoint
Service Endpoint 是一个 Service 的网络可达表现形式。 Service Endpoint 由工作负载实例暴露,但并不是所有的服务都有 Service Endpoint。
Service Mesh
服务网格 (简称 网格 )是一个可管理、可观测以及支持工作负载实例之间进行安全通信的基础设施层。
在一个网格中,服务名称与命名空间组合具有唯一性。例如,在一个多集群的网格中,cluster-1
集群的 foo
命名空间中的 bar
服务和 cluster-2
集群的 foo
命名空间中的 bar
服务被认为是同一个服务。
由于服务网格会共享这种标识,因此同一服务网格内的工作负载实例可以相互认证通信。
Service Name
Service Name 是 Service 唯一的名字, 是 Service 在服务网格里的唯一标识。 一个服务不应该被重命名,或者维护它的标识,每一个服务名都是唯一的。 一个服务有多个版本,但是服务名是与版本独立的。
Service Operator
Service Operator 是在服务网格里管理 Service 的代理,它们通过操纵配置状态并通过各种仪表板监视服务的运行状况来管理这些服务。
Service Producer
创建服务的 pilot-agent。
Service Registry
Istio 维护了一个内部服务注册表 (service registry),它包含在服务网格中运行的一组服务及其相应的服务 endpoints。 Istio 使用服务注册表生成 Envoy 配置。
Istio 不提供服务发现, 尽管大多数服务都是通过 Pilot adapter 自动加入到服务注册表里的, 而且这反映了底层平台(Kubernetes、Consul、plain DNS)的已发现的服务。还有就是,可以使用 ServiceEntry 配置进行手动注册。
Service Version
区分一系列服务,通常通过工作负载二进制文件的不同版本来帮助确定。在一些场景多服务版本是需要的,比如 A/B 测试和金丝雀发布。
Sidecar
Sidecar 通常是与主应用程序一起运行以提供附加功能的容器。 在 Istio 中,Sidecar 是一个数据面模式,它同时运行一个 Envoy 代理 Pod。
Source
Source 是 Envoy 代理的下游客户端。 在服务网格里, Source 通常是一个工作负载, 但是入口流量的 Source 有可能包含其他客户端,例如浏览器或移动应用。
SPIFFE
每个人的安全生产身份框架(SPIFFE)项目定义了一个框架和一套标准,用于识别和保护基于 Web 服务之间的通信。
T
TLS Origination
TLS 源(TLS Origination)发生于一个被配置为接收内部未加密 HTTP 连接的 Istio 代理(Sidecar 或 Egress Gateway)加密请求并使用简单或双向 TLS 将其转发至安全的 HTTPS 服务器时。 这与 TLS 终止相反,后者发生于一个接受 TLS 连接的 Ingress 代理解密 TLS 并将未加密的请求传递到网格内部的服务时。
Trust Domain
信任域对应于系统的信任根,并且是工作负载标识的一部分。
Istio 使用信任域在网格中创建所有身份。每个网格都有一个专用的信任域。
例如在 spiffe://mytrustdomain.com/ns/default/sa/myname
中标示网格的子字符串是:mytrustdomain.com
。此子字符串是此网格的信任域。
Trust Domain Migration
更改 Istio 网格的信任域的过程。
W
Waypoint
Waypoint 指的是 Ambient 数据面模式的 HTTP 代理组件。 Waypoint 在每个服务账号的每个命名空间上运行,处理进入命名空间的所有流量。
Workload
operators 部署的二进制文件,用于提供服务网格应用的一些功能。 工作负载有自己的名称、命名空间和唯一的 ID。 这些属性可以通过下面的属性被策略配置和遥测配置使用:
source.workload.name
,source.workload.namespace
,source.workload.uid
destination.workload.name
,destination.workload.namespace
,destination.workload.uid
在 Kubernetes 环境中,一个工作负载通常对应一个 Kubernetes Deployment, 并且一个工作负载实例对应一个独立的被 Deployment 管理的 Pod。
Workload Instance
工作负载实例是工作负载的一个二进制实例化对象。 一个工作负载实例可以开放零个或多个服务 Endpoint, 也可以消费零个或多个服务。
工作负载实例具有许多属性:
- 名称和命名空间
- 唯一的 ID
- IP 地址
- 标签
- 主体
通过访问 source.* 和 destination.* 下面的属性,在 Istio 的策略和遥测配置功能中,可以用到这些属性。
Workload Instance Principal
工作负载实例主体是工作负载实例的可验证权限。 Istio 的服务到服务身份验证用于生成工作负载实例主体。默认情况下,工作负载实例主体与 SPIFFE ID 格式兼容。
在 policy
和 telemetry
配置中用到了工作负载实例主体,对应的属性是 source.principal
和 destination.principal
。
Z
ztunnel
Ztunnel 指的是 Ambient 数据面模式中的节点代理组件。 Ztunnel 在每个节点上运行,使用 HBONE 协议安全地传输流量。
数
数据面模式
数据平面模式是指数据平面使用的是哪种部署模式。 Istio 当前支持三种模式: Sidecar、Ambient 和 Proxyless。
自
自动 mTLS
自动 mTLS 是 Istio 的一个特性,用以发送 双向 TLS 流量, 其中客户端和服务器都能够处理 Mutual TLS 的流量。 当客户端或服务器无法处理此类流量时,Istio 将其会降级为纯文本。