Kubernetes

Kubernetes둜 ν΄λŸ¬μŠ€ν„° μ™ΈλΆ€ μžμ› κ΄€λ¦¬ν•˜κΈ°

μ•ˆλ…•ν•˜μ„Έμš”. μ €λŠ” LINEμ—μ„œ LINE 개발자λ₯Ό μœ„ν•œ μ„œλΉ„μŠ€, Pipeline을 κ°œλ°œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. Pipeline은 ν…ŒμŠ€νŠΈλΆ€ν„° μ„œλΉ„μŠ€ λ°°ν¬κΉŒμ§€ κ°€λŠ₯ν•œ, Kubernetes 기반 μ›Œν¬ν”Œλ‘œ(workflow) μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ½”λ“œλ₯Ό κ²€μ¦ν•˜κΈ° μœ„ν•œ ν…ŒμŠ€νŠΈλ‚˜ μ½”λ“œλ₯Ό λ°°ν¬ν•˜κΈ° μœ„ν•œ λΉŒλ“œ λ˜λŠ” 주기적으둜 μž‘μ—…μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 크둠(cron) μž‘μ—…κ³Ό 같이 μ‹€ν–‰ν•˜κ³  싢은 μž‘μ—…μ„ μ›Œν¬ν”Œλ‘œ ν˜•νƒœλ‘œ Pipeline에 μ •μ˜ν•˜λ©΄, Pipeline이 μ‚¬μš©μžκ°€ μ •μ˜ν•œ λŒ€λ‘œ μž‘μ—…μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. μž‘μ—…μ˜ κ²°κ³ΌλŠ” λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚˜λŠ”λ°μš”. 파일이 μ‚°μΆœλ˜κΈ°λ„ ν•˜κ³  μ„œλΉ„μŠ€κ°€ μ‹€ν–‰λ˜κΈ°λ„ ν•©λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” μ™ΈλΆ€μ—μ„œ λ°œμƒν•œ νŠΈλž˜ν”½μ„ Kubernetes ν΄λŸ¬μŠ€ν„°μ—μ„œ μ‹€ν–‰λ˜λŠ” μ„œλΉ„μŠ€λ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ Pipeline μ»΄ν¬λ„ŒνŠΈλ₯Ό 직접 κ°œλ°œν•œ κ²½ν—˜μ„ λ‚˜λˆ„κ³ μž ν•©λ‹ˆλ‹€.

Journey to Kubernetes with Blockchain Network(+CKAD)

μ•ˆλ…•ν•˜μ„Έμš”. LINEμ—μ„œ κ·Όλ¬΄ν•˜κ³  μžˆλŠ” 이지홍이라고 ν•©λ‹ˆλ‹€. 2018λ…„λΆ€ν„° 가상 화폐 LINKκ°€ μ‚΄μ•„ 숨 쉬고 μžˆλŠ” 블둝체인 μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 블둝체인 λ„€νŠΈμ›Œν¬μ— μ ν•©ν•œ ν”„λ‘œλΉ„μ €λ‹ 방법을 μ—°κ΅¬ν•˜κ³  이λ₯Ό Kubernetes(μ΄ν•˜ K8s)와 같은 도ꡬλ₯Ό ν™œμš©ν•΄ κ΅¬ν˜„ν•˜κΈ°κΉŒμ§€μ˜ 여정에 λŒ€ν•œ ν›„κΈ°λ₯Ό 이번 κΈ€μ—μ„œ λ‚˜λˆ„κ³ μž ν•©λ‹ˆλ‹€.

λŒ€κ·œλͺ¨ Kubernetes ν΄λŸ¬μŠ€ν„° ꡬ좕기

LINEμ—μ„œλŠ” κ°œλ°œμžκ°€ κ°œλ°œμ—λ§Œ 집쀑할 수 μžˆλ„λ‘ 개발 μ™Έμ˜ 인프라 κ΄€λ ¨ 업무λ₯Ό λŒ€μ‹  μˆ˜ν–‰ν•΄ μ£ΌλŠ” Kubernetes 기반 μ„œλΉ„μŠ€ Nucleoλ₯Ό 자체 κ°œλ°œν•˜μ—¬ LINE λ‚΄λΆ€μš©μœΌλ‘œ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. Nucleoμ—λŠ” ν˜„μž¬ 800μ—¬ 개의 μ•±μ΄ μ•½ 4,000개의 pod둜 μ„œλΉ„μŠ€λ˜κ³  μžˆλŠ”λ°μš”. μ•±μ˜ κ°œμˆ˜λŠ” 계속 λΉ λ₯΄κ²Œ μ¦κ°€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ›Œν¬λ‘œλ“œλŠ” 개발 ꡬ역(region)에 μ•½ 60λŒ€, 운영 ꡬ역에 μ•½ 80λŒ€κ°€ μ„€μΉ˜λœ PM(physical machine)κ³Ό VM(virtual machine)으둜 μš΄μ˜ν•˜κ³  있으며, κ·Έ 외에 Nucleo 개발용 ν΄λŸ¬μŠ€ν„°κ°€ μ•½ 3~40개, feature ν…ŒμŠ€νŠΈμš© λ…Έλ“œ 3개둜 이루어진 λ―Έλ‹ˆ ν΄λŸ¬μŠ€ν„° μ•½ 20~30개 κ°€λŸ‰μ΄ κ΅¬λ™λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ‹€μˆ˜μ˜ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό μš΄μ˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” λΉ λ₯΄κ³  μ•ˆμ •μ μœΌλ‘œ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό μ„€μΉ˜ν•˜κ³  μš΄μ˜ν•  수 μžˆλŠ” 방법이 ν•„μš”ν•œλ°μš”. κ·Έλž˜μ„œ Nucleo νŒ€μ—μ„œλŠ” Kubernetes ν΄λŸ¬μŠ€ν„° ν”„λ‘œλΉ„μ €λ‹μ„ λͺ©μ μœΌλ‘œ ‘Caravan’μ΄λΌλŠ” 도ꡬλ₯Ό κ°œλ°œν•˜μ—¬ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΅œκ·Όμ— νŒ€μ—μ„œλŠ” 이 Caravan이 μ•žμœΌλ‘œ λŠ˜μ–΄λ‚  μ•±μ˜ μˆ˜μš”μ— λŒ€μ‘ν•  수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄κΈ° μœ„ν•΄ λ§Žμ€ μ–‘μ˜ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό μƒμ„±ν•˜κ³  ν…ŒμŠ€νŠΈν•΄ λ³΄μ•˜λŠ”λ°μš”. 이번 글에선 이 ν…ŒμŠ€νŠΈμ˜ μƒμ„Έν•œ λ‚΄μš©κ³Ό ν…ŒμŠ€νŠΈλ₯Ό 톡해 배운 점에 λŒ€ν•΄ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.