第 4 章 Istio 辅助模式
Istio ambient 模式引入了一个 Red Hat OpenShift Service Mesh 构架,而无需 sidecar 注入。这个模式旨在简化操作并减少资源使用量。ambient 模式使用共享节点级别的代理,而是将 sidecar 代理注入每个应用程序 pod,而是为第 4 层(L4)功能使用共享节点级别代理,以及可选的专用代理,用于第 7 层(L7)功能。
Istio 辅助模式只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
4.1. 关于 Istio 辅助模式 复制链接链接已复制到粘贴板!
要了解 Istio 辅助模式架构,请参阅以下定义:
- ZTunnel 代理
- 为节点上所有工作负载管理安全、透明传输控制协议(TCP)连接的每个节点代理。它在第 4 层(L4)上运行,从应用程序 pod 卸载 mutual Transport Layer Security (mTLS)和 L4 策略强制。
- Waypoint 代理
- 每个服务帐户或命名空间运行的可选代理,以提供高级第 7 层(L7)功能,如流量管理、策略强制和可观察性。您可以选择性地应用 L7 功能,以避免每个服务的 sidecar 开销。
- Istio CNI 插件
- 将流量重定向到每个节点上的 Ztunnel 代理,启用透明拦截器,而无需修改应用程序 pod。
Istio 辅助模式具有以下优点:
- 简化 删除管理 sidecar 注入所需的操作,从而降低网格采用和操作的复杂性。
-
使用每个节点 Ztunnel 代理 减少资源消耗,该代理提供 L4 服务网格功能以及减少每个 pod 资源开销的可选
方法
代理。 增量采用,使工作负载与 L4 功能(如 mutual Transport Layer Security (mTLS))加入网格,以及稍后添加的可选
方法
代理使用 L7 服务网格功能,如 HTTP (L7)流量管理。注意L7 功能需要部署
waypoint
代理,这会为所选服务带来最少的额外开销。- 增强安全性,为所有网格工作负载使用 mTLS 提供安全、零信任网络基础。
ambient 模式是一个较新的架构,可能涉及与传统 sidecar 模式不同的操作注意事项。
虽然定义良好的发现选择器允许服务网格以 ambient 模式部署,但这个场景还没有经过全面验证。为了避免潜在的冲突,只有在没有现有 Red Hat OpenShift Service Mesh 安装的集群中安装 Istio ambient 模式。ambient 模式仍是一个技术预览功能。
Istio ambient 模式与使用 Red Hat OpenShift Service Mesh 2.6 或更早版本的集群不兼容。您不能安装或将其一起使用。
4.1.1. 安装 Istio 辅助模式 复制链接链接已复制到粘贴板!
您可以使用所需的网关 API 自定义资源定义(CRD)在 OpenShift Container Platform 4.19 或更高版本上安装 Istio ambient 模式,以及 Red Hat OpenShift Service Mesh 3.1.0 或更高版本。
先决条件
- 您已在 OpenShift Container Platform 4.19 或更高版本上部署了集群。
- 您已在 OpenShift Container Platform 集群中安装了 OpenShift Service Mesh Operator 3.1.0 或更高版本。
-
根据安装方法,您可以通过 Web 控制台以具有
cluster-admin
角色的用户身份或使用oc login
命令登录 OpenShift Container Platform 集群。 -
您已将 OVN-Kubernetes Container Network Interface (CNI)配置为使用本地网关模式,方法是在 Cluster Network Operator 的
gatewayConfig
规格中将routingViaHost
字段设置为true
。如需更多信息,请参阅"配置网关模式"。
流程
安装 Istio control plane:
运行以下命令来创建
istio-system
命名空间:oc create namespace istio-system
$ oc create namespace istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
istio.yaml
的Istio
资源,类似以下示例:配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须将
profile
字段设置为ambient
,并将.spec.values.pilot.trustedZtunnelNamespace
值配置为与安装ZTunnel
资源的命名空间匹配。运行以下命令来应用
Istio
自定义资源(CR):oc apply -f istio.yaml
$ oc apply -f istio.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,等待 Istio control plane 包含
Ready
状态条件:oc wait --for=condition=Ready istios/default --timeout=3m
$ oc wait --for=condition=Ready istios/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
安装 Istio Container Network Interface (CNI):
运行以下命令来创建
istio-cni
命名空间:oc create namespace istio-cni
$ oc create namespace istio-cni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
istio-cni.yaml
的IstioCNI
资源,类似以下示例:配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
profile
字段设置为ambient
。运行以下命令来应用
IstioCNI
CR:oc apply -f istio-cni.yaml
$ oc apply -f istio-cni.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,等待
IstioCNI
pod 包含Ready
状态条件:oc wait --for=condition=Ready istios/default --timeout=3m
$ oc wait --for=condition=Ready istios/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
安装 Ztunnel 代理:
运行以下命令,为 Ztunnel 代理创建
ztunnel
命名空间:oc create namespace ztunnel
$ oc create namespace ztunnel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ztunnel
项目的命名空间名称必须与 Istio 配置中的trustedZtunnelNamespace
参数匹配。创建名为
ztunnel.yaml
的Ztunnel
资源,类似以下示例:配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
Ztunnel
CR:oc apply -f ztunnel.yaml
$ oc apply -f ztunnel.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,等待
Ztunnel
pod 包含Ready
状态条件:oc wait --for=condition=Ready ztunnel/default --timeout=3m
$ oc wait --for=condition=Ready ztunnel/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow