Skip to main content

Kubernetes ์•„ํ‚คํ…์ฒ˜

About 1 minDevOpsKubernetesVMcrashcoursedevkuma.comkubernetesk8s

Kubernetes ์•„ํ‚คํ…์ฒ˜ ๊ด€๋ จ

๋ชฉ์ฐจ

Kubernetes | devkuma

Kubernetes ์•„ํ‚คํ…์ฒ˜ | devkuma
Kubernetes๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค. ์ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ์œผ๋กœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋…ธ๋“œ(Node)๋ผ๊ณ  ํ•˜๋Š” ์ž‘์—…์ž ๋จธ์‹ ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ Pod๋ผ๊ณ  ํ•˜๋ฉฐ, ์œ„์— ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ฐ™์ด ์ด Pod๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋…ธ๋“œ์— ํฌํ•จ๋˜์–ด ๋ฐฐํฌ๋œ๋‹ค. ๋…ธ๋“œ ์ œ์–ด๋Š” kubelet์ด๋ผ๋Š” ์—์ด์ „ํŠธ์—์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋…ธ๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” kube-proxy๋ผ๋Š” ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด ์ง„๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control plane)์ด๋ผ๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค. Kubernetes์˜ ๋…ธ๋“œ Kubernetes์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ์จ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ(Master Node) ๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฐํฌ๋˜๋Š” ๋จธ์‹  (๊ฐ€์ƒ๋จธ์‹ ์ด๋‚˜ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋จธ์‹ )์ธ ์›Œ์ปค ๋…ธ๋“œ(Worker Node) ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ์ดํ•ด

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ - ์ถœ์ฒ˜ : Wikipedia
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ - ์ถœ์ฒ˜ : Wikipedia

Kubernetes๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค. ์ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ์œผ๋กœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋…ธ๋“œ(Node)๋ผ๊ณ  ํ•˜๋Š” ์ž‘์—…์ž ๋จธ์‹ ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ Pod๋ผ๊ณ  ํ•˜๋ฉฐ, ์œ„์— ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ฐ™์ด ์ด Pod๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋…ธ๋“œ์— ํฌํ•จ๋˜์–ด ๋ฐฐํฌ๋œ๋‹ค. ๋…ธ๋“œ ์ œ์–ด๋Š” kubelet์ด๋ผ๋Š” ์—์ด์ „ํŠธ์—์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋…ธ๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” kube-proxy๋ผ๋Š” ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด ์ง„๋‹ค.

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control plane)์ด๋ผ๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค.


Kubernetes์˜ ๋…ธ๋“œ

Kubernetes์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ์จ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ(Master Node) ๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฐํฌ๋˜๋Š” ๋จธ์‹  (๊ฐ€์ƒ๋จธ์‹ ์ด๋‚˜ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋จธ์‹ )์ธ ์›Œ์ปค ๋…ธ๋“œ(Worker Node) ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ
๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์›Œ์ปค ๋…ธ๋“œ

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ(Master Node) ๋ผ๊ณ  ํ•˜๋Š” Docker์—์„œ ๋งํ•˜๋Š” Daemon๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ๊ฐ€์ง„ ๋…ธ๋“œ์— ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ปค๋ฉ˜๋“œ๋ฅผ ๋ณด๋‚ด๊ณ , ๊ทธ๊ฒƒ์„ ๋ฐ›์€ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์›Œ์ปค ๋…ธ๋“œ(Worker Node) ๋ผ๊ณ  ํ•˜๋Š” ๋…ธ๋“œ์— ์ปค๋ฉ˜๋“œ๋ฅผ ๋ณด๋‚ด๋Š” ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ(Master node, Control plane)์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ ์ œ์–ด
  • ์›Œ์ปค ๋…ธ๋“œ๋“ค์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ์–ด
  • ์Šค์ผ€์ค„๋ง, ๋ผ์ดํ”„์‚ฌ์ดํด ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ถ€ํ•˜ ๋ถ„์‚ฐ, ์ž๋™ ๋ณต๊ตฌ
  • single master
  • multi master(3, 5๊ฐœ์˜ master nodes)

