您可以通过 Dapr CLI 或 Helm 来升级 Kubernetes 集群上的 Dapr 控制平面。
您可以使用 Dapr CLI 来升级 Dapr。
dapr upgrade -k --runtime-version=1.15.5
您可以使用 Dapr CLI 提供所有可用的 Helm chart 配置。
在集群上运行升级时,可能会遇到一个已知问题,即之前可能在集群上安装了 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.15/charts/dapr/crds/configuration.yaml
继续执行 dapr upgrade --runtime-version 1.15.5 -k
命令。
您可以使用 Helm v3 chart 来升级 Dapr。
❗重要: 最新的 Dapr Helm chart 不再支持 Helm v2。从 Helm v2 迁移到 Helm v3。
从版本 1.0.0 开始,现有的证书值将在使用 Helm 升级 Dapr 时自动重用。
注意 Helm 不会自动处理资源的升级,因此您需要手动更新这些资源。资源是向后兼容的,只需向前安装即可。
将 Dapr 升级到版本 1.15.5:
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.15.5/charts/dapr/crds/components.yaml
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.15.5/charts/dapr/crds/configuration.yaml
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/v1.15.5/charts/dapr/crds/subscription.yaml
kubectl apply -f https://raw.githubusercontent.com/dapr/dapr/v1.15.5/charts/dapr/crds/resiliency.yaml
kubectl apply -f https://raw.githubusercontent.com/dapr/dapr/v1.15.5/charts/dapr/crds/httpendpoints.yaml
helm repo update
helm upgrade dapr dapr/dapr --version 1.15.5 --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>