WebAssembly 模块的拉取策略
与 Kubernetes 的 类似, 也有IfNotPresent
和 Always
的概念,这分别意味着“使用缓存模块”和“不管缓存而始终拉取模块”。
- 如果
url
字段指向一个 OCI 镜像且该字段有一个摘要后缀(例如 ),则使用IfNotPresent
策略。
如果没有为某资源指定 ImagePullPolicy
,则 Istio 默认为 IfNotPresent
行为。 但是如果提供的 url
字段指定一个标记值为 latest
的 OCI 镜像,则 Istio 将使用 Always
行为。
这个过期行为可以通过 的环境变量 WASM_MODULE_EXPIRY
和 进行配置,具体包括过期的持续时间和检查过期的时间间隔。
对于 WasmPlugin
,ImagePullPolicy: Always
意味着每次创建或更改相应的 WasmPlugin
Kubernetes 资源时,Istio 将直接从其镜像源中拉取镜像。 请注意,当使用 Always
策略时,spec
和 metadata
中的变更都会触发 Wasm 模块的拉取。 这可能意味着在 Pod 的生命周期和单个代理的生命周期内,会多次从镜像源中拉取镜像。