概述

本文档中的自制应用,是指用户基于自身业务需求,在Istio服务网格环境中,通过“转化现有普通应用”或“直接创建Istio原生应用”两种方式构建的、可被Istio管控的业务应用。此类应用本质为用户自定义业务载体,无额外预置功能,核心价值是适配Istio服务网格的治理能力,实现流量、安全、可观测性等全链路管控。

自制应用完全归用户所有,业务逻辑由用户自主定义,仅在部署形态和通信方式上适配Istio规范,纳入网格统一治理体系,与网格内其他服务实现协同联动。

模块位置

  • 登录云平台,切换模块至【MCE 容器引擎】
  • 在左侧导航栏依次点击【服务网格】【自制应用】,即可进入【自制应用】页面。

核心功能

自制应用提供两大核心功能,分别适配不同业务场景,满足用户在Istio环境下的应用构建需求,且均无需对业务代码进行大幅改造,仅需完成基础适配。

普通应用转化为Istio应用

该功能针对用户已有的存量普通业务应用(非Istio原生应用,如传统容器化应用、单体应用拆分后的微服务等),提供平滑接入Istio服务网格的解决方案,帮助用户快速将存量应用纳入网格管控,无需重构业务逻辑。

转化的核心逻辑是通过为普通应用注入Istio Sidecar代理(默认为Envoy),实现流量的透明劫持与管控。Sidecar与应用容器部署在同一Pod中,承担流量转发、数据采集、策略执行等网格相关职责,应用本身无需感知Istio的存在,即可享受网格服务治理能力。

转化后,原普通应用的业务功能保持不变,仅部署形态升级为Istio兼容模式,可与网格内其他应用实现统一的流量调度、安全通信和监控追溯,适用于存量业务的网格迁移场景。

直接创建Istio原生应用

该功能针对全新业务场景,支持用户从0到1构建完全适配Istio服务网格的原生应用,无需经过转化环节,直接按照Istio规范设计并部署应用,最大化发挥网格治理效能。

创建Istio原生应用时,用户可在应用设计阶段就适配Istio支持的通信协议(如HTTP、gRPC)、服务注册机制和健康检查规范,部署时可直接启用Istio Sidecar注入,无需额外适配调整。此类应用天生具备网格友好特性,可更精准地对接Istio的高级治理能力,如细粒度流量控制、全链路mTLS加密等。

该功能适用于新业务上线、原生微服务架构搭建等场景,帮助用户从源头构建符合网格标准的应用体系,减少后期适配成本。

应用特性与适配要求

1 通用特性

  • 业务自主性:应用的业务逻辑、功能迭代完全由用户掌控,Istio仅提供底层服务治理能力,不干预业务运行。

  • 网格兼容性:无论通过转化还是原生创建,最终均接入Istio服务网格,支持网格内统一的治理策略配置。

  • 无侵入性:无需修改业务代码,仅通过部署配置调整(如Sidecar注入、协议适配)实现网格接入。

2 基础适配要求

无论采用哪种功能构建自制应用,均需满足以下基础条件,确保顺利接入Istio服务网格:

  • 部署环境:需部署在已搭建Istio服务网格的Kubernetes集群中,目标命名空间支持Istio Sidecar注入。

  • 通信协议:采用Istio支持的协议(HTTP、gRPC、TCP等),确保Sidecar可正常劫持并处理服务间流量。

  • 端口规范:应用容器不可占用Istio Sidecar默认端口(如15000、15001、15090等),避免端口冲突。

  • 健康检查:需配置标准的Kubernetes健康检查探针(livenessProbe、readinessProbe),确保Istio可准确识别应用运行状态。

网格治理能力支持

自制应用接入Istio服务网格后,可通过Istio控制台或配置文件启用以下原生治理能力,不影响应用原有业务逻辑:

  • 流量治理:支持灰度发布、A/B测试、流量路由、熔断限流、故障注入等策略配置。

  • 安全防护:可启用mTLS加密通信、服务访问控制、身份认证与授权,保障服务间通信安全。

  • 可观测性:自动采集应用调用链路、监控指标(如QPS、延迟)和访问日志,集成至网格统一监控体系,实现全链路可追溯。

注意事项

  • 自制应用依赖Istio Sidecar代理实现网格能力,Sidecar运行状态直接影响应用流量通信,需同步监控Sidecar健康状态。

  • 应用升级、回滚时需遵循Kubernetes标准流程,Istio会自动同步Sidecar配置,无需额外操作;若调整应用通信协议,需同步更新Istio对应策略。

  • 若需退出Istio管控,转化类应用可删除命名空间的Istio注入标签并重新部署,原生创建类应用需移除Sidecar相关配置,均不影响业务代码本身。

  • 有状态自制应用需确保服务发现逻辑与Istio服务注册机制兼容(如依赖Kubernetes Service),避免影响网格内服务调用。

作者:叶奕珺  创建时间:2025-05-08 09:15
最后编辑:叶奕珺  更新时间:2026-01-30 18:08