μΏ λ²„λ„€ν‹°μŠ€(kubernetes) 기초
κ·Έ μ™Έ

μΏ λ²„λ„€ν‹°μŠ€(kubernetes) 기초

1. μΏ λ²„λ„€ν‹°μŠ€(kubernetes)λž€?

- μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ λ„κ΅¬λ‘œ κ΅¬κΈ€μ—μ„œ κ°œλ°œν•œ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈ μž…λ‹ˆλ‹€.

- auto scaling, auto healing κΈ°λŠ₯ 등을 μ΄μš©ν•΄μ—¬ 각 μ»¨ν…Œμ΄λ„ˆλ“€μ΄ μ„œλ²„ μžμ›μ„ μ΅œλŒ€ν•œ 효율적으둜 μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

- 배포, μœ μ§€λ³΄μˆ˜, λ‘œκΉ… κΈ°λŠ₯ 등을 μ΄μš©ν•΄μ„œ 관리 μžλ™ν™”λ₯Ό λ„μ™€μ€λ‹ˆλ‹€.

- λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 도ꡬ가 λ§Žμ•˜μ§€λ§Œ ν˜„μž¬λŠ” μΏ λ²„λ„€ν‹°μŠ€μ„ κ°€μž₯ 많이 μ‚¬μš©ν•˜λ©° AWS, Azure λ“±μ—μ„œλ„ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό μ„€μΉ˜ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  수 μžˆλŠ” μ„œλΉ„μŠ€λ“€μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

 

2. vm와 μ»¨ν…Œμ΄λ„ˆμ˜(container) 차이

- vm은 ν•˜λ‚˜μ˜ μ„œλ²„μ—μ„œ os μœ„μ— hypevisor(vmware, xen λ“±)λ₯Ό μ„€μΉ˜ν•˜κ³  κ·Έ μœ„μ— guest osλ₯Ό μ„€μΉ˜ν•œ ν›„ μ˜¬λΌκ°€λŠ” λ‹¨μœ„λ‘œ vm에 μ„€μΉ˜λ˜λŠ” μ‹œμŠ€ν…œλ³΄λ‹€ osκ°€ 더 무거운 κ²½μš°κ°€ λ°œμƒν•©λ‹ˆλ‹€.(μ„œλ²„ μžμ›μ„ 효율적으둜 μ‚¬μš©ν•˜μ§€ λͺ»ν•¨)

- μ»¨ν…Œμ΄λ„ˆλŠ” ν•˜λ‚˜μ˜ μ„œλ²„μ—μ„œ os μœ„μ— hypevisor(docker λ“±)λ₯Ό μ„€μΉ˜ν•˜κ³  κ·Έ μœ„μ— guest os 없이 μ˜¬λΌκ°€λŠ” λ‹¨μœ„λ‘œ vm보닀 훨씬 가볍고 ν•„μš”μ— 따라 μ„œλ²„ μžμ›μ„ μ°¨μ§€ν•©λ‹ˆλ‹€.

- μ»¨ν…Œμ΄λ„ˆμ˜ 경우 μ„œλΉ„μŠ€λ₯Ό λͺ¨λ“ˆλ‘œ μͺΌκ°œμ–΄ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ΄μš©ν•˜μ—¬ 마이크둜 μ„œλΉ„μŠ€λ₯Ό μš΄μ˜ν•˜κΈ°λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (각 μ»¨ν…Œμ΄λ„ˆμ—λŠ” 각 마이크둜 μ„œλΉ„μŠ€μ— ν•„μš”ν•œ νŒ¨ν‚€μ§€λ§Œ μ„€μΉ˜)

- μ»¨ν…Œμ΄λ„ˆμ˜ 경우 namespace, cgroup을 μ΄μš©ν•˜μ—¬ μ„œλ²„ μžμ›μ„ λΆ„λ¦¬ν•©λ‹ˆλ‹€.

  . namespace : mnt, pid, net, ipc, uts, user

  . cgroup : memory, CPU, I/O, network

 

3. μΏ λ²„λ„€ν‹°μŠ€ ꡬ쑰

μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°(kubernetes cluster)

