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

๐Ÿ”Ž Kubernetes6

Dynamic Admission Controller ์‚ฌ์šฉํ•˜๊ธฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์„ ์–ธํ˜• ํŒจ๋Ÿฌ๋‹ค์ž„์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ ๋ฐ ์šด์˜์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์ธก๋ฉด์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฐœ๋… ๋ฐ ์•„ํ‚คํ…์ณ๋ฅผ ์ดํ•ดํ•ด์•ผํ•˜๊ณ  ์ด๋กœ ์ธํ•ด ์„œ๋น„์Šค์˜ ๋ณต์žก๋„ ๋˜ํ•œ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๋Š” Provider์˜ ์ž…์žฅ์—์„œ๋Š” ์šด์˜์— ์žˆ์–ด ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ์ถ”์ƒํ™”์‹œ์ผœ ์ œ๊ณตํ•  ํ•„์š”์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑํ•  ๋•Œ, ์–ด๋Š ์ •๋„์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ• ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์šด์˜์— ์žˆ์–ด ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€๋‚˜์นœ ์ถ”์ƒํ™”๋Š” ์„ธ๋ถ€ ์„ค์ •์— ๋Œ€ํ•ด ์ ‘๊ทผ์„ ์–ด๋ ต๊ฒŒํ•˜๊ณ , ๋‹ซํžŒ ์‹œ์Šคํ…œ์ด ๋  ์œ„ํ—˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์–ด๋Š์ •๋„์˜ ์ถ”์ƒํ™”๋ฅผ ๋‹ฌ์„ฑ.. 2021. 4. 29.
[Kubernetes ๋‚ด๋ถ€ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ] 1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ ๊ทธ๋™์•ˆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„์ด๋‚˜ ์‚ฌ์šฉ์€ ํ–ˆ์ง€๋งŒ ์›๋ฆฌ๋ฅผ ์•Œ์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์€ Kubernetes In Action์„ ์ฝ๊ณ  ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด๋ถ€ ์•„ํ‚คํ…์ณ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(๋งˆ์Šคํ„ฐ ๋…ธ๋“œ)์™€ ์›Œ์ปค ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋จผ์ € ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. API Server Scheduler Controller Manager etcd ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ ํ•ด๋‹น ์š”์†Œ๋“ค์€ ๊ฐœ๋ณ„์ ์ธ ํ”„๋กœ์„ธ์Šค๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์€ .. 2021. 4. 12.
Pinpoint Agent Helm Chart ์ž‘์„ฑํ•˜๊ธฐ ์ž‘๋…„ 8์›”๋ถ€ํ„ฐ ์ง„ํ–‰ํ–ˆ๋˜ Pinpoint Helm Chart ์ค‘ Agent์— ๋Œ€ํ•œ Helm Chart ์ œ์ž‘ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Introduction Pinpoint Agent๋Š” Java, Go, NodeJS, C ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์— ๋Œ€ํ•œ agent๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Java Agent์— ๋Œ€ํ•ด Helm Chart ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Java Agent๋Š” ์‹คํ–‰์„ ์œ„ํ•œ jar ํŒŒ์ผ๊ณผ ์ ์šฉํ•  config๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. jar ํŒŒ์ผ๊ณผ config option์„ target application์„ ์‹คํ–‰ํ•  ๋•Œ ๋ถ€์ฐฉํ•จ์œผ๋กœ์จ data๋ฅผ ์ˆ˜์ง‘, collector๋กœ ์ „์†กํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, application๊ณผ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ์— agent๋ฅผ ์œ„.. 2021. 3. 6.
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.
Argo Project๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CI/CD ๊ตฌ์ถ•ํ•˜๊ธฐ ์กธ์—… ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ Spring Boot ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผํ•˜๋Š” ๋‹ˆ์ฆˆ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋“ค์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์นœํ™”์ ์ธ Argo ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Argo Project์ธ Argo Event์™€ Argo Workflow๋ฅผ ์ด์šฉํ•œ CI์™€ Argo CD๋ฅผ ์ด์šฉํ•œ CD ์•„ํ‚คํ…์ณ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. CI Overview ์ด๋ฒˆ ๊ธ€์—์„œ ๊ตฌ์ถ•ํ•  CI ๊ณผ์ •์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Github Webhook๋ฅผ Argo Event๊ฐ€ ๋ฐ›์•„ CI Workflow ํ™œ์„ฑํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ GCR์— ์ด๋ฏธ์ง€ ํ‘ธ์‹œ Deploy Repository์˜ Kustomize ํŒŒ์ผ ์ˆ˜์ •(์ตœ์‹  ํƒœ๊ทธ๋ฅผ ๋ฐ˜์˜ํ•œ ์ด๋ฏธ์ง€) Dep.. 2020. 12. 18.