[μΏ λ²„λ„€ν‹°μŠ€] νŒŒλ“œ

νŒŒλ“œ

  • κ°€μž₯ μž‘μ€ 배포 λ‹¨μœ„λ‘œ, μ»¨ν…Œμ΄λ„ˆν™”λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” κΈ°λ³Έ λ‹¨μœ„이닀.
  • νŒŒλ“œλŠ” ν•˜λ‚˜ μ΄μƒμ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό 포함할 수 있으며, μ»¨ν…Œμ΄λ„ˆλ“€μ€ λ™μΌν•œ λ„€νŠΈμ›Œν¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ™€ μŠ€ν† λ¦¬μ§€λ₯Ό κ³΅μœ ν•œλ‹€.

μ£Όμš” νŠΉμ§•

  1. 단일 IP μ£Όμ†Œ: νŒŒλ“œ λ‚΄ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλŠ” λ™μΌν•œ IP μ£Όμ†Œλ₯Ό κ³΅μœ ν•˜μ—¬ μ„œλ‘œ 간에 둜컬 λ„€νŠΈμ›Œν¬ 톡신을 ν•  수 μžˆλ‹€. νŒŒλ“œ λ°–μ—μ„œ μ ‘κ·Όν•  λ•ŒλŠ” μ„œλΉ„μŠ€, 인그레슀 등을 톡해 μ ‘κ·Όν•œλ‹€.
  2. 곡유 μŠ€ν† λ¦¬μ§€: νŒŒλ“œμ˜ μ»¨ν…Œμ΄λ„ˆλ“€μ€ λ³Όλ₯¨μ„ 톡해 데이터λ₯Ό κ³΅μœ ν•  수 μžˆλ‹€.
  3. 닀쀑 μ»¨ν…Œμ΄λ„ˆ ꡬ성 κ°€λŠ₯: νŒŒλ“œ 내에 μ—¬λŸ¬ 개의 μ»¨ν…Œμ΄λ„ˆλ₯Ό 포함할 수 μžˆμ§€λ§Œ, 일반적으둜 ν•˜λ‚˜μ˜ μ£Όμš” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆμ™€ 이λ₯Ό μ§€μ›ν•˜λŠ” 보쑰 μ»¨ν…Œμ΄λ„ˆ(μ‚¬μ΄λ“œμΉ΄ νŒ¨ν„΄)κ°€ ν•¨κ»˜ μžˆλ‹€.
  4. λ™μΌν•œ μŠ€μΌ€μ€„λ§ λ‹¨μœ„: νŒŒλ“œλŠ” μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ λ…Έλ“œμ— λ°°μΉ˜λ˜λŠ” λ‹¨μœ„μ΄λ‹€. ν•˜λ‚˜μ˜ νŒŒλ“œλŠ” 항상 λ™μΌν•œ λ…Έλ“œμ—μ„œ μ‹€ν–‰λ˜λ©°, νŒŒλ“œ λ‚΄μ˜ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆκ°€ ν•¨κ»˜ μŠ€μΌ€μ€„λ§λœλ‹€.

νŒŒλ“œμ˜ 수λͺ… μ£ΌκΈ°

νŒŒλ“œλŠ” 비ꡐ적 짧은 수λͺ…을 가진닀.

μΏ λ²„λ„€ν‹°μŠ€λŠ” νŒŒλ“œλ₯Ό ν•„μš”μ— 따라 μƒμ„±ν•˜κ³  μ‚­μ œν•˜λ©°, λ§Œμ•½ νŒŒλ“œκ°€ μ‹€νŒ¨ν•˜λ©΄ μƒˆλ‘œμš΄ νŒŒλ“œλ₯Ό μƒμ„±ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κ°€μš©μ„±μ„ μœ μ§€ν•œλ‹€.

νŒŒλ“œμ˜ ꡬ성 μš”μ†Œ

  • μ»¨ν…Œμ΄λ„ˆ(Container): μ‹€μ œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜λŠ” ν™˜κ²½
  • λ³Όλ₯¨(Volume): νŒŒλ“œ λ‚΄ μ»¨ν…Œμ΄λ„ˆκ°€ κ³΅μœ ν•  수 μžˆλŠ” μŠ€ν† λ¦¬μ§€
  • λ„€νŠΈμ›Œν¬ μ„€μ •: νŒŒλ“œλŠ” 고유의 IPλ₯Ό 가지며, νŒŒλ“œ λ‚΄ μ»¨ν…Œμ΄λ„ˆλŠ” 이 IPλ₯Ό 톡해 μ„œλ‘œ 톡신가λŠ₯

 

νŒŒλ“œ 생성

kubectl run [application] --image=[μ‚¬μš©ν•  이미지]

kubectl get pod

 

μ™ΈλΆ€ μ ‘κ·Ό

root@cp-k8s:~# kubectl expose pod nginx --type=NodePort --port=80
service/nginx exposed


root@cp-k8s:~# kubectl get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.x.x.x.         <none>        443/TCP        47h
nginx        NodePort    10.x.x.x          <none>        80:[Port]/TCP   8s

 

exposeλ₯Ό 톡해 Nginx μ„œλΉ„μŠ€λ₯Ό μ™ΈλΆ€μ—μ„œλ„ μ ‘κ·Ό κ°€λŠ₯ν•˜κ²Œ λ§Œλ“€μ–΄μ€€λ‹€

nginx μ„œλΉ„μŠ€μ˜ 80 포트 μ˜†μ— λ‚˜μ˜€λŠ” ν¬νŠΈκ°€ μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•œ ν¬νŠΈλ‹€

μ ‘κ·Ό 확인 μ‹œ λ§ˆμŠ€ν„° λ…Έλ“œ : μ™ΈλΆ€ν¬νŠΈ 둜 κ΅¬κΈ€μ—μ„œ 접속해본닀.

 

λ””ν”Œλ‘œμ΄λ¨ΌνŠΈλ‘œ 배포

kubectl create deployment deploy-nginx --image=nginx

# νŒŒλ“œ λ ˆν”Œλ¦¬μΉ΄ 개수 λ³€κ²½ κΈ°μ‘΄ 1 -> λ³€κ²½ 3
kubectl scale deployment deploy-nginx --replicas=3

 

νŠΈλŸ¬λΈ”μŠˆνŒ… #1

νŒŒλ“œ λ„μš°λŠ”κ²Œ μ•ˆλœλ‹€!

nginx podλ₯Ό λ„μ›Œλ΄€λŠ”λ° ContainerCreating μƒνƒœμ—μ„œ λ©ˆμΆ°μžˆλ‹€

kubectl describe pod nginx둜 확인해보면

unauthorizedκ°€ λœ¬λ‹€.

칼리코 λ…Έλ“œ μƒνƒœμ΄λ‹€. 흠..?

 

ν•΄κ²°ν•œ 방법은 λ…Έλ“œ μž¬λΆ€νŒ…μ΄μ˜€λ‹€. μ •ν™•νžˆλŠ” μž¬λΆ€νŒ…μ„ 톡해 칼리코 λ…Έλ“œλ“€λ„ μ‹œμŠ€ν…œ μž¬μ‹œμž‘λ˜μ–΄ λ™μž‘ν•˜λŠ” 것 κ°™λ‹€.

μ‹€μ œλ‘œ μž¬λΆ€νŒ…μ„ ν•˜λŠ”κ²Œ μ˜¬λ°”λ₯Έ 닡은 아닐 것 κ°™λ‹€..

 

μ°Έκ³ 

https://shonm.tistory.com/781

 

nginx νŒŒλ“œκ°€ λ–΄λ‹€~