๋ฒ๊ทธ ์ค๋ช
Kubernetes ๋ฒ์ ์ด v1.18.9์์ v1.19.4๋ก ์
๋ฐ์ดํธ๋ ํ ํ ๋
ธ๋์ Trident CSI ๋
ธ๋ ํ๋ฌ๊ทธ์ธ( csi.trident.netapp.io
)์ด ์ด์ ๋ฑ๋ก ์ทจ์๋์์ต๋๋ค. ์ด ๋
ธ๋์ ํฌ๋๋ ๋ ์ด์ Trident ๋ณผ๋ฅจ์ ๋ง์ดํธ ๋ฐ ๋ง์ดํธ ํด์ ํ ์ ์์ต๋๋ค.
kubelet ๋ก๊ทธ์ ๋ค์ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
csi.trident.netapp.io
๋ฑ๋ก ์์ผ( /var/lib/kubelet/plugins_registry/csi.trident.netapp.io-reg.sock
)์ด ์ ๊ฑฐ๋์๊ธฐ ๋๋ฌธ์ ๋ฑ๋ก์ด ์ทจ์๋์์ต๋๋ค.
I1119 05:47:54.246972 6550 plugin_watcher.go:212] ์ํ๋ ์ํ ์บ์์์ ์์ผ ๊ฒฝ๋ก /var/lib/kubelet/plugins_registry/csi.trident.netapp.io-reg.sock ์ ๊ฑฐ ์ค
I1119 05:47:53.162305 6550 reconciler.go:139] operationExecutor.UnregisterPlugin์ด "/var/lib/kubelet/plugins_registry/csi.trident.netapp.io-reg.sock"์์ ํ๋ฌ๊ทธ์ธ์ ๋ํด ์์๋์์ต๋๋ค(ํ๋ฌ๊ทธ์ธ ์ธ๋ถ ์ ๋ณด: &{/var /lib/kubelet/plugins_registry/csi.trident.netapp.io-reg.sock 2020-11-04 05:08:19.553684094 +0000 UTC m=+38.893901704 0x704c200 csi.io.trident}
I1119 05:47:53.163390 6550 csi_plugin.go:177] kubernetes.io/csi: csi.trident.netapp.io ํ๋ฌ๊ทธ์ธ์ ๋ํ registrationHandler.DeRegisterPlugin ์์ฒญ
csi.trident.netapp.io
์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ํฌ๋์์ ๋ณผ๋ฅจ์ ๋ง์ดํธ ํด์ ํ ์ ์์ต๋๋ค.
E1119 09:02:52.819122 6550 nestedpendingoperations.go:301] "{v olumeName:kubernetes.io/csi/csi.trident.netapp.io ^pvc-75a6fd7f-7aee-45e8-a5fa-d45dee45deapodName์ ๋ํ ์์ -4e0c-9e71-cba46dfc3657 nodeName:}"์ด(๊ฐ) ์คํจํ์ต๋๋ค. 2020-11-19 09:04:54.819071328 +0000 UTC m=+1310234.159288938(durationBeforeRetry 2m2s)๊น์ง ์ฌ์๋๊ฐ ํ์ฉ๋์ง ์์ต๋๋ค. ์ค๋ฅ: "UnmountVolume.TearDown์ด "๋ฐ์ดํฐ" ๋ณผ๋ฅจ์ ์คํจํ์ต๋๋ค(๊ณ ์ ์ด๋ฆ: "kubernetes.io/csi/csi.trident.netapp.io^pvc-75a6fd7f-7aee-45e8-a5fa-d4500272528e") ํฌ๋ "ad18a7d1-40c -9e71-cba46dfc3657"(UID: "ad18a7d1-4090-4e0c-9e71-cba46dfc3657"): kubernetes.io/csi: mounter.SetUpAt์์ CSI ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ์ต๋๋ค: ๋๋ผ์ด๋ฒ ์ด๋ฆ ๋ชฉ๋ก csi.trident.netapp.io๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฑ๋ก๋ CSI ๋๋ผ์ด๋ฒ ์"
์ฐ๋ฆฌ๋ ์ด ๋
ธ๋์์ ๋ ๊ฐ์ trident-csi
(๋
ธ๋ ํ๋ฌ๊ทธ์ธ) ํฌ๋๊ฐ ๋งค์ฐ ์งง์ ์๊ฐ ๋์ ๋์์ ์คํ๋๊ณ ์์๊ณ ์ ํฌ๋๊ฐ ์์๋ ํ ์ด์ driver-registrar
์ด ์ค์ง๋์์์ ๋ฐ๊ฒฌํ์ต๋๋ค.
driver-registrar
๋ SIGTERM( node_register.go#L113-L116 )์ ์์ ํ ๋ ๋ฑ๋ก ์์ผ( /var/lib/kubelet/plugins_registry/csi.trident.netapp.io-reg.sock
)์ ์ ๊ฑฐํฉ๋๋ค. ์์ผ์ ์ ๊ฑฐํ๋ฉด kubelet์ด Trident ํ๋ฌ๊ทธ์ธ์ ๋ฑ๋ก ์ทจ์ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ์ ์์ธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Trident-csi(๋
ธ๋ ํ๋ฌ๊ทธ์ธ) ํฌ๋๋ DaemonSet์์ ๊ด๋ฆฌํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๋
ธ๋์์ ํ๋์ ํฌ๋๋ง ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ Kubernetes๊ฐ ์
๋ฐ์ดํธ๋ ํ trident-csi Daemonset์ด trident-operator
์ ์ํด ๋ค์ ์์ฑ๋์์ต๋๋ค. DaemonSet์ ์ญ์ ํ๋ฉด ๋ ๊ฐ์ ํฌ๋(์ด์ ๋ฐ ์ ํฌ๋)๋ฅผ ๋์์ ์คํํ ์ ์์ต๋๋ค.
trident-operator
๋ก๊ทธ์์ ์ด๋ฅผ ํ์ธํ์ต๋๋ค.
์ฌ๊ธฐ์ trident-csi
Daemonset์ด ์ญ์ ๋์์ต๋๋ค.
time="2020-11-19T05:47:45Z" level=debug msg="Kubernetes DaemonSet๋ฅผ ์ญ์ ํ์ต๋๋ค." DaemonSet=์ผ์ง์ฐฝ-csi ๋ค์์คํ์ด์ค=์ผ์ง์ฐฝ
trident-csi
Daemonset์ ๊ทธ ํ ๊ณง ์์ฑ๋์์ต๋๋ค.
time="2020-11-19T05:47:45Z" level=debug msg="๊ฐ์ฒด ์์ฑ ์ค." ์ข ๋ฅ=DaemonSet ์ด๋ฆ=trident-csi ๋ค์์คํ์ด์ค=ํธ๋ผ์ด๋ํธ
Kubernetes๊ฐ ์
๋ฐ์ดํธ๋ ํ shouldUpdate
ํ๋๊ทธ๊ฐ true๋ก ์ค์ ๋์์ต๋๋ค( controller.go#L1110 ). shouldUpdate
ํ๋๊ทธ๋ก ์ธํด trident-csi
Daemonset์ด ์ญ์ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค( installer.go#L1489-L1494 ).
ํ๊ฒฝ
silenceAutosupport: true
(ํธ๋ผ์ด๋ํธ ์ฐ์ฐ์)์ฌํํ๊ธฐ ์ํด
Kubernetes ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ์ฌํ๋ ์ ์์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ์ ๋ฐ์ดํธ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ํญ์ ์ผ์ด๋๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์์ฐ์ ํตํด ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๋ค์๊ณผ ๊ฐ์ ๋์์ ํ์ธํ๋ค.
$ kubectl describe csinodes.storage.k8s.io <NODE_NAME>
...
Spec:
Drivers:
csi.trident.netapp.io:
Node ID: <NODE_NAME>
Topology Keys: [topology.kubernetes.io/zone]
trident-csi
DaemonSet๋ฅผ ๋ณต์ฌํ์ฌ ๊ฐ ๋
ธ๋์์ 2๊ฐ์ trident-csi ํฌ๋๋ฅผ ์คํํฉ๋๋ค.$ kubectl get ds -n trident trident-csi -o json | jq '.metadata.name|="trident-csi-2"' | kubectl apply -f -
trident-csi-2
DaemonSet๋ฅผ ์ญ์ ํฉ๋๋ค.$ kubectl delete ds -n trident trident-csi-2
$ kubectl describe csinodes.storage.k8s.io <NODE_NAME>
Spec:
trident-csi
DaemonSet์ ์ญ์ ํฉ๋๋ค. DaemonSet์ ๊ณง trident-operator์ ์ํด ๋ค์ ์์ฑ๋ฉ๋๋ค.$ kubectl delete ds -n trident trident-csi
trident-csi
ํฌ๋๊ฐ ํ์๋ฉ๋๋ค.$ kubectl get pods -n trident -o wide
์์๋๋ ํ๋
ํฌ๋๋ Kubernetes ๋ฒ์ ์ด ์
๋ฐ์ดํธ๋ ํ Trident ๋ณผ๋ฅจ์ ๋ง์ดํธ ๋ฐ ๋ง์ดํธ ํด์ ํ ์ ์์ต๋๋ค.
์ถ๊ฐ ์ปจํ
์คํธ
์์
์๋ ํ์ธ์ @tksm
์ด ๋ฌธ์ ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ๊ทผ๋ณธ ์์ธ์ ์์ธํ ์ดํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทํ์ ๋ถ์์ ๋งค์ฐ ๋์์ด ๋ฉ๋๋ค. daemonset ํฌ๋์ ์ข ๋ฃ์ ์ฌ์์ฑ ์ฌ์ด์ ์ฐฝ์ ์ค์ํ๋ฉฐ ํ์๋ ์ ์๊ฐ ์๋ฃ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด์์๋ ๋ฐ๋ชฌ์ ์์ฑ ์ ์ ์ด์ ๋ฐ๋ชฌ์ ์ ์ํ ํฌ๋๊ฐ ๋ชจ๋ ์ญ์ ๋์๋์ง ํ์ธํ ๋ค์ ์๋ก์ด ๋ฐ๋ชฌ์ ๋ง ์์ฑํด์ผ ํฉ๋๋ค.
๊ถ๊ธํด์ ์ ๊ทธ๋ ์ด๋ ์ค์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํด๋ฌ์คํฐ์ ์๋ฅผ ๋ฌผ์ด๋ด๋ ๋ ๊น์?
๊ฐ์ฌํฉ๋๋ค!
์๋ ํ์ธ์, @ntap-arorar
ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ ์์ด๋์ด๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ ์คํธ๋ก ๋ช ๊ฐ์ ํด๋ฌ์คํฐ๋ง ์ ๊ทธ๋ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ๊น์ง ํ๋์ ํด๋ฌ์คํฐ์์๋ง ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด ์์ ์ฌํญ์ Trident v21.01 ๋ฆด๋ฆฌ์ค์ ํฌํจ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ ์ปค๋ฐ 820579d ๋ก ์์ ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ์์ ์ฌํญ์ Trident v21.01 ๋ฆด๋ฆฌ์ค์ ํฌํจ๋ฉ๋๋ค.