[k8s] etcd

etcd๋Š” Go๋กœ ๋งŒ๋“ค์–ด์ง„ Key-Value ๋ถ„์‚ฐ DB๋‹ค.

์‚ฌ์‹ค ์ด๊ฑด ๊ทธ ์ž์ฒด๋กœ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๊ณ , ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
์ฟ ๋ฒ„์™€ ๋ณ„๊ฐœ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ์“ฐ๋Š”๊ฑด ์ž˜ ๋ชป๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.

https://blog.naver.com/sssang97/223456528188

์•„๋ฌดํŠผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋””์Šคํฌ ์ •๋ณด๋ฅผ etcd๋ฅผ ํ†ตํ•ด ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋…ธ๋“œ ์ •๋ณด๋‚˜ pod ์ •๋ณด, config๋‚˜ account, role ๊ฐ™์€ ๊ฒƒ๋“ค ๋ง์ด๋‹ค.

https://kubernetes.io/images/docs/components-of-kubernetes.svg
์ด ๊ทธ๋ฆผ์ฒ˜๋Ÿผ k8s API๋Š” ๋ฐ”๋กœ etcd๋ฅผ ํ†ตํ•ด ํ˜ธ์ŠคํŠธ ์ €์žฅ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด kubectl get pods๋กœ pod ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๋งŒ ํ•˜๋”๋ผ๋„ etcd์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ kubeadm ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด, kube-system ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— etcd pod๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ๊น”๋ ค์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ /var/lib/etcd ๊ฒฝ๋กœ๋ฅผ ๋’ค์ง€๋ฉด k8s์— ๋Œ€ํ•œ ์ •๋ณด๋“ค์ด ์ €์žฅ๋œ ๊ณต๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ etcd๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š”, ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฐฑ์—…์ด ์žˆ๋‹ค.
์Šค๋ƒ…์ƒท์œผ๋กœ ๋ฐฑ์—…์„ ๋œฌ ํ›„์— ์˜ฎ๊ธฐ๊ฑฐ๋‚˜ ๋ณดํ—˜์šฉ์œผ๋กœ ๋ณด๊ด€ํ•ด๋‘˜ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์žฌํ•ด ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ๊นŒ์ง€ ์—ผ๋‘์— ๋‘”๋‹ค๋ฉด etcd ๋ฐฑ์—…์„ ์ •๊ธฐ์ ์œผ๋กœ ํ•ด๋‘๋Š”๊ฒŒ ์ข‹๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๋จธ์‹ ์— ๋ถˆ๋‚˜๋ฉด ์„œ๋ฒ„ ์ ‘๋Š” ๊ฒƒ์ด๋‹ค.



์ฐธ์กฐ
https://etcd.io/docs/v2.3/docker_guide/
https://dodo-devops.tistory.com/42
https://velog.io/@wanny328/kubernetes-etcdctl-command-%EA%B0%80%EC%9D%B4%EB%93%9C