本文假设你熟悉服务网格和 Istio,对 Tetrate 出品的商业化服务网格管理工具 Tetrate Service Bridge 感兴趣,那么这篇文章可以解答你心中的一些困惑。
本文中包含了:
笔者将罗列一些关于 TSB 的知识点,主要是关于它与 Istio 之间的不同点:
图 1 展示了 TSB 的基本资源对象,其中只要分为五大类:
TSB 是建立在 Istio 之上的,下表中列出了 TSB 中的可以通过 tctl 命令获取的资源对象,其中部分名称与 Kubernetes 中原生资源对象重复,但它们并不相同:
名称 | 说明 |
---|---|
ApplicationAccessBindings | 配置应用程序用户访问权限。 |
AccessBindings | 为 TSB 中任何资源的用户分配访问角色的配置。 |
AuthorizationPolicy | 同 Istio 中的授权策略。 |
APIAccessBindings | 配置 API 用户访问权限。 |
Application | 应用程序的配置,应用程序表示一组相互关联的服务逻辑分组,并公开一组实现完整业务逻辑的 API。 |
Cluster | Kubernetes 集群。要想将 Kubernetes 集群纳入 TSB 管理,首先需要声明 Cluster 添加,然后是部署 TSB Agent 和控制平面(包括 Istio、XCP、GitOps、OAP 等组件)。 |
DestinationRule | Istio 原生 CRD,主要用来划分可路由的集群及负载均衡规则。 |
EnvoyFilter | Istio 原生 CRD,主要用来扩展 Envoy 的功能。 |
EgressGateway | 配置工作负载作为出口网关。 |
GatewayAccessBindings | 配置网关组用户访问权限。 |
GatewayGroup | 网关组。 |
Gateway | 管理 TSB 中设置的网关,而非 Istio 中的原生 Gateway CRD。 |
IstioInternalAccessBindings | 为 Istio 内部组的用户分配访问角色的配置。 |
IngressGateway | 配置负载作为入口网关,类似于 Istio 中的原生 Gateway。 |
IstioInternalGroup | 配置 Istio 内部的 TSB 资源。 |
OrganizationAccessBindings | 配置组织用户访问权限。 |
Organization | 组织。 |
OrganizationSetting | 组织的默认配置,如区域 Failover、安全、流量、网络配置等。 |
Metric | 运行时获取的服务度量。 |
Source | Sources 服务公开了管理来自资源的遥测源。 |
PeerAuthentication | Istio 原生 CRD,配置对等认证(配置 mTLS)。 |
RequestAuthentication | Istio 原生 CRD,配置请求认证(JWT 规则配置)。 |
ServiceAccount | 不同于 Kubernetes 中的原生资源对象,TSB 自定义的服务账号配置。 |
SecurityAccessBindings | 配置安全组用户访问权限。 |
Sidecar | 配置预安装的 Istio Sidecar。 |
ServiceEntry | Istio 原生 CRD,添加服务对象。 |
SecurityGroup | 安全配置组。 |
ServiceRoute | 配置服务路由。 |
SecuritySetting | 安全设置将配置应用于 SecurityGroup 或 Workspace 中的一组代理工作负载。当应用于 SecurityGroup 时,缺失的字段将从 Workspace 范围设置继承值 (如果有的话)。 |
ServiceSecuritySetting | 安全组配置。 |
Service | 注册中心中的服务,表示所有这些单独服务的聚合和逻辑视图,并提供聚合指标等高级功能。 |
Tier1Gateway | TSB 一级网关配置,指定网关负载。 |
TrafficAccessBindings | 流量访问角色配置。 |
TrafficGroup | 流量管理组。 |
TenantAccessBindings | 租户角色配置。 |
TenantSetting | 租户配置。 |
TrafficSetting | 流量配置。 |
VirtualService | Istio 原生 CRD,配置流量路由。 |
WorkspaceAccessBindings | Workspace 角色配置。 |
WasmExtension | 配置管理 Wasm 扩展。 |
WasmPlugin | Istio 原生 CRD,配置 Wasm 插件。 |
Workspace | 划定工作空间。 |
WorkspaceSetting | 配置工作空间。 |
你可以使用 tctl 命令行工具来管理 TSB,它的使用方法与 kubectl 类似,上面的列表是使用 tctl get
命令可以列出的资源对象。实际上 TSB 中的资源对象不止这些,关于 TSB 中 API 资源的详细说明请参考 TSB 文档。
我在上文中提到,TSB 是在 Istio 之上构建的管理平面,为 Istio 增加了多租户和多集群管理功能,TSB 的组件架构及其功能如图 2 所示。
TSB 的全局控制平面可以和管理平面部署在同一个 Kubernetes 集群中,也可以单独部署。
TSB 管理平面的架构如图 3 所示。
管理平面与各个 Kubernetes 集群中的 Istio 联系,管理多集群环境下的服务网格。
TSB 控制平面的架构如图 4 所示。
为了实现跨集群的多租户管理,TSB 定义了一系列逻辑对象,如图 5 所示。
如果您不熟悉服务网格和 Kubernetes 安全性,我们在 Tetrate Academy 提供了一系列免费在线课程,可以让您快速了解 Istio 和 Envoy。
如果您正在寻找一种快速将 Istio 投入生产的方法,请查看 Tetrate Istio Distribution (TID)。TID 是 Tetrate 的强化、完全上游的 Istio 发行版,具有经过 FIPS 验证的构建和支持。这是开始使用 Istio 的好方法,因为您知道您有一个值得信赖的发行版,有一个支持您的专家团队,并且如果需要,还可以选择快速获得 FIPS 合规性。
一旦启动并运行 Istio,您可能需要更简单的方法来管理和保护您的服务,而不仅仅是 Istio 中可用的方法,这就是 Tetrate Service Bridge 的用武之地。您可以在这里详细了解 Tetrate Service Bridge 如何使服务网格更安全、更易于管理和弹性,或联系我们进行快速演示。
最后更新于 2024/11/21