λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

TEAM STUDY/SERVER

πŸ”΅ μΏ λ²„λ„€ν‹°μŠ€ κ°•μ˜ 1μ£Όμ°¨ - μΏ λ²„λ„€ν‹°μŠ€ (Kubernetes)λž€ ?

728x90
λ°˜μ‘ν˜•

πŸ”΅ μΏ λ²„λ„€ν‹°μŠ€ (Kubernetes)λž€

 

μΏ λ²„λ„€ν‹°μŠ€λŠ” μ»¨ν…Œμ΄λ„ˆν™”λœ μ›Œν¬λ‘œλ“œμ™€ μ„œλΉ„μŠ€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 이식성이 있고, ν™•μž₯κ°€λŠ₯ν•œ μ˜€ν”ˆμ†ŒμŠ€ ν”Œλž«νΌμ΄λ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” 선언적 ꡬ성과 μžλ™ν™”λ₯Ό λͺ¨λ‘ μš©μ΄ν•˜κ²Œ ν•΄μ€€λ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” 크고, λΉ λ₯΄κ²Œ μ„±μž₯ν•˜λŠ” μƒνƒœκ³„λ₯Ό 가지고 μžˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€ μ„œλΉ„μŠ€, 기술 지원 및 λ„κ΅¬λŠ” μ–΄λ””μ„œλ‚˜ μ‰½κ²Œ μ΄μš©ν•  수 μžˆλ‹€.

 

 μ‹œκ°„이 μ§€λ‚˜λ©΄μ„œ μΏ λ²„λ„€ν‹°μŠ€κ°€ μ™œ μœ μš©ν•˜κ²Œ λ˜μ—ˆλ‚˜ ?

 

 

βœ… Traditional Deployment - 전톡적인 배포 μ‹œλŒ€

초기 쑰직은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 물리 μ„œλ²„μ—μ„œ μ‹€ν–‰ν–ˆμ—ˆλ‹€. ν•œ 물리 μ„œλ²„μ—μ„œ μ—¬λŸ¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ¦¬μ†ŒμŠ€ ν•œκ³„λ₯Ό μ •μ˜ν•  방법이 μ—†μ—ˆκΈ°μ—, λ¦¬μ†ŒμŠ€ ν• λ‹Ήμ˜ λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€. 예λ₯Ό λ“€μ–΄ 물리 μ„œλ²„ ν•˜λ‚˜μ—μ„œ μ—¬λŸ¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λ©΄, λ¦¬μ†ŒμŠ€ μ „λΆ€λ₯Ό μ°¨μ§€ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μΈμŠ€ν„΄μŠ€κ°€ μžˆμ„ 수 있고, κ²°κ³Όμ μœΌλ‘œλŠ” λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯이 μ €ν•˜λ  수 μžˆμ—ˆλ‹€. 이에 λŒ€ν•œ 해결책은 μ„œλ‘œ λ‹€λ₯Έ μ—¬λŸ¬ 물리 μ„œλ²„μ—μ„œ 각 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” 것이 μžˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λŠ” λ¦¬μ†ŒμŠ€κ°€ μΆ©λΆ„νžˆ ν™œμš©λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ μ—μ„œ ν™•μž₯ κ°€λŠ₯ν•˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ, 물리 μ„œλ²„λ₯Ό 많이 μœ μ§€ν•˜κΈ° μœ„ν•΄μ„œ μ‘°μ§μ—κ²Œ λ§Žμ€ λΉ„μš©μ΄ λ“€μ—ˆλ‹€.

βœ… Virtualized Deployment - κ°€μƒν™”λœ 배포 μ‹œλŒ€

κ·Έ ν•΄κ²°μ±…μœΌλ‘œ 가상화가 λ„μž…λ˜μ—ˆλ‹€. μ΄λŠ” 단일 물리 μ„œλ²„μ˜ CPUμ—μ„œ μ—¬λŸ¬ 가상 μ‹œμŠ€ν…œ (VM)을 μ‹€ν–‰ν•  수 있게 ν•œλ‹€. 가상화λ₯Ό μ‚¬μš©ν•˜λ©΄ VM간에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ²©λ¦¬ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 정보λ₯Ό λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 자유둭게 μ•‘μ„ΈμŠ€ ν•  수 μ—†μœΌλ―€λ‘œ, 일정 μˆ˜μ€€μ˜ λ³΄μ•ˆμ„±μ„ μ œκ³΅ν•  수 μžˆλ‹€.

