λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

μΏ λ²„λ„€ν‹°μŠ€μ˜ κΈ°λ³Έ: μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜μ˜ 핡심 μ΄ν•΄ν•˜κΈ°

by infomationtree 2024. 12. 7.

μΏ λ²„λ„€ν‹°μŠ€λŠ” μ»¨ν…Œμ΄λ„ˆν™”λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 배포, ν™•μž₯ 및 관리λ₯Ό μžλ™ν™”ν•˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€ ν”Œλž«νΌμž…λ‹ˆλ‹€. λ³΅μž‘ν•œ λΆ„μ‚° μ‹œμŠ€ν…œμ„ 효율적으둜 μš΄μ˜ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄, ν˜„λŒ€ IT μΈν”„λΌμ˜ 핡심 기술둜 자리 μž‘μ•˜μŠ΅λ‹ˆλ‹€. 이 λ¬Έμ„œμ—μ„œλŠ” μΏ λ²„λ„€ν‹°μŠ€μ˜ κΈ°λ³Έ κ°œλ…λΆ€ν„° μ‹€μ§ˆμ μΈ ν™œμš© λ°©λ²•κΉŒμ§€ 이해할 수 μžˆλ„λ‘ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€

μΏ λ²„λ„€ν‹°μŠ€λž€ 무엇인가?

μΏ λ²„λ„€ν‹°μŠ€(Kubernetes)λŠ” μ»¨ν…Œμ΄λ„ˆν™”λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 배포와 관리λ₯Ό μžλ™ν™”ν•˜λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€.

2014λ…„ κ΅¬κΈ€μ—μ„œ μ˜€ν”ˆ μ†ŒμŠ€λ‘œ 곡개된 ν”„λ‘œμ νŠΈλ‘œ, ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— μ΅œμ ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆλ₯Ό ν΄λŸ¬μŠ€ν„° λ‹¨μœ„λ‘œ λ¬Άμ–΄ 효율적으둜 μš΄μ˜ν•˜κ³ , λ³΅μž‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ›Œν¬λ‘œλ“œλ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ©°, μ£Όμš” ν΄λΌμš°λ“œ ν”Œλž«νΌκ³Όλ„ ν†΅ν•©λ©λ‹ˆλ‹€.

지속적인 배포(CI/CD)λ₯Ό μ§€μ›ν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄ 개발 속도λ₯Ό κ°€μ†ν™”ν•©λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ λ„κ΅¬λ‘œμ„œ DevOps와 ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ ν™˜κ²½μ˜ ν•„μˆ˜ κΈ°μˆ μž…λ‹ˆλ‹€.

λ‹€μ–‘ν•œ κΈ°λŠ₯κ³Ό μœ μ—°μ„±μ„ μ œκ³΅ν•˜μ—¬ ν˜„λŒ€μ μΈ IT 인프라 ꡬ좕에 κΈ°μ—¬ν•©λ‹ˆλ‹€.

ν΄λŸ¬μŠ€ν„° 관리λ₯Ό 톡해 ν™•μž₯μ„±κ³Ό μ•ˆμ •μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€λž€?

μΏ λ²„λ„€ν‹°μŠ€μ˜ 핡심 ꡬ성 μš”μ†Œ

μΏ λ²„λ„€ν‹°μŠ€λŠ” μ£Όμš” ꡬ성 μš”μ†Œλ‘œ API μ„œλ²„, 컨트둀러 λ§€λ‹ˆμ €, etcd, λ…Έλ“œ, 및 Kubelet을 ν¬ν•¨ν•©λ‹ˆλ‹€.

API μ„œλ²„λŠ” ν΄λŸ¬μŠ€ν„° κ΄€λ¦¬μ˜ μ§„μž…μ μœΌλ‘œ, λͺ¨λ“  μš”μ²­μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

컨트둀러 λ§€λ‹ˆμ €λŠ” ν΄λŸ¬μŠ€ν„° μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ μž‘μ—…μ„ μžλ™ν™”ν•©λ‹ˆλ‹€.