์›Œ์ปค ๋…ธ๋“œ(Worker node)์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์„œ๋ฒ„
  • ๋„์ปค ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™์ž‘ํ•˜๋ฉฐ ์‹ค์ œ ์„œ๋น„์Šค ์ œ๊ณต
  • ๋‹ค์ค‘ ๋…ธ๋“œ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ํ˜•์„ฑ
  • ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๋ช…๋ น์— ๋”ฐ๋ผ Pod ์ƒ์„ฑ, ์‚ญ์ œ

๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” HTTPS๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ˜•์„ฑํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์‹คํ–‰ ์ปค๋ฉ˜๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์€ ์ฝ˜์†”์ด์ง€๋งŒ, Kubernetes์˜ ๊ฒฝ์šฐ๋Š” kubectl ์ปค๋ฉ˜๋“œ๋ฅผ ํ†ตํ•˜์—ฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ(manifest)๋ผ๊ณ  ํ•˜๋Š” ๊ฐ์ข… ์„ค์ •์„ ์ž‘์„ฑํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ๊ทผ๊ฑฐํ•ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์ž์›์˜ ์กฐ์ž‘์„ ์‹คํ–‰๋˜๋„๋ก ๋ช…๋ นํ•œ๋‹ค.


์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปจํฌ๋„ŒํŠธ (Control plane component, ๋งˆ์Šคํ„ฐ ์ปดํฌ๋„ŒํŠธ)

  • kube-apiserver
    • Kubernetes ์ž์› ์ •์˜๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ REST API ์™ธ๋ถ€์— ์ œ๊ณตํ•œ๋‹ค.
    • Kubernetes ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ํ”„๋ŸฐํŠธ ์—”๋“œ
  • etcd
    • kube-apiserver๊ฐ€ ์ž์› ์ •์˜ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” DB์ด๋‹ค.
    • ๋ถ„์‚ฐ DB์ด๋ฏ€๋กœ ๋ณดํ†ต์„ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
    • ์ผ๊ด€์„ฑ, ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๊ฐ€์ง„ Key-value ์ €์žฅ์†Œ
    • Kubernetes์˜ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด์˜ ์ €์žฅ์†Œ
  • kube-scheduler
    • Pod์— ๋…ธ๋“œ๊ฐ€ ํ• ๋‹น๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ• ๋‹นํ•œ๋‹ค.
  • kube-controller-manager
    • kube-apiserver์˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Pod ์ •์˜ ์ž‘์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ Pod๋ฅผ ๋ฐฐํฌํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
    • ์•Œ๋ฆผ ๋ฐ ํฌ๋“œ ์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์—ฌ๋Ÿฌ ์ปจํŠธ๋กค๋Ÿฌ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ํ•œ๋‹ค.
    • Pod๋ฅผ ๊ด€์ฐฐํ•˜๋ฉฐ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์žฅํ•œ๋‹ค.
  • cloud-controller-manager
    • kube-apiserver์˜ API์—์„œ ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค ์ •์˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‹ค์ œ ๋ฆฌ์†Œ์Šค์˜ ์ƒํƒœ๋ฅผ ์ •์˜์™€ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
    • ๊ธฐ๋ฐ˜์ธ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ ์‹คํ–‰ํ•œ๋‹ค.

์›Œ์ปค ๋…ธ๋“œ ์ปดํฌ๋„ŒํŠธ

