词汇表
A
- Ambient
Ambient 模式是指一种 数据平面模式,它由每个节点和可选的每个命名空间组件组成。在 Ambient 模式下安装 Istio 时创建的网格可以称为 Ambient 网格。Ambient 模式是 Sidecar 模式 部署的替代方案。
- 注解
注解指的是附加到资源(例如 Pod)上的 Kubernetes 注解。有关有效 Istio 特定注解的列表,请参阅 资源注解。
- 属性
属性控制网格中运行的服务的运行时行为。属性是描述入口和出口流量以及这些流量发生的环境的命名和类型化的元数据片段。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 的 策略和遥测 功能使用。
- 自动 mTLS
自动 mTLS 是 Istio 的一项功能,用于自动配置客户端代理,以便在客户端和服务器都能够处理双向 TLS 流量的连接上发送 双向 TLS 流量。如果客户端或服务器无法处理此类流量,Istio 将降级为明文。
C
- 集群
集群是一组运行容器化应用程序的计算节点。通常,构成集群的计算节点可以彼此直接通信。集群通过规则或策略限制外部访问。
- CNI
容器网络接口 (CNI) 是 Kubernetes 用于配置集群网络的标准。它使用插件实现,插件有两种类型
- 接口插件,用于创建网络接口,由集群操作员提供
- 链式插件,可以配置已创建的接口,并且可以由安装在集群上的软件提供
Istio 可与遵循 CNI 标准的所有 CNI 实现配合使用,无论是在 sidecar 模式还是 ambient 模式下。
为了配置网格流量重定向,Istio 包含一个 CNI 节点代理。此代理安装一个链式 CNI 插件,该插件在所有已配置的 CNI 接口插件之后运行。
CNI 节点代理对于 sidecar 模式是可选的,对于 ambient 模式是必需的。
- 控制平面
控制平面是一组系统服务,用于配置网格或网格的子集,以管理其中工作负载实例之间的通信。
- CRD
自定义资源定义 (CRD) 是默认 Kubernetes API 的扩展。Istio 使用 Kubernetes CRD API 进行配置,即使对于非 Kubernetes Istio 部署也是如此。
D
- 数据平面
数据平面是网格的一部分,它直接处理和路由工作负载实例之间的流量。
在 sidecar 模式下,Istio 的数据平面使用作为 sidecar 部署的 Envoy 代理来调解和控制网格服务发送和接收的所有流量。
在 ambient 模式下,Istio 的数据平面使用作为 DaemonSet 部署的节点级 ztunnel 代理来调解和控制网格服务发送和接收的所有流量。
- 数据平面模式
数据平面模式指的是 数据平面 使用的部署模式。Istio 目前支持三种模式:sidecar 模式、ambient 模式 和 无代理模式。
- 目标
E
- eBPF
eBPF 是一种可以在特权上下文中(例如操作系统内核)运行程序的技术。它用于安全有效地扩展内核在运行时的功能,而无需更改内核源代码或加载内核模块。
- Envoy
Istio 使用的高性能代理,用于调解 服务网格 中所有 服务 的入站和出站流量。 详细了解 Envoy。
- 外部控制平面
外部控制平面是在其自己的 集群 或其他基础设施中运行的网格工作负载的外部管理的 控制平面。控制平面本身可能部署在集群中,尽管不在其控制的网格所属的集群之一中。其目的是将控制平面与网格的数据平面清晰地分离。
F
- 故障域
故障域是计算环境的物理或逻辑部分,当关键设备或服务出现问题时,该部分会受到负面影响。
对于 Istio 部署,故障域可以包含平台的多个可用区。
G
- 网关
网关是在网格边缘部署的独立 Istio 代理。网关用于将流量 路由到 或 路由出 网格。
Istio
Gateway
CR 用于配置网关部署的公开端口。- 网关 API
Kubernetes 网关 API 是 Kubernetes 中流量路由的配置 API。它代表了下一代 Kubernetes 入口、负载平衡和服务网格 API,并且设计时吸取了 Istio 传统 API 的经验教训。
H
- HBONE
HBONE(或基于 HTTP 的覆盖网络环境)是 Istio 组件之间使用的安全隧道协议。详细了解 HBONE。
I
- 身份
身份是安全基础设施的基本概念。Istio 身份模型基于一流的工作负载身份。在服务到服务通信的开始,双方交换包含其身份信息的凭据,以进行相互身份验证。
客户端根据其安全命名信息检查服务器的身份,以确定服务器是否有权运行该服务。
服务器检查客户端的身份,以确定客户端可以访问哪些信息。服务器根据配置的授权策略做出该决定。
使用身份,服务器可以审核信息访问时间以及特定客户端访问了哪些信息。他们还可以根据客户端使用的服务向客户端收费,并拒绝任何未能支付账单的客户端访问服务。
Istio 身份模型足够灵活和细粒度,可以表示人类用户、单个服务或一组服务。在没有一流服务身份的平台上,Istio 可以使用其他可以对服务实例进行分组的身份,例如服务名称。
Istio 在不同平台上支持以下服务身份
Kubernetes:Kubernetes 服务账户
GKE/GCE:GCP 服务账户
GCP:GCP 服务账户
AWS:AWS IAM 用户/角色账户
内部部署(非 Kubernetes):用户账户、自定义服务账户、服务名称、Istio 服务账户或 GCP 服务账户。自定义服务账户指的是现有的服务账户,就像客户的身份目录管理的身份一样。
- 注入
注入或 sidecar 注入指的是使用 变异 Webhook 在创建时修改 Pod 规范。
注入可用于为网格服务添加 Envoy sidecar 配置,或配置 网关 的 Envoy 代理。
有关更多信息,请参阅 安装 sidecar。
- IO
- IOP
- Istio Operator 自定义资源
Istio Operator 自定义资源(通常使用简写形式
IOP
或IO
引用)是在使用istioctl install
命令或集群内操作符安装时用于配置 Istio 安装的自定义资源。- Istiod
Istiod 组件是集成的控制平面二进制文件,它封装了 Pilot、Galley、Citadel 和 sidecar 注入器的功能。
M
- 托管控制平面
托管控制平面是云提供商为其客户管理的 外部控制平面。托管控制平面降低了用户部署的复杂性,并且通常保证一定程度的性能和可用性。
- 网格联邦
网格联邦是指在不同网格之间公开服务并启用跨网格边界的通信的行为。每个网格可以公开其服务的一个子集,以使一个或多个其他网格能够使用公开的服务。您可以使用网格联邦启用多网格部署中的网格之间的通信。
- 微分段
微分段是一种安全技术,它在云部署中创建安全区域,并允许组织将工作负载彼此隔离并分别保护它们。
- 多网格
多网格是一种部署模型,由两个或多个服务网格组成。每个网格都具有独立的命名和身份管理,但您可以通过网格联邦在网格之间公开服务。最终的部署是一个多网格部署。
- 多集群
- 双向TLS认证
双向TLS通过内置的身份和凭证管理提供强大的服务到服务的认证。了解有关双向TLS认证的更多信息。
N
O
- 操作符
操作符是一种打包、部署和管理Kubernetes应用程序的方法。有关更多信息,请参见操作符模式。
P
R
S
- 安全L4覆盖
术语“安全覆盖”或“安全L4覆盖”用于统称通过ztunnel代理在环境网格中实现的L4网络功能集。在传输层,这是通过称为HBONE的基于HTTP CONNECT的流量隧道协议实现的。
- 安全命名
- 服务
在服务网格中一组相关的行为。服务使用服务名称标识,并且Istio策略(如负载均衡和路由)使用这些名称应用。服务通常由一个或多个服务端点具体化,并且可能包含多个服务版本。
- 服务使用者
使用服务的代理。
- 服务端点
- 服务网格
服务网格或简称网格是一个基础设施层,它能够在工作负载实例之间实现受管理的、可观察的和安全的通信。
服务名称与命名空间的组合在网格内是唯一的。例如,在多集群网格中,
cluster-1
中foo
命名空间中的bar
服务被认为与cluster-2
中foo
命名空间中的bar
服务是同一个服务。- 服务名称
- 服务操作符
- 服务提供者
创建服务的代理。
- 服务注册表
Istio维护一个内部服务注册表,其中包含服务网格中运行的服务及其对应的服务端点集。Istio使用服务注册表生成Envoy配置。
Istio不提供服务发现,尽管大多数服务会由反映底层平台(Kubernetes、Consul、普通DNS)已发现服务的Pilot适配器自动添加到注册表中。还可以使用
ServiceEntry
配置手动注册其他服务。- 服务版本
- Sidecar
从广义上讲,边车是一个与主应用程序一起运行的容器,以提供其他功能。在Istio中,边车模式是一种数据平面模式,它在每个Pod旁边运行Envoy代理。
- 源
Envoy代理的下游客户端。在服务网格中,源通常是工作负载,但入口流量的源可能包括其他客户端,例如浏览器或移动应用程序。
- SPIFFE
每个人安全生产身份框架(SPIFFE)项目定义了一个框架和一组标准,用于识别和保护基于Web的服务之间的通信。
T
- TLS发起
当Istio代理(边车或出口网关)配置为接受未加密的内部HTTP连接、加密请求,然后将它们转发到使用简单或双向TLS保护的HTTPS服务器时,就会发生TLS发起。这与TLS终止相反,在TLS终止中,入口代理接受传入的TLS连接,解密TLS并将未加密的请求传递给内部网格服务。
- 信任域
信任域对应于系统的信任根,并且是工作负载身份的一部分。
Istio使用信任域在网格内创建所有身份。例如,在
spiffe://mytrustdomain.com/ns/default/sa/myname
中,子字符串mytrustdomain.com
指定工作负载来自名为mytrustdomain.com
的信任域。只要集群共享相同的信任根,您可以在多集群网格中拥有一个或多个信任域。
- 信任域迁移
更改Istio网格的信任域的过程。
W
- 航点
航点是环境模式中的第7层代理组件。航点通常在每个命名空间的基础上运行,并处理进入该命名空间的所有流量。
- 工作负载
由操作符部署的二进制文件,以提供服务网格应用程序的某些功能。工作负载具有名称、命名空间和唯一ID。这些属性在策略和遥测配置中使用以下属性可用
source.workload.name
、source.workload.namespace
、source.workload.uid
destination.workload.name
、destination.workload.namespace
、destination.workload.uid
- 工作负载实例
工作负载二进制文件的单个实例。工作负载实例可以公开零个或多个服务端点,并且可以消费零个或多个服务。
工作负载实例具有一些属性
- 名称和命名空间
- 唯一 ID
- IP 地址
- 标签
- 主体
这些属性可通过许多
source.*
和destination.*
属性在策略和遥测配置中使用。- 工作负载实例主体
工作负载实例运行的 可验证授权方。Istio 的服务到服务身份验证用于生成工作负载主体。默认情况下,工作负载主体符合 SPIFFE ID 格式。
工作负载实例主体可通过
source.principal
和destination.principal
属性在策略和遥测配置中使用。