etcdλŠ” ν΄λŸ¬μŠ€ν„°μ˜ μƒνƒœ 데이터λ₯Ό μ €μž₯ν•˜λŠ” λΆ„μ‚° ν‚€-κ°’ μ €μž₯μ†Œμž…λ‹ˆλ‹€.

λ…Έλ“œλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜λŠ” 물리적 λ˜λŠ” 가상 λ¨Έμ‹ μž…λ‹ˆλ‹€.

Kubelet은 각 λ…Έλ“œμ—μ„œ μ‹€ν–‰λ˜λ©°, μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ν•©λ‹ˆλ‹€.

μ„œλΉ„μŠ€ ν”„λ‘μ‹œλŠ” ν΄λŸ¬μŠ€ν„° λ„€νŠΈμ›Œν¬ 톡신을 μ²˜λ¦¬ν•©λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€ λŒ€μ‹œλ³΄λ“œλŠ” μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

핡심 ꡬ성 μš”μ†Œ

μΏ λ²„λ„€ν‹°μŠ€μ˜ μ•„ν‚€ν…μ²˜

μΏ λ²„λ„€ν‹°μŠ€λŠ” λ§ˆμŠ€ν„° λ…Έλ“œμ™€ μ›Œμ»€ λ…Έλ“œλ‘œ κ΅¬μ„±λœ λΆ„μ‚°ν˜• μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.

λ§ˆμŠ€ν„° λ…Έλ“œλŠ” ν΄λŸ¬μŠ€ν„°μ˜ μ „λ°˜μ μΈ 관리λ₯Ό λ‹΄λ‹Ήν•©λ‹ˆλ‹€.

API μ„œλ²„μ™€ μŠ€μΌ€μ€„λŸ¬κ°€ λ§ˆμŠ€ν„° λ…Έλ“œμ—μ„œ λ™μž‘ν•©λ‹ˆλ‹€.

μ›Œμ»€ λ…Έλ“œλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€μ œλ‘œ μ‹€ν–‰ν•˜λ©°, μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

λͺ¨λ“  λ…Έλ“œλŠ” λ„€νŠΈμ›Œν¬μ™€ ν†΅μ‹ ν•˜λ©°, ν˜‘λ ₯적으둜 λ™μž‘ν•©λ‹ˆλ‹€.

λͺ¨λ“ˆν™”λœ μ„€κ³„λ‘œ, λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ ν™•μž₯이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆ κ°„μ˜ 톡신은 λ„€νŠΈμ›Œν¬ ν”ŒλŸ¬κ·ΈμΈμ„ 톡해 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

μ•ˆμ •μ„±κ³Ό μ„±λŠ₯을 μœ„ν•΄ μžμ›μ„ 효율적으둜 κ΄€λ¦¬ν•©λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€ μ•„ν‚€ν…μ²˜

μΏ λ²„λ„€ν‹°μŠ€μ˜ κΈ°λ³Έ κ°œλ…

PodλŠ” μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ κ°€μž₯ μž‘μ€ 배포 λ‹¨μœ„μž…λ‹ˆλ‹€.

μ„œλΉ„μŠ€(Service)λŠ” Pod의 λ„€νŠΈμ›Œν¬ 접근을 μ œμ–΄ν•©λ‹ˆλ‹€.

λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ(Deployment)λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 선언적 배포λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” ν΄λŸ¬μŠ€ν„°λ₯Ό λ…Όλ¦¬μ μœΌλ‘œ κ΅¬λΆ„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

λ³Όλ₯¨μ€ Pod의 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λ””μŠ€ν¬ 곡간을 μ œκ³΅ν•©λ‹ˆλ‹€.

λ ˆμ΄λΈ”κ³Ό μ…€λ ‰ν„°λŠ” μžμ› 필터링 및 κ·Έλ£Ήν™”λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆλŠ” κ°€λ²Όμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ ν™˜κ²½μž…λ‹ˆλ‹€.

λ§€λ‹ˆνŽ˜μŠ€νŠΈ νŒŒμΌμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포λ₯Ό μ •μ˜ν•˜λŠ” YAML λ˜λŠ” JSON νŒŒμΌμž…λ‹ˆλ‹€.

κΈ°λ³Έ κ°œλ…

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포

μΏ λ²„λ„€ν‹°μŠ€λ₯Ό 톡해 선언적 λ°©μ‹μœΌλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ””ν”Œλ‘œμ΄λ¨ΌνŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ μ›ν•˜λŠ” μƒνƒœλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.

둀링 μ—…λ°μ΄νŠΈλŠ” 쀑단 μ—†λŠ” 배포λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

kubectl λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 배포λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

Helm 차트λ₯Ό ν™œμš©ν•˜μ—¬ λ³΅μž‘ν•œ 배포λ₯Ό κ°„μ†Œν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ‹ˆν„°λ§ 도ꡬλ₯Ό 톡해 배포 μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ—λŸ¬ λ°œμƒ μ‹œ μžλ™ 볡ꡬλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

νŠΈλž˜ν”½ λΆ„μ‚°μœΌλ‘œ μ•ˆμ •μ μΈ μ„œλΉ„μŠ€ 제곡이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 배포

ν™•μž₯μ„±κ³Ό μžλ™ν™”

μΏ λ²„λ„€ν‹°μŠ€λŠ” μˆ˜ν‰ ν™•μž₯(Horizontal Scaling)을 μ§€μ›ν•©λ‹ˆλ‹€.

μžλ™ ν™•μž₯κΈ°(HPA)λŠ” νŠΈλž˜ν”½μ— 따라 Pod 수λ₯Ό λ™μ μœΌλ‘œ μ‘°μ •ν•©λ‹ˆλ‹€.

ν΄λŸ¬μŠ€ν„° μ˜€ν† μŠ€μΌ€μΌλŸ¬λŠ” λ…Έλ“œ 수λ₯Ό μžλ™μœΌλ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

CI/CD νŒŒμ΄ν”„λΌμΈκ³Ό ν†΅ν•©ν•˜μ—¬ μžλ™ν™”λ₯Ό κ°•ν™”ν•©λ‹ˆλ‹€.

μžμ› 할당을 효율적으둜 μ΅œμ ν™”ν•©λ‹ˆλ‹€.

λͺ¨λ‹ˆν„°λ§ λ„κ΅¬λ‘œ μ‹€μ‹œκ°„ μžμ› μ‚¬μš©λŸ‰μ„ μΆ”μ ν•©λ‹ˆλ‹€.

μ›Œν¬λ‘œλ“œμ˜ μš”κ΅¬μ— 따라 λ¦¬μ†ŒμŠ€λ₯Ό μž¬λ°°μΉ˜ν•©λ‹ˆλ‹€.

μžλ™ν™”λœ μž‘μ—… μŠ€μΌ€μ€„λ§μœΌλ‘œ νš¨μœ¨μ„±μ„ λ†’μž…λ‹ˆλ‹€.

ν™•μž₯μ„±κ³Ό μžλ™ν™”

μΏ λ²„λ„€ν‹°μŠ€μ˜ ν™œμš© 사둀

μΏ λ²„λ„€ν‹°μŠ€λŠ” ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— ν•„μˆ˜μ μž…λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜ κ΅¬ν˜„μ— μ ν•©ν•©λ‹ˆλ‹€.

데이터 뢄석 ν”Œλž«νΌμ—μ„œ ν™•μž₯ κ°€λŠ₯ν•œ μ›Œν¬λ‘œλ“œ 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

CI/CD νŒŒμ΄ν”„λΌμΈμ˜ μžλ™ν™”μ™€ 톡합이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

ν•˜μ΄λΈŒλ¦¬λ“œ ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œμ˜ μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