์›Œ์ปค ๋…ธ๋“œ ์ปดํฌ๋„ŒํŠธ๋Š” Pod๋‚˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋งํ•œ๋‹ค.

  • kubelet
    • ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์—์ด์ „ํŠธ.
    • kube-apiserver์˜ API๋กœ Pod ์ •์˜๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ์˜ ๊ธฐ๋™ ๋ฐ ์ •์ง€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ Docker๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค.
    • kube-apiserver๋กœ๋ถ€ํ„ฐ์˜ API ํ˜ธ์ถœ์„ ๋ฐ›๋Š” HTTPS ํฌํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
    • ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ Pod์—์„œ ์‹คํ–‰ ์ค‘์ž„์„ ๋ณด์žฅํ•œ๋‹ค.
    • ๋ฐ๋ชฌ ํ˜•ํƒœ๋กœ ๋™์ž‘
  • kube-proxy
    • ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ
    • kube-apiserver์˜ API์—์„œ Service ์ •์˜๋ฅผ ๊ฐ์‹œํ•˜๊ณ , ํ˜ธ์ŠคํŠธ OS์— ๋Œ€ํ•ด Service์— ํ†ต์‹ ์„ ์ „์†กํ•˜๋Š” ์„ค์ •์„ ํ•œ๋‹ค.
    • iptables rule์„ ๊ตฌ์„ฑ
  • ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„
    • ์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ•˜๋Š” ์—”์ง„
    • docker, containerd, runc

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ง์—… ๊ตฌ์„ฑํ•˜๋Š” ๋„๊ตฌ

  • kubeadm
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ๊ณต์‹ ์ œ๊ณตํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ/๊ด€๋ฆฌ ๋„๊ตฌ
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต์‹ ์„ค์น˜ ๋„๊ตฌ (Kubernetes admin)
  • kubespray
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์˜คํ”ˆ ํ”„๋กœ์ ํŠธ
    • ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
    • ์˜จํ”„๋ ˆ๋ฏธ์Šค์—์„œ ์‚ฌ์šฉ ์„œ๋น„์Šค ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜์‹œ ์œ ์šฉ

์˜ค๋ธŒ์ ํŠธ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ ๋‹จ์œ„๊ฐ€ ๋˜๋Š” ๊ธฐ๋ณธ ์˜ค๋ธŒ์ ํŠธ(Basic object)์™€, ์ด ๊ธฐ๋ณธ ์˜ค๋ธŒ์ ํŠธ(Basic object) ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์ปจํŠธ๋กค๋Ÿฌ(Controller) ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์˜ค๋ธŒ์ ํŠธ์˜ ์ŠคํŽ™(์„ค์ •)์ด์™ธ์— ์ถ”๊ฐ€์ •๋ณด์ธ ๋ฉ”ํƒ€ ์ •๋ณด๋“ค๋กœ ๊ตฌ์„ฑ์ด ๋œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

Running app on Kubernetes
Running app on Kubernetes

์˜ค๋ธŒ์ ํŠธ ์ŠคํŽ™ (Object Spec)

์˜ค๋ธŒ์ ํŠธ๋“ค์€ ๋ชจ๋‘ ์˜ค๋ธŒ์ ํŠธ์˜ ํŠน์„ฑ(์„ค์ • ์ •๋ณด)์„ ๊ธฐ์ˆ ํ•œ ์˜ค๋ธŒ์ ํŠธ ์ŠคํŽ™(Object Spec)์œผ๋กœ ์ •์˜๊ฐ€ ๋˜๊ณ , ์ปค๋งจ๋“œ ๋ผ์ธ์„ ํ†ตํ•ด์„œ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ์‹œ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ •์˜๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” yaml์ด๋‚˜ json ํŒŒ์ผ๋กœ ์ŠคํŽ™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ ์˜ค๋ธŒ์ ํŠธ (Basic Object)

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์˜ํ•ด์„œ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋˜์–ด ๋ฐฐํฌ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›Œํฌ๋กœ๋“œ๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋กœ Pod, Service, Volume, Namespace 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช… ํ•˜์ž๋ฉด Pod๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, Volume์€ ๋””์Šคํฌ, Service๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๊ทธ๋ฆฌ๊ณ  Namespace๋Š” ํŒจํ‚ค์ง€๋ช… ์ •๋„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฐ๊ฐ์„ ์ž์„ธํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

