成功创建后克隆 pvc 被自动删除

Clone pvc getting auto deleted, after successfull creation

我观察到,在成功完成创建的卷工作流程后,它会被自动删除。

日志:

    controller.go:1076] Requested volume size is 107374182400 and snapshot size is 107374182400 for the source snapshot test-snapshot
    controller.go:731] CreateVolumeRequest name:"abc-e366f836-18c8-4eb2-930a-85d066325381" capacity_range: volume_capabilities: access_mode: > secrets: secrets:  secrets: secrets: secrets: volume_content_source: > 
    connection.go:182] GRPC call: /csi.v1.Controller/CreateVolume
    connection.go:183] GRPC request: {"capacity_range": {"required_bytes":107374182400},"name":"abc-e366f836-18c8-4eb2-930a-85d066325381","secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}},"access_mode":{"mode":1}}],"volume_content_source":{"Type":   {"Snapshot":{"snapshot_id":"efb2fbdf94b6-9b2efecf7096"}}}}
    time="2022-04-04T07:42:48Z" level=info msg="create volume called" method=create_volume parameters="map[]" secrets="map[xxxxxx]" storage_size_giga_bytes=100 version=volume_capabilities="[mount: access_mode:]" volume_content_source="snapshot: " 
    volume_name=abc-e366f836-18c8-4eb2-930a-85d066325381
    time="2022-04-04T07:42:48Z" level=info msg="New volume [abc-e366f836-18c8-4eb2-930a-85d066325381] of type clone being created using snap [snapshot-b88d2ba6-389b-4066-aac4-646606bcd759]." method=create_volume parameters="map[]" secrets="map[xxxxxx]" storage_size_giga_bytes=100 version= volume_capabilities="[mount: access_mode: ]" volume_content_source="snapshot:  " volume_name=abc-e366f836-18c8-4eb2-930a-85d066325381
    event.go:294] "Event occurred" object="default/test-abc-restore" kind="PersistentVolumeClaim" apiVersion="v1" type="Normal" reason="ExternalProvisioning" message="waiting for a volume to be created, either by external provisioner \"xyz.com\" or manually created by system administrator"
    time="2022-04-04T07:42:51Z" level=info msg="New volume [e001af7a-e58038270e158] has been created successfully." method=create_volume parameters="map[]" secrets="map[xxxxxx]" storage_size_giga_bytes=100 version= volume_capabilities="[mount: access_mode: ]" volume_content_source="snapshot: " volume_name=abc-e366f836-18c8-4eb2-930a-85d066325381
    connection.go:185] GRPC response: {"volume":{"capacity_bytes":107374182400,"volume_context":{"volname":"abc-e366f836-18c8-4eb2-930a-85d066325381","volsecret":"","volserial":"XXXX"},"volume_id":"e001af7a-e58038270e158"}}
    connection.go:186] GRPC error: 
    controller.go:762] create volume rep: {CapacityBytes:107374182400 VolumeId:e001af7a-e58038270e158 VolumeContext:map[xxxxxx] ContentSource: AccessibleTopology:[] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}
    connection.go:182] GRPC call: /csi.v1.Controller/DeleteVolume
    connection.go:183] GRPC request: {"secrets":"***stripped***","volume_id":"e001af7a-e58038270e158"}
    time="2022-04-04T07:42:51Z" level=info msg="delete volume called" method=delete_volume secrets="map[xxxxx]" version= volume_id=e001af7a-e58038270e158>

CreateVolume成功后为什么会触发DeleteVolume?它与 1.18 k8s 一起工作,但在升级到 1.23.X 后它失败了。也许我缺少某些配置或做错了什么。任何指针肯定会帮助我解决这个问题。谢谢。

设置详情:

    kubeadm version: &version.Info{Major:"1", Minor:"23", GitVersion:"**v1.23.5**", GitCommit:"c285e781331a3785a7f436042c65c5641ce8a9e9", GitTreeState:"clean", BuildDate:"2022-03-16T15:57:37Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}

    using,
    quay.io/k8scsi/csi-provisioner:v2.1.2
    quay.io/k8scsi/csi-attacher:v3.1.0 
    quay.io/k8scsi/csi-snapshotter:v4.0.0 
    quay.io/k8scsi/csi-resizer:v1.1.0

需要在CreateVolumeResponse中添加ContentSource。在 CreateVolumeResponse 中添加 ContentSource 后问题得到解决。