가상화λ₯Ό μ‚¬μš©ν•˜λ©΄ 물리 μ„œλ²„μ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό 보닀 효율적으둜 ν™œμš©ν•  수 있으며, μ‰½κ²Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μΆ”κ°€ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈν•  수 있고 ν•˜λ“œμ›¨μ–΄ λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆμ–΄ 더 λ‚˜μ€ ν™•μž₯성을 μ œκ³΅ν•œλ‹€. 가상화λ₯Ό 톡해 일련의 물리 λ¦¬μ†ŒμŠ€λ₯Ό 폐기 κ°€λŠ₯ν•œ(disposable) 가상 λ¨Έμ‹ μœΌλ‘œ κ΅¬μ„±λœ ν΄λŸ¬μŠ€ν„°λ‘œ λ§Œλ“€ 수 μžˆλ‹€.

각 VM은 κ°€μƒν™”λœ ν•˜λ“œμ›¨μ–΄ μƒμ—μ„œ 자체 운영체제λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  ꡬ성 μš”μ†Œλ₯Ό μ‹€ν–‰ν•˜λŠ” ν•˜λ‚˜μ˜ μ™„μ „ν•œ 머신이닀.

βœ… Container Deployment - μ»¨ν…Œμ΄λ„ˆ 개발 μ‹œλŒ€

 μ»¨ν…Œμ΄λ„ˆλŠ” VMκ³Ό μœ μ‚¬ν•˜μ§€λ§Œ 격리 속성을 μ™„ν™”ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 간에 운영체제(OS)λ₯Ό κ³΅μœ ν•œλ‹€. κ·ΈλŸ¬λ―€λ‘œ μ»¨ν…Œμ΄λ„ˆλŠ” 가볍닀고 여겨진닀. VMκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ»¨ν…Œμ΄λ„ˆμ—λŠ” 자체 파일 μ‹œμŠ€ν…œ, CPU 점유율, λ©”λͺ¨λ¦¬, ν”„λ‘œμ„ΈμŠ€ 곡간 등이 μžˆλ‹€. κΈ°λ³Έ μΈν”„λΌμ™€μ˜ 쒅속성을 λŠμ—ˆκΈ° λ•Œλ¬Έμ—, ν΄λΌμš°λ“œλ‚˜ OS 배포본에 λͺ¨λ‘ 이식할 수 μžˆλ‹€.

 

 

βœ… μ»¨ν…Œμ΄λ„ˆκ°€ 제곡 ν•΄μ£ΌλŠ” 좔가적인 ν˜œνƒ

  • κΈ°λ―Όν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 생성과 배포
    • VM 이미지λ₯Ό μ‚¬μš©ν•˜λŠ” 것에 λΉ„ν•΄ μ»¨ν…Œμ΄λ„ˆ 이미지 생성이 보닀 쉽고 νš¨μœ¨μ μž„.
  • 지속적인 개발, 톡합 및 배포
    • μ•ˆμ •μ μ΄κ³  주기적으둜 μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό λΉŒλ“œν•΄μ„œ 배포할 수 있고 (μ΄λ―Έμ§€μ˜ λΆˆλ³€μ„± 덕에) λΉ λ₯΄κ³  효율적으둜 λ‘€λ°±ν•  수 μžˆλ‹€.
  • 개발과 운영의 관심사 뢄리
    • 배포 μ‹œμ μ΄ μ•„λ‹Œ λΉŒλ“œ/릴리슀 μ‹œμ μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό λ§Œλ“€κΈ° λ•Œλ¬Έμ—, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μΈν”„λΌμŠ€νŠΈλŸ­μ²˜μ—μ„œ λΆ„λ¦¬λœλ‹€.
  • κ°€μ‹œμ„±
    • κ°€μ‹œμ„±μ€ OS μˆ˜μ€€μ˜ 정보와 λ©”νŠΈλ¦­μ— 머무λ₯΄μ§€ μ•Šκ³ , μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν—¬μŠ€μ™€ κ·Έ λ°–μ˜ μ‹œκ·Έλ„μ„ λ³Ό 수 μžˆλ‹€.
  • 개발, ν…ŒμŠ€νŒ… 및 운영 ν™˜κ²½μ— 걸친 일관성
    • λž©νƒ‘μ—μ„œλ„ ν΄λΌμš°λ“œμ—μ„œμ™€ λ™μΌν•˜κ²Œ κ΅¬λ™λœλ‹€.
  • ν΄λΌμš°λ“œ 및 OS 배포판 κ°„ 이식성
    • Ubuntu, RHEL, CoreOS, 온-ν”„λ ˆλ―ΈμŠ€, μ£Όμš” 퍼블릭 ν΄λΌμš°λ“œμ™€ μ–΄λ””μ—μ„œλ“  κ΅¬λ™λœλ‹€.
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 쀑심 관리
    • 가상 ν•˜λ“œμ›¨μ–΄ μƒμ—μ„œ OSλ₯Ό μ‹€ν–‰ν•˜λŠ” μˆ˜μ€€μ—μ„œ 논리적인 λ¦¬μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” OS μƒμ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” μˆ˜μ€€μœΌλ‘œ 좔상화 μˆ˜μ€€μ΄ 높아진닀.
  • λŠμŠ¨ν•˜κ²Œ μ»€ν”Œλ˜κ³ , λΆ„μ‚°λ˜κ³ , μœ μ—°ν•˜λ©°, 자유둜운 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 단일 λͺ©μ μ˜ λ¨Έμ‹ μ—μ„œ λͺ¨λ†€λ¦¬μ‹ μŠ€νƒμœΌλ‘œ κ΅¬λ™λ˜μ§€ μ•Šκ³  보닀 μž‘κ³  독립적인 λ‹¨μœ„λ‘œ μͺΌκ°œμ Έμ„œ λ™μ μœΌλ‘œ 배포되고 관리될 수 μžˆλ‹€.
  • λ¦¬μ†ŒμŠ€ 격리
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯을 μ˜ˆμΈ‘ν•  수 μžˆλ‹€.
  • μžμ› μ‚¬μš©λŸ‰
    • λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰: 고효율 고집적

 

 

