Giter VIP home page Giter VIP logo

changmink.github.io's Introduction

Changmin kim

Backend Developer

Enterprise Photo platform ๐Ÿ“ท

Hi ๐Ÿ‘‹

  • ๐Ÿ”ญ Iโ€™m currently working on Java and sometimes Go and Python
  • ๐ŸŒฑ Iโ€™m currently learning JDK 17 and Spring Webflux for The new photo platform

changmink.github.io's People

Watchers

 avatar  avatar

changmink.github.io's Issues

ํƒ€์ž„ ์•„์›ƒ ์ข…๋ฅ˜

Connection Timeout

์„œ๋ฒ„์— ์š”์ฒญ์ด ๋ชฐ๋ ค์„œ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ ํƒ€์ž„ ์•„์›ƒ ๋˜๋Š” ๊ฒฝ์šฐ

Read Timeout

์ปค๋„ฅ์…˜์ด ๋งบ์–ด์กŒ์œผ๋‚˜ I/O ๋•Œ๋ฌธ์— ํƒ€์ž„์•„์›ƒ ๋˜๋Š” ๊ฒฝ์šฐ

Socket Timeout

Ack๊ฐ€ ์•ˆ์™€์„œ ํƒ€์ž„์•„์›ƒ

HTTP Timeout

https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-00.html#rfc.section.1.1

Request Timeout

Idle Connection Timeout

WebWork

Pull based - ๊ฐ€์ง€๊ณ  ์™€์„œ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์คŒ?
์ปค๋งจ๋“œ ํŒจํ„ด๊ธฐ๋ฐ˜

Istio

๊ฐœ๋…

๋ณต์žกํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์„œ๋น„์Šค ๋งค์‰ฌ, Pod๋“ค์„ ๊ด€๋ฆฌํ•จ(ํŠธ๋ž˜ํ”ฝ, ๋ณด์•ˆ, ๋ชจ๋‹ˆํ„ฐ, ํ™•์žฅ). side car ํ˜•ํƒœ๋กœ envoy ํ”„๋ก์‹œ๋ฅผ ์ฃผ์ž…ํ•ด์„œ ์—ฐ๊ฒฐ๋จ

๊ตฌ์„ฑ

Pliot

  • envoy ์„ค์ •๊ด€๋ฆฌ
  • service discvoery ์ œ๊ณต

Mixer

  • ์—‘์„ธ์Šค ์ œ์–ด ๋ฐ ์ •์ฑ… ๊ด€๋ฆฌ
  • ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ ์ˆ˜์ง‘

Citadel

  • ์ธ์ฆ
  • ์•”ํ˜ธํ™”

Gallery

  • ์„ค์ •์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

Spring MVC

DispatcherServlet

์ƒ์† ๋ฐ ๊ตฌํ˜„ ๊ตฌ์กฐ(๊ด„ํ˜ธ๋Š” ๊ตฌํ˜„ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค)

DispatcherServlet - FrameworkServlet(ApplicationContextAware) - HttpServletBean(EnvironmentCapable, EnvironmentAware) - HttpServlet - GenericServlet(Servlet, ServletConfig, Serializable)

jpeg

Compression mode

Sequential

์œ„์—์„œ ์•„๋ž˜๋กœ. ๊ฐ ์ปฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋Š” ์‹ฑ๊ธ€ ์Šค์บ”์œผ๋กœ ์ธ์ฝ”๋”ฉ ๋จ.

Progressive

๋‹ค์ค‘ ์Šค์บ”(2~896)์œผ๋กœ ์ธ์ฝ”๋”ฉ ๋จ. ๋””์ฝ”๋“œ ๋˜๋ฉด์„œ ๋ณด์ž„. ์Šค์บ” ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜๋ก ๋šœ๋ ทํ•ด์ง (์ตœ์ข… ์‚ฌ์ง„์— ๊ฐ€๊นŒ์›Œ์ง).๋„คํŠธ์›Œํฌ ๋‹ค์šด๋กœ๋“œ์— ์œ ๋ฆฌ.

Hierarchical

๋ถ€๋ถ„์ด๋ฏธ์ง€์ธ ํ”„๋ ˆ์ž„์œผ๋กœ ๋‹ค์šด ์ƒ˜ํ”Œ๋งํ•œ๋‹ค. ์ „์†ก๋ฅ ์ด ๋‚ฎ์€ ๋„คํŠธ์›Œํฌ์—์„œ ์œ ๋ฆฌํ•˜์ง€๋งŒ, ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค.

Lossless

์›๋ณธ์ด๋ฏธ์ง€ ์†์ƒ์ด ๊ฐ€์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. ๋Œ€์‹ ์— ์••์ถ•๋ฅ ์ด ์ ์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.
JPEG-LS๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๋‚˜์™”๋‹ค.

Basic Tech

Byte Ordering

JPEG์—์„œ๋Š” Big endian์ด๋‹ค.

Sampling frequency

์ƒ˜ํ”Œ๋ง๋œ ์ƒ๋Œ€์ ์ธ ์ฃผํŒŒ์ˆ˜. ์•„๋‚ ๋กœ๊ทธ์—์„œ ๋””์ง€ํ„ธ๋กœ ํ‘œํ˜„๋ ๋•Œ ์ฃผํŒŒ์ˆ˜์ด๋‹ค. ๋†’์„ ์ˆ˜๋ก ๊ตฌ์ฒด์ ์ธ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค. YCbCr์—์„œ๋Š” Y์— ๋น„ํ•ด์„œ CbCr์ด ์‚ฌ๋žŒ์ด ๋ณผ๋•Œ ๋œ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋Š๋ผ๋ฏ€๋กœ ์ด ๋ถ€๋ถ„์„ ์ค„์—ฌ์„œ ์••์ถ•์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Scans

๋ฐ์ดํ„ฐ์˜ ๋ธ”๋ก

Data units

ํŠน์ • ์‚ฌ์ด์ฆˆ์˜ ํ”ฝ์…€ ๋ธ”๋ก(ex : 8*8)

MCU(Minimum Coded Unit)

Interleving๋œ Scan์ด Data unit์˜ ๊ทธ๋ฃน์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ ๊ฒƒ์„ ์˜๋ฏธ

Interleaving

๊ต์ฐจ๋กœ ๊ฐ™์ด ๋ณด์—ฌ์คŒ
ex) YCbCr ์€ ํœ˜๋„์™€ ์ƒ‰์ฐจ๋ฅผ Interleavingํ•œ๋‹ค.

helm chart

helm์€ k8s์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์—ญํ• 

์ฐจํŠธ ๊ตฌ์กฐ

helm์€ ์ฐจํŠธ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํฌ๋งท์„ ํŒจํ‚ค์ง•์— ์‚ฌ์šฉํ•œ๋‹ค.

  • Chart.yaml : ์ฐจํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ํŒŒ์ผ
  • values.yaml : ํ…œํ”Œ๋ฆฟ์—์„œ ์น˜ํ™˜๋  ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ
  • templates/ : k8s yaml ํŒŒ์ผ์˜ ํ…œํ”Œ๋ฆฟ๋“ค์ด ์žˆ๋Š”ํด๋”. ํ…œํ”Œ๋ฆฟ๋“ค์€ ์ฐจํŠธ๊ฐ€ ํ‰๊ฐ€ ๋ ๋•Œ ๋ Œ๋”๋ง ์—”์ง„์œผ๋กœ ๋ณด๋‚ด์ง

ํ…œํ”Œ๋ฆฟ

{{ }}์‚ฌ์ด์— ์˜ค๋Š” ๊ฐ’๋“ค์„ ์น˜ํ™˜ํ•œ๋‹ค. {{ .Release.Name }} ์—์„œ .์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

๋นŒํŠธ์ธ ์˜ค๋ธŒ์ ํŠธ

Release

Values

Chart

Files

Capabilities

Template

values ํŒŒ์ผ

๊ธฐ๋ณธ์ ์œผ๋กœ values.yaml ํŒŒ์ผ์— ์žˆ๋Š” ๊ฐ’์ด ์‚ฌ์šฉ ๋จ. -f file.yaml ์˜ต์…˜์œผ๋กœ install์‹œ์— ๋„˜๊ธธ ์ˆ˜ ์žˆ์Œ. --set a=a์œผ๋กœ value ์ „๋‹ฌ ๊ฐ€๋Šฅ --set์œผ๋กœ ์ค€๊ฒŒ ๊ธฐ์กด ๊ฑธ ๋ฎ์–ด์“ฐ๊ธฐํ•จ.

Template Function and Pipelines

60๊ฐœ ์ด์ƒ์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ณ  Go template language๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜ ์‚ฌ์šฉ

{{ quote .Values.favorite.food }} : quote๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ๋‹ค. ์ด๋Š” ๊ฐ’์— ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ๋ถ™์ธ๋‹ค.

ํŒŒ์ดํ”„ ๋ผ์ธ ์‚ฌ์šฉ

{{ Values.favorite.food | upper | quote }} : upper๋ผ๋Š” ํ•จ์ˆ˜ ์ ์šฉ(๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ) ํ›„ quote ์ ์šฉ

๋””ํดํŠธ ํ•จ์ˆ˜

drink: {{ .Values.favorite.drink | default "tea" | quote }} : ๊ฐ’์ด ์—†์œผ๋ฉด "tea"๋ฅผ ์‚ฌ์šฉ

k8s

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ฐœ์š”

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ

๊ธฐ๋ณธ ์˜ค๋ธŒ์ ํŠธ

  • ํŒŒ๋“œ
  • ์„œ๋น„์Šค
  • ๋ณผ๋ฅจ
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค

๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”

  • ๋””ํ”Œ๋กœ์ด๋จผํŠธ
  • ๋ฐ๋ชฌ ์…‹
  • ์Šคํ…Œ์ดํŠธ ํ’€ ์…‹
  • ๋ ˆํ”Œ๋ฆฌ์นด ์…‹
  • ์žก

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ์‹œ์Šคํ…œ ๋‚ด ๋ชจ๋“  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์˜ค๋ธŒ์ ํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ œ์–ด๋ฃจํ”„๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ตฌ๋™์‹œํ‚จ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋งˆ์Šคํ„ฐ

ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ๋ฐ”๋ผ๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ฑ…์ž„. kubectl๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉด ๋งˆ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋…ธ๋“œ

VM, ๋ฌผ๋ฆฌ ์„œ๋ฒ„ ๋“ฑ์ด๋‹ค. ๋งˆ์Šคํ„ฐ๋Š” ๊ฐ ๋…ธ๋“œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปดํฌ๋„ŒํŠธ

๋งˆ์Šคํ„ฐ ์ปดํฌ๋„ŒํŠธ

ํด๋Ÿฌ์Šคํ„ฐ์— ๊ด€ํ•œ ์ „๋ฐ˜ ์ ์ธ ๊ฒฐ์ •(์Šค์ผ€์ค„๋ง ๊ฐ™์€๊ฑฐ) ๊ณผ ์ด๋ฒคํŠธ์— ๊ฐ์ง€ํ•˜๊ณ  ๋ฐ˜์‘

kube-apiserver

k8s api๋ฅผ ๋…ธ์ถœํ•˜๋Š”์ปจํฌ๋„ŒํŠธ. k8s ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ํ”„๋ก ํŠธ ์—”๋“œ, ์ˆ˜ํ‰ํ™•์žฅ.

etcd

๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” key-value store

kube-scheduler

๋…ธ๋“œ๊ฐ€ ๋ฐฐ์ •๋˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์ƒ์„ฑ๋œ pod๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ๊ตฌ๋™๋  ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ
๋‹ค์–‘ํ•œ ์š”์†Œ๊ฐ€ ๊ฒฐ์ •์„ ์œ„ํ•ด์„œ ๊ณ ๋ ค๋จ

kube-controller-manager

์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๋งˆ์Šคํ„ฐ ์ƒ์˜ ์ปดํฌ๋„ŒํŠธ
๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š”์ปจํŠธ๋กค๋Ÿฌ๋Š” ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค ์ด๋ฏธ์ง€๋งŒ, ๋ณต์žก์„ฑ์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ๋‹จ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ๋‹จ์„ ํ”„๋กœ์„ธ์Šค์ƒ์— ์‹คํ–‰๋œ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ : API ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ณต์œ ๋œ ์ƒํƒœ๋ฅผ ๊ฐ์‹œํ•˜๊ณ  ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์›ํ•˜๋Š” ์ƒํƒœ๋กœ ์ดํ–‰์‹œํ‚ค๋Š” ์ปจํŠธ๋กค ๋ฃจํ”„
  • ๋…ธ๋“œ ์ปจํŠธ๋กค๋Ÿฌ : ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜์—ˆ์„๋•Œ ํ†ต์ง€์™€ ๋Œ€์‘์— ๋Œ€ํ•œ ์ฑ…์ž„
  • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ : ์•Œ๋งž์€ ์ˆ˜์˜ ํŒŒ๋“œ๋“ค์„ ์œ ์ง€
  • ์—”๋“œ ํฌ์ธํŠธ ์ปจํŠธ๋กค๋Ÿฌ: ์„œ๋น„์Šค์™€ ํŒŒ๋“œ๋ฅผ ์—ฐ๊ฒฐ
  • ์„œ๋น„์Šค ์–ด์นด์šดํŠธ & ํ† ํฐ ์ปจํŠธ๋กค๋Ÿฌ : ์ƒˆ๋กœ์šด ๋„ค์ž„์ŠคํŽ˜์Šค์—๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ณ„์ •๊ณผ API ์ ‘๊ทผ ํ† ํฐ์„ ์ƒ์„ฑ

cloud-controller-manager

ํด๋ผ์šฐ๋“œ ์ œ๊ณต ์‚ฌ์—…์ž์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ž‘๋™. ๋‹ค์Œ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํด๋ผ์šฐ๋“œ ์ œ๊ณต์‚ฌ์—…์ž์˜ ์˜์กด์„ฑ์„ ๊ฐ–๋Š”๋‹ค.

  • ๋…ธ๋“œ ์ปจํŠธ๋กค๋Ÿฌ : ๋…ธ๋“œ๊ฐ€ ์‘๋‹ต์„ ๋ฉˆ์ถ”๋ฉด ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์‚ฌ์—…์ž์—๊ฒŒ ํ™•์ธ
  • ๋ผ์šฐํŠธ ์ปจํŠธ๋กค๋Ÿฌ : ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์— ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑ
  • ์„œ๋น„์Šค ์ปจํŠธ๋กค๋Ÿฌ : ํด๋ผ์šฐ์ฆˆ ์ œ๊ณต ์‚ฌ์—…์ž ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ
  • ๋ณผ๋ฅจ ์ปจํŠธ๋กค๋Ÿฌ : ๋ณผ๋ฅจ์˜ ์ƒ์„ฑ, ๋ถ€์ฐฉ, ๋งˆ์šดํŠธ, ์กฐ์ •์„ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ์ œ๊ณต์‚ฌ์—…์ž์™€ ์ƒํ˜ธ์ž‘์šฉ

๋…ธ๋“œ ์ปดํฌ๋„ŒํŠธ

๋™์ž‘ ์ค‘์ธ Pod ์œ ์ง€, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ์ œ๊ณต, ๋ชจ๋“  ๋…ธ๋“œ ์ƒ์—์„œ ๋™์ž‘

kubelet

์—์ด์ „ํŠธ๋กœ ํŒŒ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ™•์‹คํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค. PodSpec์— ๋งž๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ณด์žฅํ•œ๋‹ค.

kube-proxy

๋„คํŠธ์›Œํฌ ํ”„๋ก์‹œ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค Service ๊ฐœ๋…์˜ ๊ตฌํ˜„, ๋…ธ๋“œ์˜ ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ๊ด€๋ฆฌํ•œ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์„ ๋‹ด๋‹น

์• ๋“œ์˜จ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค(๋ฐ๋ชฌ ์…‹, ๋””ํ”Œ๋กœ์ด๋จผํŠธ)๋ฅผ ํ†ตํ•œ ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

DNS

๋ชจ๋“  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” DNS๊ฐ€ ์กด์žฌ, DNS๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์›น UI

๋Œ€์‹œ๋ณด๋“œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ ๋ฒ”์šฉ์˜ ์›น๊ธฐ๋ฐ˜ UI

์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง

์‹œ๊ณ„์—ด ๋งคํŠธ๋ฆญ์Šค, ์กฐํšŒ๋ฅผ ์œ„ํ•œ UI

ํด๋Ÿฌ์Šคํ„ฐ ๋ ˆ๋ฒจ ๋กœ๊น…

์ค‘์•™๋กœ๊ทธ ์ €์žฅ์†Œ์— ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ๋ฅผ ์ €์žฅ. ๊ฒ€์ƒ‰๊ณผ ์—ด๋žŒ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

๋‚˜๋จธ์ง€ ์• ๋“œ์˜จ ๋“ค

https://kubernetes.io/docs/concepts/cluster-administration/addons/

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์˜์†์„ฑ์„ ๊ฐ€์ง€๋Š” ๊ฐœ์ฒด, ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ„. ์˜๋„๋ฅผ ๋‹ด์€ ๋ ˆ์ฝ”๋“œ

์˜ค๋ธŒ์ ํŠธ Spec & Status

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์Šคํ…œ์€ Status๋ฅผ Spec์— ๋งž๋„๋ก ๋Šฅ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

Spec

์˜๋„ํ•œ ์ƒํƒœ๋ฅผ ๊ธฐ์ˆ 

Status

์˜ค๋ธŒ์ ํŠธ์˜ ์‹ค์ œ ์ƒํƒœ๋ฅผ ๊ธฐ์ˆ , ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์˜ํ•ด ์ œ๊ณต๋˜๊ณ  ์—…๋ฐ์ดํŠธ

์˜ค๋ธŒ์ ํŠธ ๊ธฐ์ˆ 

๋ณดํ†ต์€ .yamlํŒŒ์ผ๋กœ ๊ธฐ์ˆ ํ•˜๊ณ  kubectl์— ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

ํ•„์ˆ˜ ํ•„๋“œ

  • apiVersion: ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API ๋ฒ„์ „์ด ๋ฌด์—‡์ธ์ง€
  • kind : ์–ด๋–ค ์ข…๋ฅ˜์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”์ง€
  • metadata : ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„์ง€์–ด ์ค„ ๋ฐ์ดํ„ฐ
  • spec : ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์–ด๋–ค ์ƒํƒœ๋ฅผ ์˜๋„ํ•˜๋Š”์ง€

์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

๋ช…๋ นํ–‰ ๋ช…๋ น์–ด

kubectl์„ ์ด์šฉํ•ด์„œ ์ง์ ‘ ๋™์ž‘์‹œํ‚ค๋Š” ๋ฐฉ์‹. ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›€

๋ช…๋ นํ–‰ ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ

YAML ํŒŒ์ผ์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•. ๊ด€๋ฆฌํ•˜๊ธฐ ์ข‹์ง€๋งŒ, ๋ฌธ๋ฒ•์ดํ•ด๊ฐ€ ํ•„์š”. ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

์„ ์–ธํ˜• ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ

(์ดํ•ด ์•ˆ๋จ)
ํŒŒ์ผ์—์„œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๋กœ์ปฌ ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑํŒŒ์ผ์„ ๋Œ€์ƒ์œผ๋กœ ๋™์ž‘ํ•จ, kubectl์— ์˜ํ•ด ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ๊ฐ€ ๊ฐ์ง€๋œ๋‹ค. ๋ณดํ†ต ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋™์ž‘.
์˜ˆ์ธก์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์—์„œ ๋””๋ฒ„๊น…์˜ ์–ด๋ ค์›€, ๋ณต์žกํ•ด์ง

์ด๋ฆ„

ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ์˜ค๋ธŒ์ ํŠธ๋Š” ํ•ด๋‹น ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ์ด๋ฆ„๊ณผ UID์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Name

๋™์ผํ•œ ๋ฌผ๋ฆฌ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋‹ค์ค‘์˜ ๊ฐ€์ƒํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ถ”์ƒํ™”

UID

์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ค‘๋ณต์—†์ด ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์Šคํ…œ์ด ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ž์—ด

๋„ค์ž„์ŠคํŽ˜์ด์Šค

๋™์ผ ๋ฌผ๋ฆฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ณต์ˆ˜์˜ ๊ฐ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ, ์ด๋ฆ„์˜ ๋ฒ”์œ„๋ฅผ ์ œ๊ณต

๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์— ์†ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

๋…ธ๋“œ, ํผ์‹œ์Šคํ„ดํŠธ ๋ณผ๋ฅจ๋“ฑ์˜ ์ €์ˆ˜์ค€ ๋ฆฌ์†Œ์Šค, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ž์ฒด

๋ ˆ์ด๋ธ”

ํŒŒ๋“œ์™€ ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ์˜ ์ฒจ๋ถ€ ๋œ ํ‚ค์™€ ๊ฐ’์˜ ์Œ, ์‚ฌ์šฉ์ž์— ์˜ค๋ธŒ์ ํŠธ์˜ ํŠน์„ฑ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ๋œ๋‹ค. ๋ ˆ์ด๋ธ”์€ ์–ธ์ œ๊ฐ€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์…€๋ ‰ํ„ฐ

๋ ˆ์ด๋ธ”์€ ๊ณ ์œ ํ•˜์ง€ ์•Š๋‹ค. ๋งŽ์€ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ™์€ ๋ ˆ์ด๋ธ”์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ผ์น˜์„ฑ ๊ธฐ์ค€ : ์ผ์น˜ ๋˜๋Š” ๋ถˆ์ผ์น˜๋กœ ๋ ˆ์ด๋ธ”์˜ ํ‚ค์™€ ๊ฐ’์˜ ํ•„ํ„ฐ๋ง์„ ํ—ˆ์šฉํ•œ๋‹ค.
//accelerator=nvidia-tesla-p100์ธ ๋ ˆ์ด๋ธ”์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ
apiVersion: v1
kind: Pod
metadata:
  name: cuda-test
spec:
  containers:
    - name: cuda-test
      image: "k8s.gcr.io/cuda-vector-add:v0.1"
      resources:
        limits:
          nvidia.com/gpu: 1
  nodeSelector:
    accelerator: nvidia-tesla-p100
  • ์ง‘ํ•ฉ์„ฑ ๊ธฐ์ค€ : ๋ ˆ์ด๋ธ” ์š”๊ฑด์— ๋”ฐ๋ผ ๊ฐ’์ง‘ํ•ฉ์„ ํ‚ค๋กœ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์˜์˜ ๋น„์‹๋ณ„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ธŒ์ ํŠธ์— ์ฒจ๋ถ€ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ค๋ธŒ์ ํŠธ์— ์ฒจ๋ถ€

๋ ˆ์ด๋ธ”๊ณผ ๋‹ฌ๋ฆฌ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ•„๋“œ ์…€๋ ‰ํ„ฐ

ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ์†Œ์Šค ํ•„๋“œ ๊ฐ’์— ๋”ฐ๋ผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

ex)

  • metadata.name=my-service
  • metadata.namespace!=default
  • status.phase=Pending

์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ

๊ธฐ๋Šฅ

  • ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ด€๋ฆฌ
  • ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ์ง€์›
  • ํ’€๋ง
  • ๋ณด์•ˆ

3๊ฐ€์ง€ ์ƒํƒœ ์ข…๋ฅ˜

Standalone

ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ์›น์„œ๋ฒ„์™€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ™์ด ์žˆ์Œ ex) tomcat๋งŒ ๋„์šด๊ฒฝ์šฐ

In-process

์›น์„œ๋ฒ„์™€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Œ. ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ
์—ฐ๊ฒฐ ๋จ ex) Jboss์•ˆ์— tomcat

Out-of-process

์›น์„œ๋ฒ„์™€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Œ

k8s ConfigMap

ConfigMap

์„ค์ •์„ ์ปจํ…Œ์ด๋„ˆ์™€ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

์ •์˜ํ•˜๊ธฐ

apiVersion: v1
kind: ConfigMap
metadata:
  name: [์›ํ•˜๋Š” ์ด๋ฆ„]
  ...
data:
  key:value 
  key:value
  ......
  key:value

์ƒ์„ฑํ•˜๊ธฐ

kubectl apply -f [ํŒŒ์ผ๋ช…]

์ ์šฉ๋ฒ•

ํŠน์ • ๊ฐ’๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ

spec:
  containers:
  ...
    env:
      - name: [ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋  ์ด๋ฆ„]
      valueFrom:
        configMapKeyRef:
          name: [์„ ์–ธํ•œ configMap ์ด๋ฆ„]
          key: [configMap์—์„œ ์ •ํ•œ ๊ฐ’]

Pod์— ๋“ค์–ด๊ฐ€์„œ ํ™•์ธ ๊ฐ€๋Šฅ

echo $[ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋  ์ด๋ฆ„]

์ „์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

spec:
  containers:
  ...
    envFrom:
      - configMapRef:
         name: [์„ ์–ธํ•œ configMap ์ด๋ฆ„]

๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

spec:
  containers:
  ...
  volumes:
    - name: config-volume
      configMap:
        name: [์„ ์–ธํ•œ configMap ์ด๋ฆ„]

์„œ๋ธ”๋ฆฟ

์„œ๋ธ”๋ฆฟ

์ž๋ฐ”์˜ WAS ํ‘œ์ค€?

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ(IntelliJ)

New - Project - Java Enterprise - Web Application ์ฒดํฌ ํ›„ ์ƒ์„ฑ

์ƒ์„ฑํ›„ ํด๋” ๊ตฌ์กฐ

image

web.xml

  • Deployment Descriptor.
  • webapp ์„ค์ •ํŒŒ์ผ ์—ญํ• .
  • URL๊ณผ ์„œ๋ธ”๋ฆฟ ๋งคํ•‘ ์ •๋ณด๊ฐ€ ํฌํ•จ ๋จ.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.