【发布时间】:2020-05-15 00:00:25
【问题描述】:
我们正在开发 k8s CSI 驱动程序 目前,为了升级驱动程序,我们删除了已安装的操作员 pod、cdrs 和角色,并从新版本映像中重新创建它们。 建议的升级方法是什么?还是卸载/安装是建议的方法? 我找不到任何相关信息
我们还支持从 OpenShift 安装。从 OpenShift 升级有什么不同吗?
【问题讨论】:
标签: kubernetes csi
我们正在开发 k8s CSI 驱动程序 目前,为了升级驱动程序,我们删除了已安装的操作员 pod、cdrs 和角色,并从新版本映像中重新创建它们。 建议的升级方法是什么?还是卸载/安装是建议的方法? 我找不到任何相关信息
我们还支持从 OpenShift 安装。从 OpenShift 升级有什么不同吗?
【问题讨论】:
标签: kubernetes csi
你应该从this documentation开始:
本页向 CSI 驱动程序开发人员介绍了如何部署他们的 驱动程序到 Kubernetes 集群上。
特别是:
将 CSI 驱动程序部署到 Kubernetes 中详细介绍了 Recommended Mechanism for Deploying CSI Drivers on Kubernetes.
此外,您还可以通过an example 找到所有必要的信息。
您的问题缺少有关您的用例的一些详细信息,但我强烈建议您从我提供给您的指南开始。
如果有帮助,请告诉我。
【讨论】:
CSI 驱动程序可能会有所不同,但我认为最好的方法是滚动更新插件的 DaemonSet。一旦您应用新的 DaemonSet 配置,它将自动发生,例如较新的泊坞窗图像。 更多详情请见https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
例如:
kubectl get -n YOUR-NAMESPACE daemonset YOUR-DAEMONSET --export -o yaml > plugin.yaml
vi plugin.yaml # Update your image tag(s)
kubectl apply -n YOUR-NAMESPACE -f plugin.yaml
仅更新图像的简短方法:
kubectl set image ds/YOUR-DAEMONSET-NAME YOUR-CONTAINER-NAME=YOUR-IMAGE-URL:YOUR-TAG -n YOUR-NAMESPACE
注意:我发现我还需要使用外部配置器重新启动(杀死)pod。可能有一种更优雅的方式来处理这个问题,但它可以在紧要关头工作。
kubectl delete pod -n YOUR-NAMESPACE YOUR-EXTERNAL-PROVISIONER-POD
【讨论】: