• toc {:toc}

Kubernetes Objects

  • Objects : Pods, ReplicationController, DeploymentController, Volumes, StatefulSets…
  • μΏ λ²„λ„€ν‹°μŠ€μ˜ Objects λŠ” 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ Objects λ₯Ό ν‘œν˜„ν•œ 것과 μƒλ‹Ήνžˆ μœ μ‚¬ν•˜λ‹€.
    • 팟 클래슀λ₯Ό 팟 객체둜 λ„μš°κ±°λ‚˜ ReplicaSet Controller λ˜ν•œ 클래슀둜 μ§€μ •ν•΄ 객체λ₯Ό 생성해 μ‚¬μš©ν•˜λŠ” 것과 μœ μ‚¬ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.
    • ν΄λž˜μŠ€μ— ν•΄λ‹Ήν•˜λŠ” 것이 kind ν˜Ήμ€ resource type 이라 λ§ν•œλ‹€. 이λ₯Ό μ‹€ν–‰μ‹œν‚¨ 것을 객체라고 ν•œλ‹€.
  • μΏ λ²„λ„€ν‹°μŠ€λŠ” 주둜 RESTful μš©μ–΄λ₯Ό ν†΅ν•΄μ„œ API κ°œλ…μ„ ν‘œν˜„μ„ μ‚¬μš©ν•œλ‹€.
    • μΏ λ²„λ„€ν‹°μŠ€μ—κ²Œ RESTful API λ₯Ό ν†΅ν•΄μ„œ μš”μ²­ν•˜κ³  응닡을 λ°›λŠ”λ‹€.
  • λ¦¬μ†ŒμŠ€ νƒ€μž… : URL μ—μ„œ μ‚¬μš©λ˜λŠ” 이름 (pods, namespaces, services)
  • λ¦¬μ†ŒμŠ€ νƒ€μž…μ˜ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€ β†’ λ¦¬μ†ŒμŠ€ ν˜Ήμ€ 객체
  • λͺ¨λ“  λ¦¬μ†ŒμŠ€ νƒ€μž…λ“€μ€ kind 라 λΆ€λ₯΄λŠ” ꡬ체적인 ν‘œν˜„μ„ κ°–λŠ”λ‹€.
  • λ¦¬μ†ŒμŠ€ μΈμŠ€ν„΄μŠ€λ“€μ˜ λͺ¨μŒμ„ collection 이라 ν•œλ‹€.
  • λͺ‡λͺ‡ λ¦¬μ†ŒμŠ€ νƒ€μž„λ“€μ„ μœ„ν•΄ API λŠ” λ¦¬μ†ŒμŠ€ μ•„λž˜ URI κ²½λ‘œλ“€λ‘œ ν‘œν˜„λ˜λŠ” ν•˜λ‚˜ ν˜Ήμ€ 더 λ§Žμ€ ν•˜μœ„ μžμ›λ“€μ„ ν¬ν•¨ν•œλ‹€.
  • Object configuration
    • Spec (e.g. yaml 파일 전달)
      • 객체에 λŒ€ν•œ desired state λ₯Ό λ¬˜μ‚¬ν•œλ‹€.
      • 객체가 κ°–κΈ°λ₯Ό μ›ν•˜λŠ” νŠΉμ§•μ„ λ§ν•œλ‹€.
    • Status (e.g. get λͺ…λ Ή)
      • 객체의 actual state λ₯Ό λ¬˜μ‚¬ν•œλ‹€.
      • μΏ λ²„λ„€ν‹°μŠ€ μ‹œμŠ€ν…œμ— μ˜ν•΄ κ³΅κΈ‰λ˜κ³  μ—…λ°μ΄νŠΈλœ μƒνƒœμ΄λ‹€.
      • μΏ λ²„λ„€ν‹°μŠ€ 컨트둀 κ³„νšμ΄ λ™μ μœΌλ‘œ 객체의 actual state κ°€ desired state 와 μΌμΉ˜ν•˜λ„λ‘ κ΄€λ¦¬ν•œλ‹€.

REF: Resource in RESTful

  • λ¦¬μ†ŒμŠ€λŠ” νƒ€μž…κ³Ό κ΄€λ ¨λœ 데이터, λ‹€λ₯Έ λ¦¬μ†ŒμŠ€λ“€κ³Όμ˜ 관계, μž‘λ™ν•˜λŠ” 일련의 방법을 μ§€λ‹Œ 객체이닀.
  • 이것은 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 객체 μΈμŠ€ν„΄μŠ€μ™€ μœ μ‚¬ν•œλ‹€.
  • ν•˜μ§€λ§Œ 객체 μΈμŠ€ν„΄μŠ€λŠ” λ§Žμ€ 방식을 κ°–μ§€λ§Œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ μ •μ˜λœ ν‘œμ€€ 방식은 λͺ‡ μ—†λ‹€.
  • 객체 μΈμŠ€ν„΄μŠ€λŠ” λ§Žμ€ λ©”μ†Œλ“œλ₯Ό κ°–μ§€λ§Œ, 그에 λ°˜ν•΄ λ¦¬μ†ŒμŠ€λŠ” λͺ‡ κ°€μ§€ ν‘œμ€€ λ©”μ†Œλ“œλ§Œ μ •μ˜λ˜μ–΄ μžˆλ‹€.

Record of Intent

  • 객체λ₯Ό μƒμ„±ν•¨μœΌλ‘œμ¨ μΏ λ²„λ„€ν‹°μŠ€ μ‹œμŠ€ν…œμ— ν΄λŸ¬μŠ€ν„°μ˜ desired state, μ˜λ„λ₯Ό λ°νžˆλŠ” 것과 κ°™λ‹€.
  • λͺ¨λ“  객체듀은 κ³΅ν†΅μ˜ 메타데이터λ₯Ό κ°–λŠ”λ‹€.
  • ν•˜λ‚˜μ˜ κ°μ²΄λŠ” ν΄λΌμ΄μ–ΈνŠΈλ“€μ΄ λ§Œλ“€κ±°λ‚˜ μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ μ‚­μ œν•˜κ±°λ‚˜ κ°€μ Έμ˜€λŠ” νŠΉμ • 행동을 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν•˜λŠ” μ—¬λŸ¬ λ¦¬μ†ŒμŠ€λ“€μ„ κ°€μ§ˆ 수 μžˆλ‹€.

Kubernetes API

  • μΏ λ²„λ„€ν‹°μŠ€μ˜ μž‘λ™ β†’ API 둜 κ΅¬μ„±ν•΄μ„œ μ‚¬μš©ν•œλ‹€.
  • Client API : ν΄λΌμ΄μ–ΈνŠΈκ°€ μ›ν•˜λŠ” 객체의 생성, μˆ˜μ •, μ‚­μ œ λ“±μ˜ λ™μž‘μ„ νŠΉμ • λͺ…령을 톡해 λ™μž‘μ‹œν‚¬ 수 μžˆλ„λ‘ ν•œλ‹€.
    • λ‚΄κ°€ μ›ν•˜λŠ” λ™μž‘μ„ μœ„ν•΄ 객체λ₯Ό μƒμ„±ν•˜κ³  μž‘λ™μ„ μ‹œν‚€λŠ” μ½”λ“œλ₯Ό 직접 μ§œλŠ” 것이 μ•„λ‹Œ, 이미 μ§œμ—¬μ§„ μ½”λ“œλ₯Ό API ν˜ΈμΆœμ„ ν†΅ν•΄μ„œ λ™μž‘μ‹œν‚¬ 수 μžˆλ‹€λŠ” μ μ—μ„œ νŽΈλ¦¬ν•˜λ‹€.
    • λ‚΄κ°€ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μ—μ„œ μΏ λ²„λ„€ν‹°μŠ€ API λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

Images and Registries

Image

  • λ„μ»€μ˜ 이미지와 λ™μΌν•˜λ‹€.
  • 이미지λ₯Ό μΏ λ²„λ„€ν‹°μŠ€ νŒŸμ— μ‚¬μš©ν•˜κΈ° 전에 λ ˆμ§€μŠ€νŠΈλ¦¬μ— push ν•  ν•„μš”κ°€ μžˆλ‹€.
  • μ»¨ν…Œμ΄λ„ˆμ˜ 이미지 속성은 개인 λ ˆμ§€μŠ€νŠΈλ¦¬μ™€ νƒœκ·Έλ₯Ό ν¬ν•¨ν•œ 도컀 μ»€λ©˜λ“œμ™€ 같은 문법을 μ§€μ›ν•œλ‹€.
  • imagePullPolicy
    • IfNotPresent : 이미지가 Local, ν•΄λ‹Ή λ…Έλ“œμ— μžˆμ§€ μ•Šλ‹€λ©΄, 이미지λ₯Ό pull ν•˜μ—¬ μ‹€ν–‰ν•œλ‹€.
    • Always : 이미지λ₯Ό 팟이 μ‹œμž‘λ˜λŠ” λ•Œμ— 항상 pull ν•œλ‹€. (μˆ˜μ‹œλ‘œ μ—…λ°μ΄νŠΈκ°€ 되고 μ΅œμ‹  이미지λ₯Ό μ‚¬μš©ν•˜κ³  싢은 경우)
    • Never : Remote 의 λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  Local 에 μžˆλŠ” κ²ƒλ§Œ μ‚¬μš©ν•œλ‹€.(λ³΄μ•ˆ μƒμ˜ 경우)
  • μ™œ latest νƒœκ·Έλ₯Ό ν”Όν•΄μ•Ό ν•˜λŠ”κ°€?
    • μ΄λ―Έμ§€μ˜ μ–΄λ–€ 버전이 μ‹€ν–‰ 쀑 인지λ₯Ό νŒŒμ•…ν•˜κΈ° μ–΄λ ΅λ‹€.
    • μ μ ˆν•˜κ²Œ λ‘€λ°±ν•˜κΈ° μ–΄λ ΅λ‹€.