GKE集群部署Kasten后备份失败:找不到VolumeSnapshotClass
解决GKE 1.26中Kasten备份因缺少VolumeSnapshotClass失败的问题
问题根源
从错误日志和Kasten primer测试结果可明确:你的GKE集群中pd.csi.storage.gke.io这个CSI存储驱动没有对应的VolumeSnapshotClass,Kasten依赖该资源完成卷快照操作,直接导致备份任务在预检查阶段失败。
解决方案
1. 创建对应CSI驱动的VolumeSnapshotClass
创建针对pd.csi.storage.gke.io的VolumeSnapshotClass,保存为gke-csi-snapshot-class.yaml:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: gke-csi-snapshot-class annotations: snapshot.storage.kubernetes.io/is-default-class: "true" driver: pd.csi.storage.gke.io deletionPolicy: Delete
driver字段必须与GKE的CSI驱动名完全匹配(即pd.csi.storage.gke.io)deletionPolicy: Delete表示快照被删除时后端存储的快照也会同步删除;需保留后端快照可改为Retain- 添加默认类注解后,Kasten会自动使用该快照类,无需额外配置
2. 应用配置到集群
执行命令创建资源:
kubectl apply -f gke-csi-snapshot-class.yaml
3. 验证创建结果
运行命令确认VolumeSnapshotClass已成功创建:
kubectl get volumesnapshotclasses
输出中应能看到gke-csi-snapshot-class,且默认类标记为(default)。
4. 重新测试备份
重新运行Kasten手动备份任务,或再次执行primer测试:
kubectl apply -f https://docs.kasten.io/tools/k10_primer.yaml
此时CSI Provisioner的错误会消失,备份任务可正常完成。
内容的提问来源于stack exchange,提问作者Stefan Walther
相关产品推荐
相关产品推荐

