背景
在生产环境下部署 AI 模型(如大语言模型或图像识别服务)时,AI 基础设施面临两个核心挑战:首先是安全性,推理接口往往涉及敏感数据和核心资产,必须确保通信加密和身份校验;其次是可用性,由于 GPU 资源昂贵且推理过程耗时较长,突发流量极易导致显存溢出(OOM)或系统雪崩。Istio 作为服务网格(Service Mesh)的标准实现,通过 Sidecar 模式为 AI 微服务提供了无侵入的安全治理和流量管控能力。
1. 实现零信任安全:强制 mTLS 加密
在 AI 集群内部,我们需要确保服务间通信是加密的。通过 Istio 的 PeerAuthentication 资源,可以一键开启全网格的双向 TLS 认证。
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: ai-namespace-mtls
namespace: ai-inference
spec:
mtls:
mode: STRICT
此配置将强制 ai-inference 命名空间下的所有推理服务(如 TensorRT-LLM 或 vLLM)仅接收加密流量,拦截任何未加密的明文请求。
2. 身份验证:基于 JWT 的模型访问控制
为了防止模型被非法调用,我们需要对请求进行身份验证。通过 RequestAuthentication 和 AuthorizationPolicy,我们可以要求调用方必须携带合法的 JWT Token。
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
name: jwt-inference-auth
namespace: ai-inference
spec:
selector:
matchLabels:
app: vllm-engine
jwtRules:
- issuer: "https://auth.internal.com"
jwksUri: "https://auth.internal.com/.well-known/jwks.json"
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: require-jwt-token
namespace: ai-inference
spec:
selector:
matchLabels:
app: vllm-engine
action: ALLOW
rules:
- from:
- source:
requestPrincipals: ["*"]
3. 流量控制:针对 GPU 推理的限速策略
AI 推理是计算密集型任务。如果并发请求超过了 GPU 显存的处理能力,会导致严重的延迟甚至容器重启。我们可以使用 Istio 的 EnvoyFilter 在 L7 层实施局部限流(Local Rate Limiting),例如限制每分钟仅处理 5 个推理请求。
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: inference-rate-limit
namespace: ai-inference
spec:
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
patch:
operation: INSERT_BEFORE
value:
name: envoy.filters.http.local_ratelimit
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
stat_prefix: http_local_rate_limiter
token_bucket:
max_tokens: 5
tokens_per_fill: 5
fill_interval: 60s
filter_enabled:
runtime_key: local_ratelimit_enabled
default_value:
numerator: 100
denominator: HUNDRED
filter_enforced:
runtime_key: local_ratelimit_enforced
default_value:
numerator: 100
denominator: HUNDRED
response_headers_to_add:
- header:
key: x-local-rate-limit
value: 'true'
总结
通过上述三个步骤,我们在 AI 基础设施层构建了三道防线:
1. mTLS 解决了传输层安全问题。
2. JWT 策略 解决了模型访问权限问题。
3. EnvoyFilter 限流 解决了 GPU 资源的过载保护问题。
这种基于 Istio 的解耦方案,让 AI 开发人员可以专注于算法和模型本身,而将复杂的安全和流量治理逻辑交给基础设施层处理。
汤不热吧