在 Kubernetes 集群上升级 Dapr
您可以通过 Dapr CLI 或 Helm 来升级 Kubernetes 集群上的 Dapr 控制平面。
注意
请参阅 Dapr 版本政策 以获取 Dapr 升级路径的指导。使用 Dapr CLI 升级
您可以使用 Dapr CLI 来升级 Dapr。
前提条件
将现有集群升级到 1.14.4
dapr upgrade -k --runtime-version=1.14.4
您可以使用 Dapr CLI 提供所有可用的 Helm chart 配置。
通过 CLI 升级的故障排除
在集群上运行升级时,可能会遇到一个已知问题,即之前可能在集群上安装了 1.0.0-rc.2 之前的版本。
虽然这个问题不常见,但某些升级路径可能会在您的集群上留下不兼容的 CustomResourceDefinition
。如果遇到这种情况,您可能会看到如下错误信息:
❌ 升级 Dapr 失败:警告:kubectl apply 应用于由 kubectl create --save-config 或 kubectl apply 创建的资源
CustomResourceDefinition "configurations.dapr.io" 无效:spec.preserveUnknownFields: 无效值:true:必须为 false 以便在模式中使用默认值
解决方案
-
运行以下命令将
CustomResourceDefinition
升级到兼容版本:kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/release-1.14/charts/dapr/crds/configuration.yaml
-
继续执行
dapr upgrade --runtime-version 1.14.4 -k
命令。
使用 Helm 升级
您可以使用 Helm v3 chart 来升级 Dapr。
❗重要: 最新的 Dapr Helm chart 不再支持 Helm v2。从 Helm v2 迁移到 Helm v3。
前提条件
将现有集群升级到 1.14.4
从版本 1.0.0 开始,现有的证书值将在使用 Helm 升级 Dapr 时自动重用。
注意 Helm 不会自动处理资源的升级,因此您需要手动更新这些资源。资源是向后兼容的,只需向前安装即可。
-
将 Dapr 升级到版本 1.14.4:
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.14.4/charts/dapr/crds/components.yaml kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.14.4/charts/dapr/crds/configuration.yaml kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.14.4/charts/dapr/crds/subscription.yaml kubectl apply -f https://raw.githubusercontent.com/dapr/dapr/v1.14.4/charts/dapr/crds/resiliency.yaml kubectl apply -f https://raw.githubusercontent.com/dapr/dapr/v1.14.4/charts/dapr/crds/httpendpoints.yaml
helm repo update
helm upgrade dapr dapr/dapr --version 1.14.4 --namespace dapr-system --wait
如果您使用的是 values 文件,请记得在运行升级命令时添加
--values
选项。* -
确保所有 pod 正在运行:
kubectl get pods -n dapr-system -w NAME READY STATUS RESTARTS AGE dapr-dashboard-69f5c5c867-mqhg4 1/1 Running 0 42s dapr-operator-5cdd6b7f9c-9sl7g 1/1 Running 0 41s dapr-placement-server-0 1/1 Running 0 41s dapr-sentry-84565c747b-7bh8h 1/1 Running 0 35s dapr-sidecar-injector-68f868668f-6xnbt 1/1 Running 0 41s
-
重启您的应用程序部署以更新 Dapr 运行时:
kubectl rollout restart deploy/<DEPLOYMENT-NAME>
升级现有 Dapr 部署以启用高可用模式
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.