βœ… μΏ λ²„λ„€ν‹°μŠ€

 

μΏ λ²„λ„€ν‹°μŠ€λŠ” 전톡적인, λͺ¨λ“  것이 ν¬ν•¨λœ Platform as a Service(PaaS)κ°€ μ•„λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” ν•˜λ“œμ›¨μ–΄ μˆ˜μ€€λ³΄λ‹€λŠ” μ»¨ν…Œμ΄λ„ˆ μˆ˜μ€€μ—μ„œ 운영되기 λ•Œλ¬Έμ—, PaaSκ°€ 일반적으둜 μ œκ³΅ν•˜λŠ” 배포, μŠ€μΌ€μΌλ§, λ‘œλ“œ λ°ΈλŸ°μ‹±κ³Ό 같은 κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μ‚¬μš©μžκ°€ λ‘œκΉ…, λͺ¨λ‹ˆν„°λ§ 및 μ•Œλ¦Ό μ†”λ£¨μ…˜μ„ 톡합할 수 μžˆλ‹€.

ν•˜μ§€λ§Œ, μΏ λ²„λ„€ν‹°μŠ€λŠ” λͺ¨λ†€λ¦¬μ‹(monolithic)이 μ•„λ‹ˆμ–΄μ„œ, 이런 κΈ°λ³Έ μ†”λ£¨μ…˜μ΄ 선택적이며 μΆ”κ°€λ‚˜ μ œκ±°κ°€ μš©μ΄ν•˜λ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” 개발자 ν”Œλž«νΌμ„ λ§Œλ“œλŠ” ꡬ성 μš”μ†Œλ₯Ό μ œκ³΅ν•˜μ§€λ§Œ, ν•„μš”ν•œ 경우 μ‚¬μš©μžμ˜ μ„ νƒκΆŒκ³Ό μœ μ—°μ„±μ„ μ§€μΌœμ€€λ‹€.

 

  • μ§€μ›ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μœ ν˜•μ„ μ œμ•½ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • μΏ λ²„λ„€ν‹°μŠ€λŠ” μƒνƒœ μœ μ§€κ°€ ν•„μš” μ—†λŠ”(stateless) μ›Œν¬λ‘œλ“œ, μƒνƒœ μœ μ§€κ°€ ν•„μš”ν•œ(stateful) μ›Œν¬λ‘œλ“œ, 데이터 처리λ₯Ό μœ„ν•œ μ›Œν¬λ‘œλ“œλ₯Ό ν¬ν•¨ν•΄μ„œ κ·Ήλ‹¨μ μœΌλ‘œ λ‹€μ–‘ν•œ μ›Œν¬λ‘œλ“œλ₯Ό μ§€μ›ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ»¨ν…Œμ΄λ„ˆμ—μ„œ ꡬ동될 수 μžˆλ‹€λ©΄, μΏ λ²„λ„€ν‹°μŠ€μ—μ„œλ„ 잘 λ™μž‘ν•  것이닀.
  • μ†ŒμŠ€ μ½”λ“œλ₯Ό λ°°ν¬ν•˜μ§€ μ•ŠμœΌλ©° μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉŒλ“œν•˜μ§€ μ•ŠλŠ”λ‹€.
    • 지속적인 톡합과 전달과 배포, 곧 CI/CD μ›Œν¬ν”Œλ‘œμš°λŠ” 쑰직 문화와 μ·¨ν–₯에 λ”°λ₯Ό 뿐만 μ•„λ‹ˆλΌ 기술적인 μš”κ΅¬μ‚¬ν•­μœΌλ‘œ κ²°μ •λœλ‹€.
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 레벨의 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 레벨의 μ„œλΉ„μŠ€μ—λŠ” 미듀웨어(예, λ©”μ‹œμ§€ λ²„μŠ€), 데이터 처리 ν”„λ ˆμž„μ›Œν¬(예, Spark), λ°μ΄ν„°λ² μ΄μŠ€(예, MySQL), μΊμ‹œ λ˜λŠ” ν΄λŸ¬μŠ€ν„° μŠ€ν† λ¦¬μ§€ μ‹œμŠ€ν…œ(예, Ceph) 등이 μžˆλ‹€. 이런 μ»΄ν¬λ„ŒνŠΈλŠ” μΏ λ²„λ„€ν‹°μŠ€ μƒμ—μ„œ ꡬ동될 수 있고, μΏ λ²„λ„€ν‹°μŠ€ μƒμ—μ„œ ꡬ동 쀑인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ Open Service Broker μ™€ 같은 이식 κ°€λŠ₯ν•œ λ©”μ»€λ‹ˆμ¦˜μ„ 톡해 μ ‘κ·Όν•  μˆ˜λ„ μžˆλ‹€.
  • λ‘œκΉ…, λͺ¨λ‹ˆν„°λ§ λ˜λŠ” 경보 μ†”λ£¨μ…˜μ„ ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • κ°œλ… 증λͺ…을 μœ„ν•œ 일뢀 ν†΅ν•©μ΄λ‚˜, λ©”νŠΈλ¦­μ„ μˆ˜μ§‘ν•˜κ³  λ…ΈμΆœν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μ„ μ œκ³΅ν•œλ‹€.
  • κΈ°λ³Έ μ„€μ • μ–Έμ–΄/μ‹œμŠ€ν…œ(예, Jsonnet)을 μ œκ³΅ν•˜κ±°λ‚˜ μš”κ΅¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • 선언적 λͺ…μ„Έμ˜ μž„μ˜μ μΈ ν˜•μ‹μ„ λͺ©μ μœΌλ‘œ ν•˜λŠ” 선언적 APIλ₯Ό μ œκ³΅ν•œλ‹€.
  • 포괄적인 λ¨Έμ‹  μ„€μ •, μœ μ§€λ³΄μˆ˜, 관리, μžλ™ 볡ꡬ μ‹œμŠ€ν…œμ„ μ œκ³΅ν•˜κ±°λ‚˜ μ±„νƒν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μΏ λ²„λ„€ν‹°μŠ€λŠ” λ‹¨μˆœν•œ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ μ‹œμŠ€ν…œμ΄ μ•„λ‹ˆλ‹€.
    • 사싀, μΏ λ²„λ„€ν‹°μŠ€λŠ” μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ˜ ν•„μš”μ„±μ„ μ—†μ• μ€€λ‹€. μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ˜ 기술적인 μ •μ˜λŠ” Aλ₯Ό λ¨Όμ € ν•œ λ‹€μŒ, Bλ₯Ό ν•˜κ³ , Cλ₯Ό ν•˜λŠ” 것과 같이 μ •μ˜λœ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μˆ˜ν–‰ν•˜λŠ” 것이닀. λ°˜λ©΄μ—, μΏ λ²„λ„€ν‹°μŠ€λŠ” 독립적이고 μ‘°ν•© κ°€λŠ₯ν•œ μ œμ–΄ ν”„λ‘œμ„ΈμŠ€λ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. 이 ν”„λ‘œμ„ΈμŠ€λŠ” μ§€μ†μ μœΌλ‘œ ν˜„μž¬ μƒνƒœλ₯Ό μž…λ ₯받은 μ˜λ„ν•œ μƒνƒœλ‘œ λ‚˜μ•„κ°€λ„λ‘ ν•œλ‹€. Aμ—μ„œ C둜 μ–΄λ–»κ²Œ κ°”λŠ”μ§€λŠ” 상관이 μ—†λ‹€. μ€‘μ•™ν™”λœ μ œμ–΄λ„ ν•„μš”μΉ˜ μ•Šλ‹€. 이둜써 μ‹œμŠ€ν…œμ΄ 보닀 더 μ‚¬μš©ν•˜κΈ° μ‰¬μ›Œμ§€κ³ , κ°•λ ₯해지며, κ²¬κ³ ν•˜κ³ , 회볡λ ₯을 κ°–μΆ”κ²Œ 되며, ν™•μž₯ κ°€λŠ₯해진닀

 


 

 


 


 


 


 


πŸ”΅ Kubernetes Overview


μ°Έκ³  μ‚¬μ΄νŠΈ

728x90
λ°˜μ‘ν˜•