更新组件
更新应用程序使用的已部署组件
当对应用程序使用的现有已部署组件进行更新时,除非启用了 HotReload 特性门控,否则 Dapr 不会自动更新组件。
需要重启 Dapr 边车以获取组件的最新版本。
具体操作方式取决于托管环境。
Kubernetes
在 Kubernetes 中运行时,更新组件的过程包含两个步骤:
- 将新的组件 YAML 应用到目标命名空间
- 除非启用了
HotReload特性门控,否则在你的部署上执行 rollout restart 操作 以获取最新组件
自托管模式
除非启用了 HotReload 特性门控,否则更新组件的过程需要单个步骤:停止并重启 daprd 进程以获取最新组件。
热重载(预览功能)
此功能目前处于预览阶段。 热重载通过
HotReload特性门控 启用。
Dapr 可以"热重载"组件,即无需重启 Dapr 边车进程或 Kubernetes pod 即可自动获取组件更新。 这意味着在运行时创建、更新或删除组件清单会反映在 Dapr 边车中。
更新组件
当组件更新时,它首先被关闭,然后使用新配置重新初始化。 在此过程中,组件将在短时间内不可用。初始化错误
如果通过热重载创建或更新组件时初始化过程出错,Dapr 边车会遵循组件字段 spec.ignoreErrors。
也就是说,行为与边车启动时加载组件时的行为相同。
spec.ignoreErrors=false(默认):边车优雅关闭。spec.ignoreErrors=true:边车继续运行,但不注册旧组件或新组件配置。
除以下类型外,所有组件都支持热重载。 对于这些组件类型的任何创建、更新或删除操作都会被边车忽略,需要重启才能获取更改。