κ²Œμž„ μ„œλ²„ 관리 및 μŠ€μΌ€μΌλ§μ— ν™œμš©λ©λ‹ˆλ‹€.

AI/ML μ›Œν¬λ‘œλ“œμ˜ 효율적 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ „μž μƒκ±°λž˜ ν”Œλž«νΌμ˜ ν™•μž₯μ„± 지원에 μ‚¬μš©λ©λ‹ˆλ‹€.

μΏ λ²„λ„€ν‹°μŠ€ ν™œμš© 사둀

❓ 자주 λ¬»λŠ” 질문 FAQ

Q: μΏ λ²„λ„€ν‹°μŠ€λŠ” μ–΄λ–€ ν™˜κ²½μ—μ„œ μ‚¬μš©ν•  수 μžˆλ‚˜μš”?

A: μΏ λ²„λ„€ν‹°μŠ€λŠ” μ˜¨ν”„λ ˆλ―ΈμŠ€, 퍼블릭 ν΄λΌμš°λ“œ, ν•˜μ΄λΈŒλ¦¬λ“œ ν™˜κ²½ λ“± λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Q: Pod와 μ»¨ν…Œμ΄λ„ˆμ˜ μ°¨μ΄λŠ” λ¬΄μ—‡μΈκ°€μš”?

A: PodλŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 그룹이며, μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ κ°€μž₯ μž‘μ€ 배포 λ‹¨μœ„μž…λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€μ™€ Docker의 κ΄€κ³„λŠ” λ¬΄μ—‡μΈκ°€μš”?

A: DockerλŠ” μ»¨ν…Œμ΄λ„ˆ 기술이고, μΏ λ²„λ„€ν‹°μŠ€λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό κ΄€λ¦¬ν•˜κ³  μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ν•˜λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€μ˜ μ£Όμš” μž₯점은 λ¬΄μ—‡μΈκ°€μš”?

A: ν™•μž₯μ„±, μ•ˆμ •μ„±, μžλ™ν™”λœ 배포 및 관리 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€μ˜ λ¦¬μ†ŒμŠ€ μš”κ΅¬μ‚¬ν•­μ€ μ–΄λ–»κ²Œ λ˜λ‚˜μš”?

A: ν΄λŸ¬μŠ€ν„° 크기와 μ‚¬μš© 사둀에 따라 λ‹¬λΌμ§€μ§€λ§Œ, 기본적으둜 CPU와 λ©”λͺ¨λ¦¬κ°€ μΆ©λΆ„νžˆ ν•„μš”ν•©λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€λŠ” λ¬΄λ£ŒμΈκ°€μš”?

A: μΏ λ²„λ„€ν‹°μŠ€λŠ” μ˜€ν”ˆ μ†ŒμŠ€ μ†Œν”„νŠΈμ›¨μ–΄λ‘œ 무료둜 μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, μš΄μ˜μ—λŠ” 인프라 λΉ„μš©μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€λŠ” μ–Όλ§ˆλ‚˜ μ•ˆμ •μ μΈκ°€μš”?

A: μΏ λ²„λ„€ν‹°μŠ€λŠ” 높은 μ•ˆμ •μ„±μ„ μ œκ³΅ν•˜λ©°, λŒ€κ·œλͺ¨ ν™˜κ²½μ—μ„œλ„ μ‹ λ’°μ„± 있게 λ™μž‘ν•©λ‹ˆλ‹€.

Q: μΏ λ²„λ„€ν‹°μŠ€ ν•™μŠ΅μ„ μ‹œμž‘ν•˜λ €λ©΄ 무엇을 μ•Œμ•„μ•Ό ν•˜λ‚˜μš”?

A: Linux κΈ°λ³Έ λͺ…λ Ήμ–΄, μ»¨ν…Œμ΄λ„ˆ κ°œλ…, λ„€νŠΈμ›Œν¬μ™€ κ΄€λ ¨λœ 기초 지식이 도움이 λ©λ‹ˆλ‹€.