๋ผ๋ฒจ

โ€ฆ ์ž‘์„ฑ์ค‘ โ€ฆ

์ปจํŠธ๋กค๋Ÿฌ

โ€ฆ ์ž‘์„ฑ์ค‘ โ€ฆ

์• ๋“œ์˜จ

  • ๋„คํŠธ์›Œํฌ ์• ๋“œ์˜จ
    • CNI - weave, calico, faneld, kube-route โ€ฆ
  • dns ์• ๋“œ์˜จ
    • coreDNS
  • ๋Œ€์‹œ๋ณด๋“œ ์• ๋“œ์˜จ
    • ์ปจํ…Œ์ด๋„ˆ ์ž์› ๋ชจ๋‹ˆํ„ฐ๋ง
    • cAdvisor
  • ํด๋Ÿฌ์Šคํ‹ฐ ๋กœ๊น…
    • ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ, k8s ์šด์˜ ๋กœ๊ทธ๋“ค์„ ์ˆ˜์ง‘ํ•ด์„œ ์ค‘์•™ํ™”
    • ELK(ElasticSeach, Logstash, Kibana), EFK(ElasticSeach, Fluented, Kibana), DataDog

์ฐธ์กฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

(Kubernetes, ์ฟ ๋ฒ ๋ฅด๋„คํ…Œ์Šค, K8s)๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž๋™ ๋””ํ”Œ๋กœ์ด, ์Šค์ผ€์ผ๋ง ๋“ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌ์‹œ์Šคํ…œ์œผ๋กœ, ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์ด๋‹ค. ์›๋ž˜ ๊ตฌ๊ธ€์— ์˜ํ•ด ์„ค๊ณ„๋˜์—ˆ๊ณ  ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์žฌ๋‹จ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค. ๋ชฉ์ ์€ ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ˜ธ์ŠคํŠธ ๊ฐ„์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฐฐ์น˜, ์Šค์ผ€์ผ๋ง, ์šด์˜์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๋„์ปค๋ฅผ ํฌํ•จํ•˜์—ฌ ์ผ๋ จ์˜ ์ปจํ…Œ์ด๋„ˆ ๋„๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ๋™์ž‘ํ•œ๋‹ค.
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #2 ๊ฐœ๋… ์ดํ•ด (1/2)
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #2 ๊ฐœ๋… ์ดํ•ด (1/2) ์กฐ๋Œ€ํ˜‘ (http://bcho.tistory.com) ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ์šฉ์–ด์™€ ์ปจ์…‰์ด๋‹ค. ์ด ์ปจ์…‰๋งŒ ์ž˜ ์ดํ•ดํ•˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ ์–ด๋„ ๋‚ด ๊ธฐ์ค€์—์„œ๋Š” ๋ฌธ์„œ๋“ค์˜ ์šฉ์–ด๋‚˜ ๊ฐœ๋… ์„ค๋ช…์ด ๋‹ค์†Œ ์–ด๋ ค์› ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐœ๋…์€ ํฌ๊ฒŒ ์˜ค๋ธŒ์ ํŠธ ๋‘๊ฐœ์˜ ๊ฐœ๋…์—์„œ ์ถœ๋ฐœํ•œ๋‹ค. ๊ฐ๊ฐ์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž๋งˆ์Šคํ„ฐ์™€ ๋…ธ๋“œ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ตฌ์กฐ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ์จ ๋งˆ์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐฐํฌ๋˜๋Š” ๋จธ์‹  (๊ฐ€์ƒ๋จธ์‹ ์ด๋‚˜ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„๋จธ์‹ )์ธ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์˜ค๋ธŒ์ ํŠธ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ์˜ค๋ธŒ์ ํŠธ์ด๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ๋‹จ์œ„..

์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.