第 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。如需更多信息,请参阅"配置网关模式"。

流程

  1. 安装 Istio control plane:

    1. 运行以下命令来创建 istio-system 命名空间:

      $ oc create namespace istio-system
      Copy to Clipboard Toggle word wrap
    2. 创建名为 istio.yamlIstio 资源,类似以下示例:

      配置示例

      apiVersion: sailoperator.io/v1
      kind: Istio
      metadata:
        name: default
      spec:
        namespace: istio-system
        profile: ambient
        values:
          pilot:
            trustedZtunnelNamespace: ztunnel
      Copy to Clipboard Toggle word wrap

      重要

      您必须将 profile 字段设置为 ambient,并将 .spec.values.pilot.trustedZtunnelNamespace 值配置为与安装 ZTunnel 资源的命名空间匹配。

    3. 运行以下命令来应用 Istio 自定义资源(CR):

      $ oc apply -f istio.yaml
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令,等待 Istio control plane 包含 Ready 状态条件:

      $ oc wait --for=condition=Ready istios/default --timeout=3m
      Copy to Clipboard Toggle word wrap
  2. 安装 Istio Container Network Interface (CNI):

    1. 运行以下命令来创建 istio-cni 命名空间:

      $ oc create namespace istio-cni
      Copy to Clipboard Toggle word wrap
    2. 创建名为 istio-cni.yamlIstioCNI 资源,类似以下示例:

      配置示例

      apiVersion: sailoperator.io/v1
      kind: IstioCNI
      metadata:
        name: default
      spec:
        namespace: istio-cni
        profile: ambient
      Copy to Clipboard Toggle word wrap

      profile 字段设置为 ambient

    3. 运行以下命令来应用 IstioCNI CR:

      $ oc apply -f istio-cni.yaml
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令,等待 IstioCNI pod 包含 Ready 状态条件:

      $ oc wait --for=condition=Ready istios/default --timeout=3m
      Copy to Clipboard Toggle word wrap
  3. 安装 Ztunnel 代理:

    1. 运行以下命令,为 Ztunnel 代理创建 ztunnel 命名空间:

      $ oc create namespace ztunnel
      Copy to Clipboard Toggle word wrap

      ztunnel 项目的命名空间名称必须与 Istio 配置中的 trustedZtunnelNamespace 参数匹配。

    2. 创建名为 ztunnel.yamlZtunnel 资源,类似以下示例:

      配置示例

      apiVersion: sailoperator.io/v1alpha1
      kind: ZTunnel
      metadata:
        name: default
      spec:
        namespace: ztunnel
        profile: ambient
      Copy to Clipboard Toggle word wrap

    3. 运行以下命令来应用 Ztunnel CR:

      $ oc apply -f ztunnel.yaml
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令,等待 Ztunnel pod 包含 Ready 状态条件:

      $ oc wait --for=condition=Ready ztunnel/default --timeout=3m
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat