์ด ์์์ ๋ฒ๊ทธ ์ ๊ณ ๋ฐ ๊ธฐ๋ฅ ์์ฒญ ์ ์ฉ์ ๋๋ค! ๋์์ด ํ์ํ ๊ฒฝ์ฐ [Stack Overflow] (https://stackoverflow.com/questions/tagged/kubernetes) ๋ฐ [๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋] (https://kubernetes.io/docs/tasks/debug-application- ํด๋ฌ์คํฐ / ๋ฌธ์ ํด๊ฒฐ /). ๋ณด์ ๊ด๋ จ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ https://kubernetes.io/security/๋ฅผ ํตํด ๋น๊ณต๊ฐ๋ก ๊ณต๊ฐํ์๊ธฐ ๋ฐ๋๋๋ค.
๋ฒ๊ทธ ๋ณด๊ณ ์ ๋๋ ๊ธฐ๋ฅ ์์ฒญ์ ๋๊น? :
ํ๋๋ง ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ํด์ ํ๊ณ ์์ฒด ์ค์ ๋จ๊ฒจ ๋ก๋๋ค.
/ ์ข ๋ฅ์ ๋ฒ๊ทธ
/ ์ข ๋ฅ ๊ธฐ๋ฅ
๋ฌด์จ ์ผ์ด ์ผ์ด ๋ฌ์ต๋๊น?
EBS CSI ๋๋ผ์ด๋ฒ๋ฅผ ํ
์คํธํ๊ณ ์์์ต๋๋ค. PVC๋ฅผ ์ฌ์ฉํ์ฌ PV๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ PVC๋ฅผ ์ญ์ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ PV ์ญ์ ๋ Terminating
์ํ์์ ๋ฉ ์ถฅ๋ ๋ค. PVC์ ๋ณผ๋ฅจ ๋ชจ๋ ๋ฌธ์ ์์ด ์ญ์ ๋ฉ๋๋ค. ๋ณผ๋ฅจ์ ์ฐพ์ ์์๋ ๊ฒฝ์ฐ (์ด๋ฏธ ์์ด ์ก๊ธฐ ๋๋ฌธ์) ์ฑ๊ณต์ ๋ฐํํ๋๋ผ๋ CSI ๋๋ผ์ด๋ฒ๋ DeleteVolume
๋ก ๊ณ์ ํธ์ถ๋ฉ๋๋ค.
CSI ๋๋ผ์ด๋ฒ ๋ก๊ทธ :
I1011 20:37:29.778380 1 controller.go:175] ControllerGetCapabilities: called with args &csi.ControllerGetCapabilitiesRequest{XXX_NoUnkeyedLiteral:struct {}{}, XXX_unrecognized:[]uint8(nil), XXX_sizecache:0}
I1011 20:37:29.780575 1 controller.go:91] DeleteVolume: called with args: &csi.DeleteVolumeRequest{VolumeId:"vol-0ea6117ddb69e78fb", ControllerDeleteSecrets:map[string]string(nil), XXX_NoUnkeyedLiteral:struct {}{}, XXX_unrecognized:[]uint8(nil), XXX_sizecache:0}
I1011 20:37:29.930091 1 controller.go:99] DeleteVolume: volume not found, returning with success
์ธ๋ถ ์ฒจ๋ถ ์ ๋ก๊ทธ :
I1011 19:15:14.931769 1 controller.go:167] Started VA processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:14.931794 1 csi_handler.go:76] CSIHandler: processing VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:14.931808 1 csi_handler.go:103] Attaching "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:14.931823 1 csi_handler.go:208] Starting attach operation for "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:14.931905 1 csi_handler.go:179] PV finalizer is already set on "pvc-069128c6ccdc11e8"
I1011 19:15:14.931947 1 csi_handler.go:156] VA finalizer is already set on "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:14.931962 1 connection.go:235] GRPC call: /csi.v0.Controller/ControllerPublishVolume
I1011 19:15:14.931966 1 connection.go:236] GRPC request: volume_id:"vol-0ea6117ddb69e78fb" node_id:"i-06d0e08c9565c4db7" volume_capability:<mount:<fs_type:"ext4" > access_mode:<mode:SINGLE_NODE_WRITER > > volume_attributes:<key:"storage.kubernetes.io/csiProvisionerIdentity" value:"1539123546345-8081-com.amazon.aws.csi.ebs" >
I1011 19:15:14.935053 1 controller.go:197] Started PV processing "pvc-069128c6ccdc11e8"
I1011 19:15:14.935072 1 csi_handler.go:350] CSIHandler: processing PV "pvc-069128c6ccdc11e8"
I1011 19:15:14.935106 1 csi_handler.go:386] CSIHandler: processing PV "pvc-069128c6ccdc11e8": VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53" found
I1011 19:15:14.952590 1 controller.go:197] Started PV processing "pvc-069128c6ccdc11e8"
I1011 19:15:14.952613 1 csi_handler.go:350] CSIHandler: processing PV "pvc-069128c6ccdc11e8"
I1011 19:15:14.952654 1 csi_handler.go:386] CSIHandler: processing PV "pvc-069128c6ccdc11e8": VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53" found
I1011 19:15:15.048026 1 controller.go:197] Started PV processing "pvc-069128c6ccdc11e8"
I1011 19:15:15.048048 1 csi_handler.go:350] CSIHandler: processing PV "pvc-069128c6ccdc11e8"
I1011 19:15:15.048167 1 csi_handler.go:386] CSIHandler: processing PV "pvc-069128c6ccdc11e8": VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53" found
I1011 19:15:15.269955 1 connection.go:238] GRPC response:
I1011 19:15:15.269986 1 connection.go:239] GRPC error: rpc error: code = Internal desc = Could not attach volume "vol-0ea6117ddb69e78fb" to node "i-06d0e08c9565c4db7": could not attach volume "vol-0ea6117ddb69e78fb" to node "i-06d0e08c9565c4db7": InvalidVolume.NotFound: The volume 'vol-0ea6117ddb69e78fb' does not exist.
status code: 400, request id: 634b33d1-71cb-4901-8ee0-98933d2a5b47
I1011 19:15:15.269998 1 csi_handler.go:320] Saving attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274440 1 csi_handler.go:330] Saved attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274464 1 csi_handler.go:86] Error processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53": failed to attach: rpc error: code = Internal desc = Could not attach volume "vol-0ea6117ddb69e78fb" to node "i-06d0e08c9565c4db7": could not attach volume "vol-0ea6117ddb69e78fb" to node "i-06d0e08c9565c4db7": InvalidVolume.NotFound: The volume 'vol-0ea6117ddb69e78fb' does not exist.
status code: 400, request id: 634b33d1-71cb-4901-8ee0-98933d2a5b47
I1011 19:15:15.274505 1 controller.go:167] Started VA processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274516 1 csi_handler.go:76] CSIHandler: processing VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274522 1 csi_handler.go:103] Attaching "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274528 1 csi_handler.go:208] Starting attach operation for "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.274536 1 csi_handler.go:320] Saving attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.278318 1 csi_handler.go:330] Saved attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 19:15:15.278339 1 csi_handler.go:86] Error processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53": failed to attach: PersistentVolume "pvc-069128c6ccdc11e8" is marked for deletion
I1011 20:37:23.328696 1 controller.go:167] Started VA processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.328709 1 csi_handler.go:76] CSIHandler: processing VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.328715 1 csi_handler.go:103] Attaching "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.328721 1 csi_handler.go:208] Starting attach operation for "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.328730 1 csi_handler.go:320] Saving attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.330919 1 reflector.go:286] github.com/kubernetes-csi/external-attacher/vendor/k8s.io/client-go/informers/factory.go:87: forcing resync
I1011 20:37:23.330975 1 controller.go:197] Started PV processing "pvc-069128c6ccdc11e8"
I1011 20:37:23.330990 1 csi_handler.go:350] CSIHandler: processing PV "pvc-069128c6ccdc11e8"
I1011 20:37:23.331030 1 csi_handler.go:386] CSIHandler: processing PV "pvc-069128c6ccdc11e8": VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53" found
I1011 20:37:23.346007 1 csi_handler.go:330] Saved attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.346033 1 csi_handler.go:86] Error processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53": failed to attach: PersistentVolume "pvc-069128c6ccdc11e8" is marked for deletion
I1011 20:37:23.346069 1 controller.go:167] Started VA processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.346077 1 csi_handler.go:76] CSIHandler: processing VA "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.346082 1 csi_handler.go:103] Attaching "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.346088 1 csi_handler.go:208] Starting attach operation for "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.346096 1 csi_handler.go:320] Saving attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.351068 1 csi_handler.go:330] Saved attach error to "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53"
I1011 20:37:23.351090 1 csi_handler.go:86] Error processing "csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53": failed to attach: PersistentVolume "pvc-069128c6ccdc11e8" is marked for deletion
md5-1fd07c8ba5954ddf526791656477cd92
>> kk get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-069128c6ccdc11e8 4Gi RWO Delete Terminating default/claim1 late-sc 22h
>> kk describe pv
Name: pvc-069128c6ccdc11e8
Labels: <none>
Annotations: pv.kubernetes.io/provisioned-by: com.amazon.aws.csi.ebs
Finalizers: [external-attacher/com-amazon-aws-csi-ebs]
StorageClass: late-sc
Status: Terminating (lasts <invalid>)
Claim: default/claim1
Reclaim Policy: Delete
Access Modes: RWO
Capacity: 4Gi
Node Affinity: <none>
Message:
Source:
Type: CSI (a Container Storage Interface (CSI) volume source)
Driver: com.amazon.aws.csi.ebs
VolumeHandle: vol-0ea6117ddb69e78fb
ReadOnly: false
VolumeAttributes: storage.kubernetes.io/csiProvisionerIdentity=1539123546345-8081-com.amazon.aws.csi.ebs
Events: <none>
md5-f2120c480f582d0bc21b7942f609ee11
kind: StorageClass
apiVersion: storage.k8s.io/v1 metadata:
name: late-sc
provisioner: com.amazon.aws.csi.ebs
volumeBindingMode: WaitForFirstConsumer
md5-e246bab3610d0863aa51d67126c191de
apiVersion: v1 kind: PersistentVolumeClaim
metadata:
name: claim1
spec: accessModes:
- ReadWriteOnce
storageClassName: late-sc
resources: requests:
storage: 4Gi
์์ ํ ์ผ :
PVC๊ฐ ์ญ์ ๋ ํ PV๋ EBS ๋ณผ๋ฅจ๊ณผ ํจ๊ป ์ญ์ ๋์ด์ผํฉ๋๋ค (๋ด ํ์ ์ ์ฑ
์ด ์ญ์ ๋์์ผ๋ฏ๋ก).
์ฌํ ๋ฐฉ๋ฒ (๊ฐ๋ฅํ ํ ์ต์ํ์ผ๋ก ์ ํํ๊ฒ) :
์ง๊ธ๊น์ง ๋น ๊ฒฐ์ ์
์ฐ๋ฆฌ๊ฐ ์์์ผ ํ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น? :
ํ๊ฒฝ :
kubectl version
) : ํด๋ผ์ด์ธํธ : v1.12.0 ์๋ฒ : v1.12.1uname -a
) :๋ช ๊ฐ์ง ์ง๋ฌธ :
1)์ด ์ํฉ์์ ์ด๋ป๊ฒ ๋ฒ์ด๋ ์ ์์ต๋๊น?
2) ๋ณผ๋ฅจ์ด ์ด๋ฏธ ์์ด๋ ๋๋ผ์ด๋ฒ๊ฐ ์ฑ๊ณตํ ํ PV๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ข
๋ฃ๋์ด์ผํฉ๋๊น?
/ ์๊ทธ ์คํ ๋ฆฌ์ง
PV์ ์์ง ์ฐ๊ฒฐ๊ธฐ์ ์ข ๋ฃ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณผ๋ฅจ์ด ๋ ธ๋์์ ์ฑ๊ณต์ ์ผ๋ก ๋ถ๋ฆฌ๋์๋์ง ํ์ธํ ์ ์์ต๋๊น?
์ธ๋ถ ์ฐ๊ฒฐ์ ๋ฐ AD ์ปจํธ๋กค๋ฌ์์ ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ ์ค๋ ๊ฒ์ด ์ข์ต๋๋ค.
cc @jsafrane
์ด๋ค ๋ฒ์ ์ ์ธ๋ถ ์ฒจ๋ถ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
v0.3.0์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ชจ๋ ์ธก๋ฉด ์๋์ฐจ๋ v0.3.0์ ์์ต๋๋ค. ์ด์ ์ v0.4.0์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ์ด ๋ฌธ์ ๋ v0.3.0์์ ์ฌ์ด๋์นด๋ฅผ ๋ค์ ๋ง๋ ํ์ ๋ฐ์ํฉ๋๋ค.
์ฒจ๋ถ ํ์ผ ๋ก๊ทธ๋ก ์ค๋ช ์ ๋ฐ์ดํธ
PV์ ์์ง ์ฐ๊ฒฐ๊ธฐ์ ์ข ๋ฃ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณผ๋ฅจ์ด ๋ ธ๋์์ ์ฑ๊ณต์ ์ผ๋ก ๋ถ๋ฆฌ๋์๋์ง ํ์ธํ ์ ์์ต๋๊น?
๋ณผ๋ฅจ์ด ์ฑ๊ณต์ ์ผ๋ก ๋ถ๋ฆฌ๋์ด์ผํฉ๋๋ค. AWS์์ ์ฑ๊ณต์ ์ผ๋ก ์ญ์ ๋์์ผ๋ฏ๋ก ๋ถ๋ฆฌํ์ง ์๊ณ ์ญ์ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ๋ํ ๋
ธ๋์์ lsblk
์ฌ์ฉํ์ฌ ์ฅ์น๊ฐ ์ฌ๋ผ์ง ๊ฒ์ ํ์ธํ์ต๋๋ค.
์ฐ๊ฒฐ์ด ์ฑ๊ณตํ๊ธฐ ์ ์ ๋ณผ๋ฅจ์ด ์ญ์ ํ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด๋น ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ฒ๊ทธ๊ฐ์์ ์ ์์ต๋๋ค.
VolumeAttachment ๊ฐ์ฒด๊ฐ ๊ณ์ ํ์๋ฉ๋๊น?
VolumeAttachment ๊ฐ์ฒด๊ฐ ๊ณ์ ํ์๋ฉ๋๊น?
์ด๋ป๊ฒ ํ์ธํ ์ ์์ต๋๊น?
kubectl get volumeattachment
๋ค. ์ฌ์ ํ ๊ฑฐ๊ธฐ :
>> kubectl get volumeattachment
NAME CREATED AT
csi-3b15269e725f727786c5aec3b4da3f2eebc2477dec53d3480a3fe1dd01adea53 2018-10-10T22:30:09Z
๋ก๊ทธ๋ฅผ ์ฝ์ผ๋ฉด A / D ์ปจํธ๋กค๋ฌ๊ฐ ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋๋ฐ ์ธ๋ถ ์ฐ๊ฒฐ๊ธฐ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ค์ VolumeAttachment๋ฅผ ์ญ์ ํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ํฌ๋๊ฐ ์์ง ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด PV ์ญ์ ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ํฌ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ PVC๋ ์ฌ๋ผ์ก์ต๋๋ค. A / D ์ปจํธ๋กค๋ฌ ๋ก๊ทธ๋ ์ด๋ป๊ฒ ์ฐพ์ ์ ์์ต๋๊น?
๋ง์คํฐ ๋ ธ๋ ์ธ controller-manager.log์ ์์ต๋๋ค. ๋ณผ๋ฅจ ์ด๋ฆ์ ๊ฒ์ํ์ฌ ํํฐ๋ง์ ์๋ ํ ์ ์์ต๋๋ค.
๋ค์์ ์ปจํธ๋กค๋ฌ ๋ก๊ทธ์ ๋๋ค.
E1011 19:14:10.336074 1 daemon_controller.go:304] default/csi-node failed with : error storing status for daemon set &v1.DaemonSet{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, O
bjectMeta:v1.ObjectMeta{Name:"csi-node", GenerateName:"", Namespace:"default", SelfLink:"/apis/apps/v1/namespaces/default/daemonsets/csi-node", UID:"d4e56145-cd89-11e8-9e90-0abab70c948
0", ResourceVersion:"467814", Generation:1, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63674882050, loc:(*time.Location)(0x5b9b560)}}, DeletionTimestamp:(*v1.Time)(nil), De
letionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string{"deprecated.daemonset.template.generation":"1"}, OwnerReferences:[]v1.OwnerReferenc
e(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.DaemonSetSpec{Selector:(*v1.LabelSelector)(0xc4233ac360), Template:v1.PodTemplateSpec{O
bjectMeta:v1.ObjectMeta{Name:"", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*t
ime.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{"app":"csi-node"}, Annotations:map[string]string(nil), Owner
References:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.PodSpec{Volumes:[]v1.Volume{v1.Volume{Name:"kubelet-dir",
VolumeSource:v1.VolumeSource{HostPath:(*v1.HostPathVolumeSource)(0xc4233ac380), EmptyDir:(*v1.EmptyDirVolumeSource)(nil), GCEPersistentDisk:(*v1.GCEPersistentDiskVolumeSource)(nil), AW
SElasticBlockStore:(*v1.AWSElasticBlockStoreVolumeSource)(nil), GitRepo:(*v1.GitRepoVolumeSource)(nil), Secret:(*v1.SecretVolumeSource)(nil), NFS:(*v1.NFSVolumeSource)(nil), ISCSI:(*v1
.ISCSIVolumeSource)(nil), Glusterfs:(*v1.GlusterfsVolumeSource)(nil), PersistentVolumeClaim:(*v1.PersistentVolumeClaimVolumeSource)(nil), RBD:(*v1.RBDVolumeSource)(nil), FlexVolume:(*v
1.FlexVolumeSource)(nil), Cinder:(*v1.CinderVolumeSource)(nil), CephFS:(*v1.CephFSVolumeSource)(nil), Flocker:(*v1.FlockerVolumeSource)(nil), DownwardAPI:(*v1.DownwardAPIVolumeSource)(
nil), FC:(*v1.FCVolumeSource)(nil), AzureFile:(*v1.AzureFileVolumeSource)(nil), ConfigMap:(*v1.ConfigMapVolumeSource)(nil), VsphereVolume:(*v1.VsphereVirtualDiskVolumeSource)(nil), Quobyte:(*v1.QuobyteVolumeSource)(nil), AzureDisk:(*v1.AzureDiskVolumeSource)(nil), PhotonPersistentDisk:(*v1.PhotonPersistentDiskVolumeSource)(nil), Projected:(*v1.ProjectedVolumeSource)(nil), PortworxVolume:(*v1.PortworxVolumeSource)(nil), ScaleIO:(*v1.ScaleIOVolumeSource)(nil), StorageOS:(*v1.StorageOSVolumeSource)(nil)}}, v1.Volume{Name:"plugin-dir", VolumeSource:v1.VolumeSource{HostPath:(*v1.HostPathVolumeSource)(0xc4233ac3a0), EmptyDir:(*v1.EmptyDirVolumeSource)(nil), GCEPersistentDisk:(*v1.GCEPersistentDiskVolumeSource)(nil), AWSElasticBlockStore:(*v1.AWSElasticBlockStoreVolumeSource)(nil), GitRepo:(*v1.GitRepoVolumeSource)(nil), Secret:(*v1.SecretVolumeSource)(nil), NFS:(*v1.NFSVolumeSource)(nil), ISCSI:(*v1.ISCSIVolumeSource)(nil), Glusterfs:(*v1.GlusterfsVolumeSource)(nil), PersistentVolumeClaim:(*v1.PersistentVolumeClaimVolumeSource)(nil), RBD:(*v1.RBDVolumeSource)(nil), FlexVolume:(*v1.FlexVolumeSource)(nil), Cinder:(*v1.CinderVolumeSource)(nil), CephFS:(*v1.CephFSVolumeSource)(nil), Flocker:(*v1.FlockerVolumeSource)(nil), DownwardAPI:(*v1.DownwardAPIVolumeSource)(nil), FC:(*v1.FCVolumeSource)(nil), AzureFile:(*v1.AzureFileVolumeSource)(nil), ConfigMap:(*v1.ConfigMapVolumeSource)(nil), VsphereVolume:(*v1.VsphereVirtualDiskVolumeSource)(nil), Quobyte:(*v1.QuobyteVolumeSource)(nil), AzureDisk:(*v1.AzureDiskVolumeSource)(nil), PhotonPersistentDisk:(*v1.PhotonPersistentDiskVolumeSource)(nil), Projected:(*v1.ProjectedVolumeSource)(nil), PortworxVolume:(*v1.PortworxVolumeSource)(nil), ScaleIO:(*v1.ScaleIOVolumeSource)(nil), StorageOS:(*v1.StorageOSVolumeSource)(nil)}}, v1.Volume{Name:"device-dir", VolumeSource:v1.VolumeSource{HostPath:(*v1.HostPathVolumeSource)(0xc4233ac3c0), EmptyDir:(*v1.EmptyDirVolumeSource)(nil), GCEPersistentDisk:(*v1.GCEPersistentDiskVolumeSource)(nil), AWSElasticBlockStore:(*v1.AWSElasticBlockStoreVolumeSource)(nil), GitRepo:(*v1.GitRepoVolumeSource)(nil), Secret:(*v1.SecretVolumeSource)(nil), NFS:(*v1.NFSVolumeSource)(nil), ISCSI:(*v1.ISCSIVolumeSource)(nil), Glusterfs:(*v1.GlusterfsVolumeSource)(nil), PersistentVolumeClaim:(*v1.PersistentVolumeClaimVolumeSource)(nil), RBD:(*v1.RBDVolumeSource)(nil), FlexVolume:(*v1.FlexVolumeSource)(nil), Cinder:(*v1.CinderVolumeSource)(nil), CephFS:(*v1.CephFSVolumeSource)(nil), Flocker:(*v1.FlockerVolumeSource)(nil), DownwardAPI:(*v1.DownwardAPIVolumeSource)(nil), FC:(*v1.FCVolumeSource)(nil), AzureFile:(*v1.AzureFileVolumeSource)(nil), ConfigMap:(*v1.ConfigMapVolumeSource)(nil), VsphereVolume:(*v1.VsphereVirtualDiskVolumeSource)(nil), Quobyte:(*v1.QuobyteVolumeSource)(nil), AzureDisk:(*v1.AzureDiskVolumeSource)(nil), PhotonPersistentDisk:(*v1.PhotonPersistentDiskVolumeSource)(nil), Projected:(*v1.ProjectedVolumeSource)(nil), PortworxVolume:(*v1.PortworxVolumeSource)(nil), ScaleIO:(*v1.ScaleIOVolumeSource)(nil), StorageOS:(*v1.StorageOSVolumeSource)(nil)}}}, InitContainers:[]v1.Container(nil), Containers:[]v1.Container{v1.Container{Name:"csi-driver-registrar", Image:"quay.io/k8scsi/driver-registrar:v0.3.0", Command:[]string(nil), Args:[]string{"--v=5", "--csi-address=$(ADDRESS)"}, WorkingDir:"", Ports:[]v1.ContainerPort(nil), EnvFrom:[]v1.EnvFromSource(nil), Env:[]v1.EnvVar{v1.EnvVar{Name:"ADDRESS", Value:"/csi/csi.sock", ValueFrom:(*v1.EnvVarSource)(nil)}, v1.EnvVar{Name:"KUBE_NODE_NAME", Value:"", ValueFrom:(*v1.EnvVarSource)(0xc4233ac400)}}, Resources:v1.ResourceRequirements{Limits:v1.ResourceList(nil), Requests:v1.ResourceList(nil)}, VolumeMounts:[]v1.VolumeMount{v1.VolumeMount{Name:"plugin-dir", ReadOnly:false, MountPath:"/csi", SubPath:"", MountPropagation:(*v1.MountPropagationMode)(nil)}}, VolumeDevices:[]v1.VolumeDevice(nil), LivenessProbe:(*v1.Probe)(nil), ReadinessProbe:(*v1.Probe)(nil), Lifecycle:(*v1.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"Always", SecurityContext:(*v1.SecurityContext)(0xc422ccc050), Stdin:false, StdinOnce:false, TTY:false}, v1.Container{Name:"ebs-plugin", Image:"quay.io/bertinatto/ebs-csi-driver:testing", Command:[]string(nil), Args:[]string{"--endpoint=$(CSI_ENDPOINT)", "--logtostderr", "--v=5"}, WorkingDir:"", Ports:[]v1.ContainerPort(nil), EnvFrom:[]v1.EnvFromSource(nil), Env:[]v1.EnvVar{v1.EnvVar{Name:"CSI_ENDPOINT", Value:"unix:/csi/csi.sock", ValueFrom:(*v1.EnvVarSource)(nil)}, v1.EnvVar{Name:"AWS_ACCESS_KEY_ID", Value:"", ValueFrom:(*v1.EnvVarSource)(0xc4233ac460)}, v1.EnvVar{Name:"AWS_SECRET_ACCESS_KEY", Value:"", ValueFrom:(*v1.EnvVarSource)(0xc4233ac480)}}, Resources:v1.ResourceRequirements{Limits:v1.ResourceList(nil), Requests:v1.ResourceList(nil)}, VolumeMounts:[]v1.VolumeMount{v1.VolumeMount{Name:"kubelet-dir", ReadOnly:false, MountPath:"/var/lib/kubelet", SubPath:"", MountPropagation:(*v1.MountPropagationMode)(0xc422c717e0)}, v1.VolumeMount{Name:"plugin-dir", ReadOnly:false, MountPath:"/csi", SubPath:"", MountPropagation:(*v1.MountPropagationMode)(nil)}, v1.VolumeMount{Name:"device-dir", ReadOnly:false, MountPath:"/dev", SubPath:"", MountPropagation:(*v1.MountPropagationMode)(nil)}}, VolumeDevices:[]v1.VolumeDevice(nil), LivenessProbe:(*v1.Probe)(nil), ReadinessProbe:(*v1.Probe)(nil), Lifecycle:(*v1.Lifecycle)(nil), TerminationMessagePath:"/dev/termination-log", TerminationMessagePolicy:"File", ImagePullPolicy:"Always", SecurityContext:(*v1.SecurityContext)(0xc422ccc0f0), Stdin:false, StdinOnce:false, TTY:false}}, RestartPolicy:"Always", TerminationGracePeriodSeconds:(*int64)(0xc422d68b30), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:"ClusterFirst", NodeSelector:map[string]string(nil), ServiceAccountName:"csi-node-sa", DeprecatedServiceAccount:"csi-node-sa", AutomountServiceAccountToken:(*bool)(nil), NodeName:"", HostNetwork:true, HostPID:false, HostIPC:false, ShareProcessNamespace:(*bool)(nil), SecurityContext:(*v1.PodSecurityContext)(0xc42325ec60), ImagePullSecrets:[]v1.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(*v1.Affinity)(nil), SchedulerName:"default-scheduler", Tolerations:[]v1.Toleration(nil), HostAliases:[]v1.HostAlias(nil), PriorityClassName:"", Priority:(*int32)(nil), DNSConfig:(*v1.PodDNSConfig)(nil), ReadinessGates:[]v1.PodReadinessGate(nil), RuntimeClassName:(*string)(nil)}}, UpdateStrategy:v1.DaemonSetUpdateStrategy{Type:"RollingUpdate", RollingUpdate:(*v1.RollingUpdateDaemonSet)(0xc424139a40)}, MinReadySeconds:0, RevisionHistoryLimit:(*int32)(0xc422d68b38)}, Status:v1.DaemonSetStatus{CurrentNumberScheduled:2, NumberMisscheduled:0, DesiredNumberScheduled:3, NumberReady:0, ObservedGeneration:1, UpdatedNumberScheduled:2, NumberAvailable:0, NumberUnavailable:3, CollisionCount:(*int32)(nil), Conditions:[]v1.DaemonSetCondition(nil)}}: Operation cannot be fulfilled on daemonsets.apps "csi-node": the object has been modified; please apply your changes to the latest version and try again
I1011 19:15:14.740106 1 pv_controller.go:601] volume "pvc-069128c6ccdc11e8" is released and reclaim policy "Delete" will be executed
I1011 19:15:14.756316 1 pv_controller.go:824] volume "pvc-069128c6ccdc11e8" entered phase "Released"
I1011 19:15:14.759557 1 pv_controller.go:1294] isVolumeReleased[pvc-069128c6ccdc11e8]: volume is released
I1011 19:15:14.939461 1 pv_controller.go:1294] isVolumeReleased[pvc-069128c6ccdc11e8]: volume is released
I1011 19:15:14.954828 1 pv_controller.go:1294] isVolumeReleased[pvc-069128c6ccdc11e8]: volume is released
๋ง์ง๋ง ์ค์ด ๋ฌดํํ ๋ฐ๋ณต๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ด์ ๋ ๋ฒ ๋ ๋ฐ์ํ์ต๋๋ค. v1.12์์ ๋ชจ๋
๋ค์ ์์
์ ์ํํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
Chandras-MacBook-Pro:kubernetes-kafka chandra$ kubectl get pv | grep "kafka/"
pvc-5124cf7a-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-0 kafka-zookeeper 21h
pvc-639023b2-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-1 kafka-zookeeper 21h
pvc-7d88b184-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-2 kafka-zookeeper 21h
pvc-9ea68541-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-0 kafka-broker 21h
pvc-ae795177-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-1 kafka-broker 21h
๊ทธ๋ฐ ๋ค์ pv
๊ฐ๋ณ์ ์ผ๋ก ์๋์ผ๋ก ํธ์ง ํ ๋ค์ ๋ค์๊ณผ ๊ฐ์ finalizers
๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
```๊ฒฐ์น ์ :
์๋ฃ๋๋ฉด ์ข ๋ฃ ์ํ์ ์๋ PV๊ฐ ๋ชจ๋ ์ฌ๋ผ์ก์ต๋๋ค !!!
@ chandraprakash1392์ ๋ต๋ณ์ pvc
์ด Terminating
์ํ์์๋ ๋ฉ์ถ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ์ ํจํฉ๋๋ค.
pvc ๊ฐ์ฒด๋ฅผ ํธ์งํ๊ณ finalizers
๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.
์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ผ๋ฟ์ ๋๋ค. @bertinatto @leakingtapan ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๊ณ ์์ธํ CSI ๋๋ผ์ด๋ฒ ๋ฐ ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
์ข ๋ฃ์๋ฅผ ์ํด ์ ๊ฑฐํ๋ ์
kubectl patch pvc db-pv-claim -p '{"metadata":{"finalizers":null}}'
kubectl patch pod db-74755f6698-8td72 -p '{"metadata":{"finalizers":null}}'
๊ทธ๋ฐ ๋ค์ ์ญ์ ํ ์ ์์ต๋๋ค.
!!! ์ค์ !!! :
https://github.com/kubernetes/kubernetes/issues/78106 ๋ ์ฝ์ด
ํจ์น ๋ช
๋ น์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ฉฐ ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค.
๋ณผ๋ฅจ์ ์ฌ์ ํ โโ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. kubectl get volumeattachments!
์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ผ๋ฟ์ ๋๋ค. @bertinatto @leakingtapan ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๊ณ ์์ธํ CSI ๋๋ผ์ด๋ฒ ๋ฐ ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
๋ก๊ทธ ๋ฉ์์ง๊ฐ @leakingtapan์ด ๋ณด๊ณ ํ ๋ฉ์์ง์ ์ฝ๊ฐ ๋ค๋ฅธ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ช ๋ฒ ์๋ํ ํ ์ฌํ ํ ์
ํ๋ฌ๊ทธ์ธ (ํ๋ก ๋น ์ ๋) : https://gist.github.com/bertinatto/16f5c1f76b1c2577cd66dbedfa4e0c7c
ํ๋ฌ๊ทธ์ธ (์ฒจ๋ถ ์) : https://gist.github.com/bertinatto/25ebd591ffc88d034f5b4419c0bfa040
์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์ : https://gist.github.com/bertinatto/a2d82fdbccbf7ec0bb5e8ab65d47dcf3
์ฌ๊ธฐ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ข ๋ฃ์๋ฅผ ์ญ์ ํด์ผํ์ต๋๋ค. ๋ค์์ pv์ ๋ํ ์ค๋ช ์ ๋๋ค.
[root@ip-172-31-44-98 stateful]# k describe pv pvc-1c6625e2-1157-11e9-a8fc-0275b365cbce
Name: pvc-1c6625e2-1157-11e9-a8fc-0275b365cbce
Labels: failure-domain.beta.kubernetes.io/region=us-east-1
failure-domain.beta.kubernetes.io/zone=us-east-1a
Annotations: kubernetes.io/createdby: aws-ebs-dynamic-provisioner
pv.kubernetes.io/bound-by-controller: yes
pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs
Finalizers: [kubernetes.io/pv-protection]
StorageClass: default
Status: Terminating (lasts <invalid>)
Claim: monitoring/storage-es-data-0
Reclaim Policy: Delete
Access Modes: RWO
Capacity: 12Gi
Node Affinity: <none>
Message:
Source:
Type: AWSElasticBlockStore (a Persistent Disk resource in AWS)
VolumeID: aws://us-east-1a/vol-0a20e4f50b60df855
FSType: ext4
Partition: 0
ReadOnly: false
Events: <none>
๋ก๊ทธ๋ฅผ ์ฝ์ผ๋ฉด A / D ์ปจํธ๋กค๋ฌ๊ฐ ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋๋ฐ ์ธ๋ถ ์ฐ๊ฒฐ๊ธฐ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ค์ VolumeAttachment๋ฅผ ์ญ์ ํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ณผ๋ฅจ์ ์ฌ์ฉํ๋ ํฌ๋๊ฐ ์์ง ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด PV ์ญ์ ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
@jsafrane ํฌ๋๊ฐ ํ๋๋ง ์๊ณ ํฌ๋๊ฐ ์ญ์ ๋ ํ PVC๋ฅผ ์ญ์ ํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ์ผ๊ด๋๊ฒ ์ฌํ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ AttachVolume์ด ์คํจ ํ ๋ ๋ฐ์ํฉ๋๋ค.
์ฌํํ๊ธฐ ์ํด 3 ๋ ธ๋ k8s ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ผ๋ก EBS ๋ณผ๋ฅจ์ ์์ฑ ํ ํ ์ ์ ํ๋ก๋น์ ๋ ๋ PV๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ์ ๋ฐฐํฌ :
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-test2
annotations:
pv.kubernetes.io/provisioned-by: ebs.csi.aws.com
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
csi:
driver: ebs.csi.aws.com
fsType: ext3
volumeHandle: vol-0e850f49c7f6aeff0
persistentVolumeReclaimPolicy: Delete
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: claim1
spec:
accessModes:
- ReadWriteOnce
storageClassName: ""
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
name: app
spec:
containers:
- name: app
image: centos:7
command: ["/bin/sh"]
args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"]
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: claim1
์์ญ ๋ถ์ผ์น๋ก ์ธํด ํฌ๋ ์์ฑ์ ์คํจํ ๊ฒฝ์ฐ ํฌ๋๋ฅผ ์ญ์ ํ ๋ค์ PVC๋ฅผ ์ญ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ PV๋ ์ข ๋ฃ ์ํ์์ ๋ฉ ์ถฅ๋ ๋ค. ๋๋ ์ด๊ฒ์ v1.13์์ ์ฌํํ๋ค
VolumeAttachment ๊ฐ์ฒด :
apiVersion: v1
items:
- apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata:
annotations:
csi.alpha.kubernetes.io/node-id: i-056c2441224e9988f
creationTimestamp: 2019-01-07T20:41:36Z
finalizers:
- external-attacher/ebs-csi-aws-com
name: csi-92e3ad4dcfc45346bd1efae253530bb83f34c7cf0ecb3e58da0cf97645de2e54
resourceVersion: "390447"
selfLink: /apis/storage.k8s.io/v1/volumeattachments/csi-92e3ad4dcfc45346bd1efae253530bb83f34c7cf0ecb3e58da0cf97645de2e54
uid: a0632702-12bc-11e9-844f-0a6817dc5d60
spec:
attacher: ebs.csi.aws.com
nodeName: ip-172-20-106-186.ec2.internal
source:
persistentVolumeName: pv-test2
status:
attachError:
message: PersistentVolume "pv-test2" is marked for deletion
time: 2019-01-07T21:17:27Z
attached: false
kind: List
metadata:
resourceVersion: ""
selfLink: ""
๋๋ ๋ ๋๋ฆฐ volumeattachment ๊ฐ์ฒด๊ฐ ๋ฐ์ ์๊ฐ csi_attacher.go๋ ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ๋ ๋ฐ ์คํจ๋ volumeattachment ๊ฐ์ฒด๊ฐ ์ญ์ ๋์ง ์์ต๋๋ค
waitForVolumeAttachment
๊ฐ ์คํจํ๋ฉด ๊ฐ์ฒด๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ๋น์ ์ ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น? ์์ ์ฌํญ์ ๋ณด๋ด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
/ cc @jsafrane @ msau42
์กด์ฌํ์ง ์๋ ๋ณผ๋ฅจ ID๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ฌํํ์ต๋๋ค ( "๋ณผ๋ฅจ 'vol-01213456789'๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค."๋ก ์ฐ๊ฒฐ ์คํจ).
waitForVolumeAttachment
๊ฐ ์คํจํ๋ฉด ๊ฐ์ฒด๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ๊น๋ค ๋กญ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ์ ํ์ ์ฐ๊ฒฐ ์คํจ๊ฐ์์ ์ ์์ต๋๋ค.
waitForVolumeAttachment
๊ฐ ์คํจํ๋ฉด A / D ์ปจํธ๋กค๋ฌ๋ ๊ทธ๊ฒ์ด ์ด๋ค ์ข
๋ฅ์ ์คํจ์ธ์ง ์์ง ๋ชปํฉ๋๋ค. ์ธ๋ถ ์ฐ๊ฒฐ์๋ ์ฌ์ ํ ๋ณผ๋ฅจ์ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ๋ฉฐ ๊ฒฐ๊ตญ ์ฑ๊ณตํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
ํนํ ์ฐ๊ฒฐ ์๊ฐ์ด ์ด๊ณผ ๋ ๊ฒฝ์ฐ (๋ณผ๋ฅจ์ด ๋ ์ค๋ ์๊ฐ ๋์ "์ฐ๊ฒฐ ์ค"์ด์์) waitForAttachmentState
๊ฐ ์คํจ ํ ๋ AWS CSI ๋๋ผ์ด๋ฒ๊ฐ ๋ณผ๋ฅจ์ ๋ถ๋ฆฌํ์ง ์์์ ์ ์ ์์ต๋๋ค.
https://sourcegraph.com/github.com/kubernetes-sigs/aws-ebs-csi-driver@ff1fe8e1399784657c10d67649146429dcb93515/-/ blob / pkg / cloud / cloud.go # L300
์ฆ, CSI ๋๋ผ์ด๋ฒ๊ฐ ์๊ฐ ์ด๊ณผ๋ฅผ ๋ฐํ ํ์์๋ ๋ถ๊ตฌํ๊ณ AWS๋ ์ฌ์ ํ ๋ณผ๋ฅจ ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. ๋ค์ ControllerPublish๋ ์ด์ ์ ๋จ์ waitForAttachmentState
์ฌ๊ฐํด์ผํฉ๋๋ค. ์ด ์์ ์์ A / D ์ปจํธ๋กค๋ฌ ๋ ๋ณผ๋ฅจ์ ๋ถ๋ฆฌ ํ ์ โโ์์ผ๋ฏ๋ก VolumeAttachment๋ฅผ ์ญ์
๋ช ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
1 A / D ์ปจํธ๋กค๋ฌ๋ ๋ณผ๋ฅจ์ด ์ฐ๊ฒฐ๋๊ณ ์์์ ๊ธฐ์ตํฉ๋๋ค. ์ฐ๊ฒฐ๋์ง ์์๊ฑฐ๋ (ํฌ๋๋ฅผ ์์ํ ์ ์์) ๋ถ๋ฆฌ๋์ง ์์์ต๋๋ค (๋ณผ๋ฅจ์ด DSW์์ ์ฌ๋ผ์ง ๋ Detach ()๋ฅผ ํธ์ถํด์ผ ํจ). ์ด๊ฒ์ ํนํ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ค์ ์์ํ ํ์ด ์ํ๋ฅผ ์ฌ๊ตฌ์ฑ ํ ๋ ๋งค์ฐ ๋ณต์ก ํ ์ ์์ต๋๋ค.
waitForVolumeAttachment
์คํจ์ VolumeAttachment๋ฅผ ์ญ์ ํ ์ ์์ง๋ง ControllerPublish / Unpublish๋ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ (๊ธฐ๋ณธ์ ์ผ๋ก 15 ์ด) ์ง๊ธ ๊ตฌํ๋๊ณ ์์์ ์ค๋ช
ํ๋๋ก "์ฌ๊ฐ"ํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์๊ฐ ์ ํ์ 15 ์ด ๋๋ฆฌ๋ฉด ๋์์ด ๋ ์ ์์ต๋๋ค (๊ทธ๋ฌ๋ CSI ๋ณผ๋ฅจ ํ๋ฌ๊ทธ์ธ์ ํ๋ ์ฝ๋ฉ๋์ด ๊ตฌ์ฑ ํ ์ ์์).cc @gnufied @bertinatto
@ jingxu97 , VolumeManager์์ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๊ฑฐ๋ ๋ง์ดํธ ํด์ ํ์ง ์์ ๋ณผ๋ฅจ ์ฌ๊ตฌ์ฑ์ ๋ฌด์ธ๊ฐ๊ฐ ์๋ค๋ ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ตํฉ๋๊น? ์ฌ๊ธฐ์ ๋น์ทํ ๊ฒ์ด ํ์ํ ์๋ ์์ต๋๋ค.
@jsafrane ์ด https://github.com/kubernetes/kubernetes/pull/71276 ๊ณผ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@ jingxu97 ์ค์ ๋ก # 71276์ด ๋์์ด๋์์ต๋๋ค.
90 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ์ต์ ๋ฌธ์ ๋ก ํ์ํฉ๋๋ค.
๋นํ์ฑ ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30 ์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ์ข
๋ฃ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
ํ์ฌ ์ข
๋ฃํ์ธ์.
sig-testing, kubernetes / test-infra ๋ฐ / ๋๋ fejta์ ํผ๋๋ฐฑ์
/ lifecycle stale
/ remove-lifecycle stale
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ฌ์ฉ์ kubectl edit pv | pvc ๋ฐ ์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ์ฌ ๊ฐ์ฒด๋ฅผ ์ญ์ ํด์ผํ์ต๋๋ค.
@pniederlag ์ด ์ฌํ ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด PVC ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ํด๋น PVC๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ํฌ๋๋ ์ญ์ ๋์์ต๋๊น?
@pnegahdar ๋ ์ฌ์ฉ์ค์ธ kubernetes์ ๋ฒ์ ์ ํ์ธํ๊ณ ์ถ์ต๋๋ค.
@pniederlag ์ด ์ฌํ ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด PVC ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ํด๋น PVC๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ํฌ๋๋ ์ญ์ ๋์์ต๋๊น?
@ msau42 ๋ถํํ๋ ์ด๊ฒ์ ์ฝ๊ฒ ์ฌํ ํ ์์๋ ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ๋๋ ์์ง kubernetes๋ฅผ ์ฒ์ ์ ํ๊ณ pod๋ก ๋ณผ๋ฅจ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ผ๋ฉฐ pod๊ฐ ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ์ง ๋ชปํ๊ฒํ๋ ๋ฐ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค (ํธ๋ฅธ ๋์คํฌ ์ง์). ๋ฐ๋ผ์ ๋ด ์ฌ์ฉ ์ฌ๋ก๋ ์๋ง๋ ์ ์์ ์ด์ง ์์์ ๊ฒ์ ๋๋ค (terraform ๋ฐ kubernetes ๋์ ๋ณด๋๋ฅผ ๋ณ๋ ฌ๋ก ์ฌ์ฉ).
์ข ๋ฃ์๋ฅผ ์ํด ์ ๊ฑฐํ๋ ์
kubectl patch pvc db-pv-claim -p '{"metadata":{"finalizers":null}}'
kubectl patch pod db-74755f6698-8td72 -p '{"metadata":{"finalizers":null}}'
๊ทธ๋ฐ ๋ค์ ์ญ์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์ค๋ฅ๋ฅผ ์ดํด๋ณด๋ฉด # 73098๊ณผ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ์คํ์ด์ค๋ฅผ ์ญ์ ํ๋ ๋์ ๋จ์ ๋ฆฌ์์ค์ deleteTimestamp๊ฐ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ด ์ปจํธ๋กค๋ฌ๊ฐ ์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ํ ๋ ์ถฉ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ์์ ์ฌํญ์ 1.14+์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
90 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ์ต์ ๋ฌธ์ ๋ก ํ์ํฉ๋๋ค.
๋นํ์ฑ ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30 ์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ์ข
๋ฃ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
ํ์ฌ ์ข
๋ฃํ์ธ์.
sig-testing, kubernetes / test-infra ๋ฐ / ๋๋ fejta์ ํผ๋๋ฐฑ์
/ lifecycle stale
/ remove-lifecycle stale
v1.14.6์์ ๊ฒฝํํ์ญ์์ค. ์ฒ์์ ์ฌ๊ธฐ์ ๋ด ๋ฌธ์ ๋ฅผ๋ณด๊ณ ํ์ต๋๋ค : https://github.com/longhorn/longhorn/issues/722 ๋๋ Longhorn๋ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์. Longhorn์ ๋ณผ๋ฅจ์ ์ญ์ ํ์ฌ ์์ ๋ ์์
์ ์ํํ๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. API๋ฅผ ํตํด pvc๋ฅผ ์ญ์ ํ๋ ค๊ณ ํ๋ฉด ํฌ๋๊ฐ removing
์ํ waiting on kubernetes.io/pv-protection
์์ ๋ฉ ์ถฅ๋ ๋ค.
"name": "pvc-dadb69dd-04a2-11ea-9e5f-005056a36714",
"persistentVolumeReclaimPolicy": "Delete",
"removed": "2019-11-12T16:46:04Z",
"removedTS": 1573577164000,
"state": "removing",
"status": {
"phase": "Bound",
"type": "/v3/cluster/schemas/persistentVolumeStatus"
},
"storageClassId": "longhorn-new",
"transitioning": "error",
"transitioningMessage": "waiting on kubernetes.io/pv-protection",
"type": "persistentVolume",
"uuid": "dc89634d-04a2-11ea-98c4-005056a34210",
"volumeMode": "Filesystem"
}
๋ค์ ์์ ์ ์ํํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
pvc-5124cf7a-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-0 kafka-zookeeper 21h pvc-639023b2-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-1 kafka-zookeeper 21h pvc-7d88b184-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-2 kafka-zookeeper 21h pvc-9ea68541-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-0 kafka-broker 21h pvc-ae795177-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-1 kafka-broker 21h
๊ทธ๋ฐ ๋ค์
pv
๊ฐ๋ณ์ ์ผ๋ก ์๋์ผ๋ก ํธ์ง ํ ๋ค์ ๋ค์๊ณผ ๊ฐ์finalizers
๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.- kubernetes.io/pv-protection``` Once done, the PVs those were in Terminating condition were all gone!!!
์๋ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ pv๋ฅผ ํธ์ง ํ ๋ค์ definiton์์ ์ข ๋ฃ ์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํฉ๋๋ค.
kubectl edit pv pv-name-id
์ง๊ธ๊น์ง ์ค์ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น? 2019 ๋ ์ฒซ ๋ฌ์์ด ๋ฌธ์ ๋ฅผ ๋ณธ ๊ธฐ์ต์ด ์์ง๋ง, ์ฌ์ ํ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ํ์ด๋ ๋ผ์ด์ ํจ์น๋ฅผ ๋ด ๋๋ค. ์ํ๊น๊ฒ๋์ด "๋ฒ๊ทธ"๋ก ์ธํด ํน์ ํญ๋ชฉ์ ์๋ํ ํ ์ ์์ต๋๋ค.
๋๊ตฐ๊ฐ ์ด๊ฒ์ ๋ํ ์ง๋จ์ด ์์ต๋๊น? ํต์ฐฐ๋ ฅ์ด ์์ต๋๊น? 7 ๊ฐ์์ด ์ง๋ ํ์๋์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์ผ์์ ์์ผ๋ฉฐ 7 ๊ฐ์ ํ์๋ ๋ ์ด์ ์ ๋ณด๋ฅผ ์ป์ง ๋ชปํ์ต๋๋ค.
์์ ๋ ๋ค์ํ ๊ทผ๋ณธ ์์ธ์ด ์์ต๋๋ค.
์ถ๊ฐ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๋ ค๋ฉด ์ฌํ ๋จ๊ณ, pv ๋ณดํธ ์ปจํธ๋กค๋ฌ๊ฐ ์ํํ๋ ์์ ์ ํ์ธํ๊ธฐ์ํ kube-controller-manager์ ๋ ์์ธํ ๋ก๊ทธ, ์ถ๊ฐ ๋๋ฒ๊น ์์ํ ๋ค๋ฅธ ์ปจํธ๋กค๋ฌ / ๋๋ผ์ด๋ฒ์ ๋ ๋ง์ ๋ก๊ทธ๊ฐ ํ์ํฉ๋๋ค.
90 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ์ต์ ๋ฌธ์ ๋ก ํ์ํฉ๋๋ค.
๋นํ์ฑ ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30 ์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ์ข
๋ฃ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
ํ์ฌ ์ข
๋ฃํ์ธ์.
sig-testing, kubernetes / test-infra ๋ฐ / ๋๋ fejta์ ํผ๋๋ฐฑ์
/ lifecycle stale
/ remove-lifecycle stale
1.17.5์์ ์ฌ์ ํ ๋ฐ์
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager E0421 23:53:59.806754 1 aws.go:2567] Error describing volume "vol-0a2f0e84304490c43": "InvalidVolume.NotFound: The volume 'vol-0a2f0e84304490c43' does not exist.\n\tstatus code: 400, request id: 58776735-a463-40f3-ae7b-95d602e2a466"
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager E0421 23:53:59.806791 1 aws.go:2299] InvalidVolume.NotFound: The volume 'vol-0a2f0e84304490c43' does not exist.
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager status code: 400, request id: 58776735-a463-40f3-ae7b-95d602e2a466
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager I0421 23:53:59.806802 1 aws.go:1965] Releasing in-process attachment entry: bd -> volume vol-0a2f0e84304490c43
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager E0421 23:53:59.806809 1 attacher.go:86] Error attaching volume "aws://us-west-2a/vol-0a2f0e84304490c43" to node "ip-172-16-112-89.us-west-2.compute.internal": InvalidVolume.NotFound: The volume 'vol-0a2f0e84304490c43' does not exist.
kube-controller-manager-ip-172-16-113-117.us-west-2.compute.internal kube-controller-manager status code: 400, request id: 58776735-a463-40f3-ae7b-95d602e2a466
๋๋ ์ด๊ฒ์ ๋ง์๋ค. PV์๋ ์ข ๋ฃ ์ "foregroundDeletion"์ด ์์ต๋๋ค. PV๋ฅผ ํธ์งํ๊ณ ์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ๋ฉด PV๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ์๋ ํธ์ง์ ํตํด ์ด๋ฌํ ํ์ด๋ ๋ผ์ด์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ค๋จํ ๊น์?
ํ์ฌ PV๋ฅผ ์ฌ์ฉํ๋ ํฌ๋ ๋๋ ์์ ์ด์๋ ๊ฒฝ์ฐ ์ญ์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
๊ฐ์ ๋ฌธ์ , PV๋ฅผ ์ญ์ ํ๋ ค๋ฉด - kubernetes.io/pv-protection
๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํด์ผํ์ต๋๋ค. ์ด๊ฒ์ k8s 1.17.9์ AKS์์ ๋ฐ์ํ์ต๋๋ค.
๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. aws์์ ebs๋ฅผ ์๋์ผ๋ก ์ญ์ ํ ๋ค์ pv๋ฅผ ์ญ์ ํ๋ ค๊ณ ํ์ง๋ง ์ข ๋ฃ ์ํ์์ ๋ฉ์ท์ต๋๋ค.
pvc-60fbc6ab-8732-4d1e-ae32-b42295553fa1 95Gi RWO Delete Terminating ray-prod/data-newcrate-1 gp2 5d4h
์ ์๊ฒ ๊ฑฐ์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๋ Centos 7์ Kubernetes 1.19.0์์ NFS๋ฅผ ํตํด TerraMaster NAS ๊ณต์ ๋ฅผ ๋ง์ดํธํ๊ณ ์์ต๋๋ค. ํฌ๋ฆ ์ค์น๋ฅผ ์ค๋นํ๊ธฐ ์ํด์ด ๋ ๊ฐ์ง ์ ํ์ ํญ๋ชฉ ์์ฑ์ ํ ์คํธํ๋ฉด์ PV์ PVC๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ์ต๋๋ค. ๋ด๊ฐ ๊ทธ๋ค์ ์ ๊ฑฐํ๋ ค๊ณ ํ ๋ ๊ทธ๋ค์ ๋งค๋ฌ๋ ธ๋ค. ๋ํ ์ข ๋ฃ์๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด pv๋ฅผ ์๋์ผ๋ก ํธ์งํด์ผํ๊ณ (๋ํ kubernetes.io/pv-protection as andrei-dascalu) ๋ง์นจ๋ด ์ญ์ ๋์์ต๋๋ค.
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ :
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
storageClass: longhorn
PVC ๋ฐ PV๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋๋ฅผ ์ญ์ ํ์ฌ "์ข ๋ฃ"์ํ๋ก ๋ฉ์ถฐ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์๋์, ๋ด PV์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ํฌ๋๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์์ต๋๋ค.
On Friday, September 25, 2020, 04:26:04 AM CDT, lsambolino <[email protected]> wrote:
PVC ๋ฐ PV๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋๋ฅผ ์ญ์ ํ์ฌ "์ข ๋ฃ"์ํ๋ก ๋ฉ์ถฐ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์
๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ๊ฑฐ๋ ๊ตฌ๋
์ ์ทจ์ํ์ธ์.
์ข
๋ฃ ์ํ์์ ์ฌ๋ฌ ๊ฐ์ PVC๊ฐ ๋ถ์ด ์์ต๋๋ค.
kubectl describe pvcname (ํฌ๋๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด)
kubectl patch pvc pvcname -p '{ "metadata": { "finalizers": null}}'
kubectl ํจ์น ํฌ๋ podname -p '{ "metadata": { "finalizers": null}}'
์ด๊ฒ์ ๋ด K8S ํด๋ฌ์คํฐ์์ ์๋ํ์ต๋๋ค.
pvc๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ด๋ฌํ ๋ช ๋ น์ ๊ฒ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@wolfewicz @DMXGuru ํฌ๋๊ฐ ์ญ์ ๋๋ฉด pvc๊ฐ ์ข
๋ฃ ์ํ์
์ผ์ด์ค๋ฅผ ์ฌํํ๊ณ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ๋ถ๋ฅ์ ๋์์ ์ฃผ์๊ฒ ์ต๋๊น?
์ด๋ป๊ฒ ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ธ๋ถ ์ฌํญ์ ์ํ์ญ๋๊น? ์ด ๋์์ ๋ณด์ฌ์ฃผ๋ kubectl ๋ช ๋ น ๋ฐ ์ถ๋ ฅ๊ณผ ๊ฒฐ๊ณผ PV์ ๋ํด kubectl describe ๋ฐ kubectl get -o yaml?
๋ด iPhone์์ ๋ณด๋
2020 ๋ 10 ์ 8 ์ผ 14:30์ Jing Xu [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
,,,,,,,,, ๋ฌด,,,,,,,,,,,.
@wolfewicz @DMXGuru ํฌ๋๊ฐ ์ญ์ ๋๋ฉด pvc๊ฐ ์ข ๋ฃ ์ํ์
์ผ์ด์ค๋ฅผ ์ฌํํ๊ณ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ๋ถ๋ฅ์ ๋์์ ์ฃผ์๊ฒ ์ต๋๊น?โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ๊ฑฐ๋ ๊ตฌ๋ ์ ์ทจ์ํ์ธ์.
@DMXGuru ๋จผ์ ํ์ธํ๊ณ ์ถ์ ๊ฒ์ ์คํ์ค์ธ ํฌ๋๊ฐ์๊ณ PVC / PV ์ข ๋ฃ ์ค์ VolumeSnapshot์ด ์ดฌ์๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
kubectl ์ค๋ช
ํฌ๋ | grep ClaimName
kubectl describe volumesnapshot | grep persistenceVolumeClaimName
๋์งธ, pod ๋๋ pvc ์ญ์ ๋ฅผ ์ด๋ค ์์๋ก ์ํํ๋์ง ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ฐ์ฌ!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค์ ์์ ์ ์ํํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
Chandras-MacBook-Pro:kubernetes-kafka chandra$ kubectl get pv | grep "kafka/" pvc-5124cf7a-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-0 kafka-zookeeper 21h pvc-639023b2-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-1 kafka-zookeeper 21h pvc-7d88b184-e9dc-11e8-93a1-02551748eea0 1Gi RWO Retain Bound kafka/data-pzoo-2 kafka-zookeeper 21h pvc-9ea68541-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-0 kafka-broker 21h pvc-ae795177-e9dc-11e8-93a1-02551748eea0 100Gi RWO Delete Terminating kafka/data-kafka-1 kafka-broker 21h
๊ทธ๋ฐ ๋ค์
pv
๊ฐ๋ณ์ ์ผ๋ก ์๋์ผ๋ก ํธ์ง ํ ๋ค์ ๋ค์๊ณผ ๊ฐ์finalizers
๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.```๊ฒฐ์น ์ :
์๋ฃ๋๋ฉด ์ข ๋ฃ ์ํ์ ์๋ PV๊ฐ ๋ชจ๋ ์ฌ๋ผ์ก์ต๋๋ค !!!