- λ§ˆμŠ€ν„° λ…Έλ“œ(master node) : 컨트둀 ν”Œλ ˆμΈ μ—­ν• μœΌλ‘œμ¨ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

- λ…Έλ“œ(node) : μ»¨ν…Œμ΄λ„ˆκ°€ λ°°ν¬λ˜λŠ” 물리적 λ¨Έμ‹ μž…λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ— μžμ›μ΄ λΆ€μ‘±ν•  경우 λ…Έλ“œλ₯Ό μΆ”κ°€ν•˜λ©΄ λ©λ‹ˆλ‹€.

 

4. μΏ λ²„λ„€ν‹°μŠ€ 였브젝트(object)

- μΏ λ²„λ„€ν‹°μŠ€ 였브젝트(object) : μΏ λ²„λ„€ν‹°μŠ€λ₯Ό κ΅¬μ„±ν•˜λŠ” κ°€μž₯ 기본이 λ˜λŠ” λ‹¨μœ„λ©° μΆ”κ°€ κΈ°λŠ₯은 컨트둀러둜 κ΅¬ν˜„ν•©λ‹ˆλ‹€. 메타 정보듀은 yaml ν˜•μ‹μ΄λ‚˜ json ν˜•μ‹μœΌλ‘œ μŠ€νŽ™(spec)κ³Ό μƒνƒœ(status)λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.

- λ„€μž„μŠ€νŽ˜μ΄μŠ€(namespace) : λ¦¬μ†ŒμŠ€λ₯Ό λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ” λ‹¨μœ„μž…λ‹ˆλ‹€.

- νŒŒλ“œ(pod) : ν•˜λ‚˜ μ΄μƒμ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ„μšΈ 수 있으며 κ°€μž₯ 기본이 λ˜λŠ” 배포 λ‹¨μœ„μž…λ‹ˆλ‹€.

- μ„œλΉ„μŠ€(service) : λ‘œλ“œλ°ΈλŸ°μ„œμ™€ μœ μ‚¬ν•˜λ©° μ™ΈλΆ€μ—μ„œ νŒŒλ“œλ‘œ λ“€μ–΄μ˜¬ 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

- λ³Όλ₯¨(volume) : νŒŒλ“œκ°€ μž¬μƒμ„±λ  경우 κ·Έ μ•ˆμ— 데이터듀이 μ‚¬λΌμ§€κ²Œ λ©λ‹ˆλ‹€. λ””μŠ€ν¬μ™€ μœ μ‚¬ν•˜λ©° 데이터λ₯Ό λ³„λ„λ‘œ μ €μž₯ν•©λ‹ˆλ‹€.

 

5. μΏ λ²„λ„€ν‹°μŠ€ 컨트둀러(controller)

- λ ˆν”Œλ¦¬μΉ΄ μ…‹(replica set) : λ™μΌν•œ νŒŒλ“œλ₯Ό μ—¬λŸ¬κ°œ μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ λ‹¨μœ„μž…λ‹ˆλ‹€.

- λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ(deploymnet) : λ ˆν”Œλ¦¬μΉ΄ 셋보닀 μƒμœ„ κ°œλ…μœΌλ‘œ λ ˆν”Œλ¦¬μΉ΄ μ…‹ 배포 기본이 λ˜λŠ” λ‹¨μœ„μž…λ‹ˆλ‹€.

- 데λͺ¬ μ…‹(daemon set) : νŠΉμ • λ…Έλ“œ ν˜Ήμ€ λͺ¨λ“  λ…Έλ“œμ—μ„œ 항상 μ‹€ν–‰λ˜μ–΄μ•Ό ν•  νŒŒλ“œλ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€. 보톡 λͺ¨λ‹ˆν„°λ§ 및 λ‘œκΉ…μ— μ‚¬μš©ν•©λ‹ˆλ‹€.

- 크둠작(cron job) : 주기적으둜 μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” μž‘μ„ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

 

 

μ°Έκ³  : https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88

'κ·Έ μ™Έ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Proxy Server  (2) 2021.06.23
32bit VS 64bit  (0) 2021.02.18
μ˜€ν”ˆ μ†ŒμŠ€  (0) 2020.02.18