๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

kubernetes7

Dynamic Admission Controller ์‚ฌ์šฉํ•˜๊ธฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์„ ์–ธํ˜• ํŒจ๋Ÿฌ๋‹ค์ž„์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ ๋ฐ ์šด์˜์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ธก๋ฉด์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฐœ๋… ๋ฐ ์•„ํ‚คํ…์ณ๋ฅผ ์ดํ•ดํ•ด์•ผํ•˜๊ณ  ์ด๋กœ ์ธํ•ด ์„œ๋น„์Šค์˜ ๋ณต์žก๋„ ๋˜ํ•œ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๋Š” Provider์˜ ์ž…์žฅ์—์„œ๋Š” ์šด์˜์— ์žˆ์–ด ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ์ถ”์ƒํ™”์‹œ์ผœ ์ œ๊ณตํ•  ํ•„์š”์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑํ•  ๋•Œ, ์–ด๋Š ์ •๋„์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ• ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์šด์˜์— ์žˆ์–ด ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€๋‚˜์นœ ์ถ”์ƒํ™”๋Š” ์„ธ๋ถ€ ์„ค์ •์— ๋Œ€ํ•ด ์ ‘๊ทผ์„ ์–ด๋ ต๊ฒŒํ•˜๊ณ , ๋‹ซํžŒ ์‹œ์Šคํ…œ์ด ๋  ์œ„ํ—˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์–ด๋Š์ •๋„์˜ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑ.. 2021. 4. 29.
[Kubernetes ๋‚ด๋ถ€ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ] 1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ ๊ทธ๋™์•ˆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„์ด๋‚˜ ์‚ฌ์šฉ์€ ํ–ˆ์ง€๋งŒ ์›๋ฆฌ๋ฅผ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์€ Kubernetes In Action์„ ์ฝ๊ณ  ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด๋ถ€ ์•„ํ‚คํ…์ณ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ)์™€ ์›Œ์ปค ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋จผ์ € ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. API Server Scheduler Controller Manager etcd ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ ํ•ด๋‹น ์š”์†Œ๋“ค์€ ๊ฐœ๋ณ„์ ์ธ ํ”„๋กœ์„ธ์Šค๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์€ .. 2021. 4. 12.
[Kubernetes Best Practice] 2. ๊ฐœ๋ฐœ์ž ์›Œํฌํ”Œ๋กœ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ๋‹จ๊ณ„์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™œ์šฉ Kubernetes๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ ๋งŽ์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Controller๋ฅผ ํ†ตํ•œ Reconcile ๋กœ์ง ์ˆ˜ํ–‰, Deployment๋ฅผ ํ†ตํ•œ Ro.. 2021. 1. 31.
[Kubernetes Best Practice] 1. ๊ธฐ๋ณธ ์„œ๋น„์Šค ์„ค์น˜ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ ๊ด€๋ฆฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์„ ์–ธ์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ• ์ง€ ๋ช…๋ น์  ์ ‘๊ทผ์ด ์•„๋‹Œ Desired State๋ฅผ ์ •์˜ํ•˜๋Š” ์„ ์–ธ์ „ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ช…๋ น์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ.. 2021. 1. 30.
Elasticsearch Operator ๊ฐœ๋ฐœํ•˜๊ธฐ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Operator SDK๋ฅผ ํ†ตํ•ด Elasticsearch Cluster๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Elasticsearch Operator๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Operator๊ฐ€ ๋ฌด์—‡์ธ์ง€, Operator SDK์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๊ป˜์„œ๋Š” ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.Elasticsearch Cluster๋จผ์ € Operator๋กœ ๊ด€๋ฆฌํ•  Elasticsearch Operator์— ๋Œ€ํ•œ ์ŠคํŽ™์„ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Cluster ๊ตฌ์„ฑ์€ ์ œ๊ฐ€ ์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜ Elasticsearch Helm Chart์˜ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.Master Node & Master Eligible Node ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋์„ ๋•Œ ์Šน๊ฒฉ๋  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.Hot Dat.. 2020. 12. 18.
Kubernetes Operator (feat. Operator SDK) ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” Operator ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ , ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ผ ๊ฐ„๋‹จํ•œ Custom Operator๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.Operator๋ž€?Operator๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์ด์ „์— Controller๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ๋จผ์ € ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.ControllerKubernetes Patterns ์ฑ…์„ ์ฐธ๊ณ ํ•˜๋ฉด Kubernetes์—์„œ ๋ฆฌ์†Œ์Šค์˜ Status๋ฅผ ๊ฐ์‹œํ•˜๋ฉฐ ์›ํ•˜๋Š” ์ƒํƒœ(Spec)๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ Controller๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Controller์˜ ๊ธฐ๋Šฅ ์ด์™ธ์—๋„ ๋” ๋ณต์žกํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ ๋กœ์ง์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ถ„๋ช… ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์„ ์ปค๋ฒ„ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด Operator์ž…๋‹ˆ๋‹ค.Ope.. 2020. 12. 18.