object

use case

ConfigMap / secret

μ»¨ν…Œμ΄λ„ˆμ—μ„œ νŠΉμ • μ„œλΉ„μŠ€λ“€μ„ μƒμ„±ν• λ•Œ νŠΉμ • ν™˜κ²½λ³€μˆ˜ ν•˜λ‚˜κ°€ 달라도 λ‹€λ₯Έ μ„œλΉ„μŠ€λ‘œ μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ“€μ„ 각각 λ‹€λ₯Έ Image둜 κ΄€λ¦¬ν•˜κ²Œ 되면 μ–΄λ§ˆμ–΄λ§ˆν•˜κ²Œ λ§Žμ€ image듀을 κ΄€λ¦¬ν•˜κ²Œ λ˜λŠ”λ°, μ΄λ•Œ 이런 값듀은 미리 μ •μ˜ν•΄λ‘κ³  ν™˜κ²½λ³€μˆ˜κ°€ λΉ„μ–΄μžˆλŠ” 이미지 ν•œκ°œλ§Œ 관리λ₯Όν•΄λ„ 이 μ„€μ •νŒŒμΌμ„ 같이 μ„œλΉ„μŠ€λ₯Ό μƒμ„±ν•˜κ²Œ 되면 μ—¬λŸ¬ μ„œλΉ„μŠ€λ“€μ„ 생성할 수 μžˆκ²Œλœλ‹€. μ΄λ•Œ configMapκ³Ό secret을 μ‚¬μš©ν•œλ‹€.

secret은 데이터가 λ©”λͺ¨λ¦¬μ— μ €μž₯되기 λ•Œλ¬Έμ— λ³΄μ•ˆμ— μœ λ¦¬ν•˜μ§€λ§Œ μ‹œν¬λ¦Ώλ‹Ή μ΅œλŒ€ 1MκΉŒμ§€λ§Œ μ €μž₯이 κ°€λŠ₯ν•˜λ‹€.

μ΄λ•Œ ν™˜κ²½λ³€μˆ˜λ₯Ό μ—¬λŸ¬ ν˜•νƒœλ‘œ λ„£μ–΄ μ‚¬μš©ν•  수 μžˆλ‹€.

env

Env(Literal)

ConfigMap을 톡해 ν•„μš”ν•œ 값을 μƒμˆ˜λ‘œ 섀정해두고 μ»¨ν…Œμ΄λ„ˆμ—μ„œ 값듀을 μ‚¬μš©ν•  수 있고 secret은 μ£Όμš”ν•œ 정보λ₯Ό μ €μž₯ν•˜λŠ”λ° μ΄λ•Œ secret의 valueλŠ” base64둜 μΈμ½”λ”©ν•΄μ„œ 값을 λ„£μ–΄μ£Όμ–΄μ•Όν•œλ‹€. νŒŒλ“œλ‘œ 값이 μ£Όμž…μ΄ λ λ•ŒλŠ” μžλ™μ μœΌλ‘œ 디코딩이 λ˜μ–΄ μ‚¬μš©λœλ‹€.

일반적인 object값듀은 k8s db에 μ €μž₯이 λ˜λŠ”λ° secret은 λ©”λͺ¨λ¦¬μ— μ €μž₯이 되고 configMap은 key/valueλ₯Ό λ¬΄ν•œνžˆ 생성할 수 μžˆμ§€λ§Œ secret은 1mbyte만 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

Env(File)

κ°’μœΌλ‘œ μƒμˆ˜κ°€ μ•„λ‹Œ νŒŒμΌμ„ μ •μ˜ν• λ•ŒλŠ” λŒ€μ‹œλ³΄λ“œμ—μ„œ μ œκ³΅ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 직접 cli둜 configMap/secret에 value둜 값을 λ„£μ–΄μ£Όμ–΄μ•Ό ν•œλ‹€.

Volume Mount (File)

ν™˜κ²½λ³€μˆ˜ 방식은 ν•œλ²ˆ μ£Όμž…ν•˜λ©΄ 끝이기 λ•Œλ¬Έμ— ν™˜κ²½λ³€μˆ˜ 값이 λ³€κ²½λ˜μ–΄λ„ 이λ₯Ό μ‚¬μš©ν•˜κ³ μžˆλŠ” νŒŒλ“œλŠ” μž¬μ£Όμž…ν•˜μ§€ μ•Šμ€ 이상 변경이 λ˜μ§€ μ•Šμ§€λ§Œ, λ§ˆμš΄νŠΈλ°©μ‹μ€ λ§κ·ΈλŒ€λ‘œ 마운트λ₯Ό ν•΄μ„œ μ‚¬μš©ν•˜κΈ°λ•Œλ¬Έμ— νŒŒμΌκ°’μ΄ λ³€κ²½λ˜λ©΄ 이λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ” νŒŒλ“œλŠ” 바뀐 값을 μ‚¬μš©ν•˜κ²Œ λœλ‹€.

object2

NameSpace / Resource Quota/ LimitRange

ν•œ ν΄λŸ¬μŠ€ν„° λ‚΄μ—μ„œλŠ” μ—¬λŸ¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ“€μ„ λ§Œλ“€ 수 있고 λ„€μž„μŠ€νŽ˜μ΄μŠ€ λ‚΄μ—μ„œλŠ” μ—¬λŸ¬ νŒŒλ“œλ“€μ„ λ§Œλ“€μ–΄ μ‚¬μš©ν•  수 μžˆλ‹€. μ΄λ•Œ ν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ νŒŒλ“œκ°€ μ„œλ²„μ˜ λͺ¨λ“  μžμ›μ„ μ‚¬μš©ν•˜κ²Œ 되면 λ‹€λ₯Έ νŒŒλ“œλ“€μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν•  수 있기 λ•Œλ¬Έμ— λ„€μž„μŠ€νŽ˜μ΄μŠ€λ“€λ§ˆλ‹€ μ΅œλŒ€ μžμ›λŸ‰μ„ μ œν•œν•˜λŠ” Resource Quotaλ₯Ό λ‘˜ 수 있고 ν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‚΄μ—μ„œ ν•œκ°œμ˜ νŒŒλ“œκ°€ λͺ¨λ“  Resource Quotaλ§ŒνΌμ„ μ‚¬μš©ν•˜κ³ μžˆλ‹€λ©΄ λ‹€λ₯Έ νŒŒλ“œλ“€μ΄ λ“€μ–΄μ˜¬ 수 μ—†κΈ° λ•Œλ¬Έμ— ν•œνŒŒλ“œλ‹Ή 생성될 수 μžˆλŠ” μžμ›λŸ‰μ„ μ œν•œν•  수 μžˆλŠ” LimitRangeκ°€ μ‘΄μž¬ν•œλ‹€.

namespace

NameSpace

ν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œλŠ” 같은 μ΄λ¦„μ˜ νŒŒλ“œλ“€μ„ μ€‘λ³΅ν•΄μ„œ 생성할 μˆ˜μ—†κ³ , 타 λ„€μž„μŠ€νŽ˜μ΄μŠ€ λ“€κ³ΌλŠ” λΆ„λ¦¬λ˜μ–΄ κ΄€λ¦¬λ˜κΈ° λ•Œλ¬Έμ— μ„œλ‘œ λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€λΌλ©΄ ν•œ μ„œλΉ„μŠ€μ—μ„œ λ‹€λ₯Έ νŒŒλ“œλ“€μ„ μ—°κ²°ν•  수 μ—†λ‹€. 그리고 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ§€μš°κ²Œ 되면 κ·Έ μ•ˆμ— λͺ¨λ“  μžμ›μ€ 같이 μ§€μ›Œμ§€κ²Œ λœλ‹€.

λ¬Όλ‘ , PVλ‚˜ nodeλ₯Ό μ΄μš©ν•˜μ—¬ 연결을 ν•  μˆ˜λŠ” 있고 연결은 λ˜μ§€ μ•Šμ§€λ§Œ, 각 νŒŒλ“œκ°€ κ°€μ§€κ³ μžˆλŠ” λ‚΄λΆ€ ipμ£Όμ†Œλ₯Ό μ΄μš©ν•΄μ„œ μ ‘κ·Όκ³Ό 연결은 κ°€λŠ₯ν•˜κ³  nodePort도 λ§ˆμ°¬κ°€μ§€μ΄λ‹€. μ΄λŠ”

ResourceQuota

λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ μžμ›μ„ μ œν•œν•˜κΈ° μœ„ν•œ object둜 ResourceQuotaλ₯Ό λͺ…μ‹œν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— νŒŒλ“œλ₯Ό μƒμ„±ν•˜λ €κ³ ν• λ•Œ νŒŒλ“œμ˜ μžμ›λŸ‰μ„ λͺ…μ‹œν•΄μ£Όμ§€ μ•ŠμœΌλ©΄ μƒˆλ‘œ 생성할 수 μ—†κ³  ν˜„μž¬ μžμ›μ„ μ΄ˆκ³Όν•΄λ„ 생성이 λ˜μ§€ μ•ŠλŠ”λ‹€.

λ„€μž„μŠ€νŽ˜μ΄μŠ€λ§κ³ λ„ ν΄λŸ¬μŠ€ν„° 전체에 λΆ€μ—¬ν•  수 μžˆλŠ” κΆŒν•œμ΄λ‹€.

memory 뿐만이 μ•„λ‹ˆλΌ cpu, storage도 μ œν•œ ν•  수 있으며 objectλ“€μ˜ μˆ«μžλ„ μ œν•œν•  수 μžˆμ§€λ§Œ k8sλ²„μ „λ§ˆλ‹€ μ œν•œν•  수 μžˆλŠ” objectμ’…λ₯˜λŠ” μƒμ΄ν•˜λ‹€.

LimitRange

각각의 νŒŒλ“œλ§ˆλ‹€ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λ“€μ–΄κ°ˆ 수 μžˆλŠ”μ§€ μ²΄ν¬ν•˜κΈ° μœ„ν•œ object

μ΄λŠ” resourceQuota와 달리 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‚΄μ—μ„œλ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•œ object이닀.


Reference

μΈν”„λŸ°-κΉ€νƒœλ―Όλ‹˜ κ°•μ˜

Last updated