๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Deploy

๐Ÿณ Dockerfile vs Helm values ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ

๋ฐฐํฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒŒ ์ข‹์„๊นŒ?

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

์™œ ์ด ๋ฌธ์ œ๋ฅผ ๊ณ ๋ฏผํ–ˆ์„๊นŒ?
๊ธฐ์กด ๋ฐฉ์‹์—์„œ๋Š” ์‚ฌ๋‚ด ๋ฐฐํฌ ํˆด์—์„œ ์ง์ ‘ Docker์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๋ฌธ์ œ๋Š” ์ฝ”๋“œ์ƒ์—์„œ ์–ด๋–ค ํ™˜๊ฒฝ์ด ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค. ๋ฐฐํฌ ์„ค์ •์ด ์‚ฌ๋‚ด ํˆด ๋‚ด๋ถ€์—์„œ๋งŒ ๊ด€๋ฆฌ๋˜๋‹ค ๋ณด๋‹ˆ, ์ฝ”๋“œ๋งŒ ๋ด์„œ๋Š” ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š”์ง€ ์•Œ๊ธฐ ์–ด๋ ค์› ๋‹ค.

๊ทธ๋ž˜์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ฝ”๋“œ์—์„œ๋„ ๋ช…ํ™•ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ๋„, ๊ด€๋ฆฌ๊ฐ€ ๋” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” Dockerfile์—์„œ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ–ˆ์ง€๋งŒ, ์šด์˜ ํ™˜๊ฒฝ์ด ์ปค์ง€๋ฉด์„œ ์ด ๋ฐฉ์‹์ด ๊ณผ์—ฐ ์ตœ์„ ์ธ์ง€ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹œ๋„๋ฅผ ๊ฑฐ์นœ ๋์—, ์ตœ์ข…์ ์œผ๋กœ Helm์˜ values.yaml์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ์ฒ˜์Œ ์‚ฌ์šฉํ–ˆ๋˜ Dockerfile ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ ๋ฐฉ์‹๊ณผ Helm์„ ํ™œ์šฉํ•œ ๋ฐฉ์‹์˜ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ Helm์„ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.


๊ธฐ์กด ๋ฐฉ์‹: Dockerfile์—์„œ ARG์™€ ENV๋ฅผ ํ™œ์šฉํ•œ ํ™˜๊ฒฝ ์„ค์ •

์ฒ˜์Œ์—๋Š” Dockerfile์—์„œ ARG์™€ ENV๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค์ •์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋นŒ๋“œ ์‹œ์ ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„ ENVIRONMENT ๊ฐ’์„ ์„ค์ •ํ•˜๊ณ , ์ด๋ฅผ ๋Ÿฐํƒ€์ž„์—์„œ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ธฐ์กด ๋ฐฉ์‹์˜ Dockerfile ์˜ˆ์‹œ

FROM openjdk:11

# ๋นŒ๋“œ ์‹œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ • (๊ธฐ๋ณธ๊ฐ’: dev)
ARG SPRING_PROFILES_ACTIVE=dev
ENV SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE}

WORKDIR /app
COPY . .

CMD ["java", "-jar", "app.jar"]

 

๐Ÿ” ์ด ์ฝ”๋“œ์˜ ์—ญํ• 

์ด Dockerfile์€ Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ์šฉ๋„๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค.

  • ARG ENVIRONMENT=development: ๋นŒ๋“œ ์‹œ์ ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ development๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ
  • ENV ENVIRONMENT=${ENVIRONMENT}: ARG๋กœ ๋ฐ›์€ ๊ฐ’์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•ด ๋Ÿฐํƒ€์ž„์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
  • WORKDIR /app: ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ /app์œผ๋กœ ์„ค์ •
  • COPY . .: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ์˜ /app ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌ
  • CMD ["python", "app.py"]: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋  ๋•Œ python app.py๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์„ค์ •

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ --build-arg ENVIRONMENT=production ๊ฐ™์€ ์˜ต์…˜์ด๋‚˜ ์‚ฌ๋‚ดํˆด์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ development๋กœ ์„ค์ •ํ•ด ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋‹ค๋ฅธ ์„ค์ • ์—†์ด๋„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋„๋ก ํ–ˆ๋‹ค.

์ด ๋ฐฉ์‹์€ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ์—ˆ๋‹ค.

๊ธฐ์กด ๋ฐฉ์‹์˜ ์žฅ์ 

  • ๋นŒ๋“œ ์‹œ์ ์— ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Dockerfile ๋‚ด์—์„œ ์ง์ ‘ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๊ตฌ์กฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ํŽธ์ด๋‹ค.
  • ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€ ๋‚ด๋ถ€์—์„œ ํ™˜๊ฒฝ์„ ์ •์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ค์ • ์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด ๋ฐฉ์‹์˜ ๋‹จ์ 

  • ์ด๋ฏธ์ง€๋ฅผ ํ™˜๊ฒฝ๋ณ„๋กœ ๋”ฐ๋กœ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค. ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.
  • Dockerfile์„ ์ˆ˜์ •ํ•ด์•ผ ํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ENVIRONMENT ๊ฐ’์„ ๋ฐ”๊พธ๋ ค๋ฉด Dockerfile์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๋นŒ๋“œ ์‹œ๋งˆ๋‹ค --build-arg ์˜ต์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์ค˜์•ผ ํ•œ๋‹ค.
  • Kubernetes ํ™˜๊ฒฝ๊ณผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งž์ง€ ์•Š๋Š”๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ConfigMap์ด๋‚˜ Secret์„ ์‚ฌ์šฉํ•ด ํ™˜๊ฒฝ์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ๋ฐ, ์ด ๋ฐฉ์‹์€ Docker ๋นŒ๋“œ ๊ณผ์ •์—์„œ ์ด๋ฏธ ํ™˜๊ฒฝ์ด ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

Dockerfile์„ ํ™œ์šฉํ•œ ๋ฐฉ์‹๋„ ์ถฉ๋ถ„ํžˆ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, Kubernetes ํ™˜๊ฒฝ์—์„œ ์šด์˜ํ•˜๊ธฐ์—๋Š” ์ œ์•ฝ์ด ๋งŽ์•˜๋‹ค. ํŠนํžˆ ๋ฐฐํฌ ํ™˜๊ฒฝ๋งˆ๋‹ค ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋นŒ๋“œํ•ด์•ผ ํ•˜๋Š” ์ ์ด ๋น„ํšจ์œจ์ ์œผ๋กœ ๋Š๊ปด์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.


Helm values.yaml์„ ํ™œ์šฉํ•œ ํ™˜๊ฒฝ ์„ค์ •

๊ธฐ์กด ๋ฐฉ์‹์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Dockerfile์—์„œ ํ™˜๊ฒฝ์„ ์ง์ ‘ ์„ค์ •ํ•˜๋Š” ๋Œ€์‹ , Helm์˜ values.yaml์„ ํ™œ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

Helm์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ค์ •์„ ๋ฐฐํฌ ์‹œ์ ์— ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ Docker ์ด๋ฏธ์ง€๋Š” ํ•˜๋‚˜๋งŒ ๋นŒ๋“œํ•˜๊ณ , ํ™˜๊ฒฝ์— ๋งž๋Š” ์„ค์ •๊ฐ’์„ values.yaml์„ ํ†ตํ•ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ฐฉ์‹์˜ ์„ค์ • ์˜ˆ์‹œ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ (values-dev.yaml)

env:
  SPRING_PROFILES_ACTIVE: dev

์šด์˜ ํ™˜๊ฒฝ (values-prod.yaml)

env:
  SPRING_PROFILES_ACTIVE: production

Helm์˜ deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-backend
spec:
  template:
    spec:
      containers:
        - name: backend
          image: my-backend-image
          env:
            - name: SPRING_PROFILES_ACTIVE
              value: {{ .Values.env.SPRING_PROFILES_ACTIVE }}

์ด์ œ ๋ฐฐํฌํ•  ๋•Œ helm install ๋ช…๋ น์–ด์—์„œ values.yaml์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ํ™˜๊ฒฝ์„ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

# ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐฐํฌ
helm install my-backend ./helm-chart -f values-dev.yaml

# ์šด์˜ ํ™˜๊ฒฝ ๋ฐฐํฌ
helm install my-backend ./helm-chart -f values-prod.yaml

์ด ๋ฐฉ์‹์—์„œ๋Š” Docker ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜๋งŒ ๋นŒ๋“œํ•˜๋ฉด ๋˜๊ณ , ๋ฐฐํฌ ์‹œ์ ์—์„œ values.yaml์„ ํ†ตํ•ด ํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” Kubernetes ํ™˜๊ฒฝ์— ํ›จ์”ฌ ์ ํ•ฉํ•œ ๊ตฌ์กฐ๋‹ค.

์ƒˆ๋กœ์šด ๋ฐฉ์‹์˜ ์žฅ์ 

  • Docker ์ด๋ฏธ์ง€๋ฅผ ํ•œ ๋ฒˆ๋งŒ ๋นŒ๋“œํ•˜๋ฉด ๋œ๋‹ค. ์šด์˜ ํ™˜๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ๋™์ผํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ Helm values.yaml์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ™˜๊ฒฝ๋ณ„๋กœ values.yaml์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•˜๋ฉด ์„ค์ •์ด ํ›จ์”ฌ ๊น”๋”ํ•ด์ง„๋‹ค.
  • Kubernetes ๋„ค์ดํ‹ฐ๋ธŒํ•œ ๋ฐฉ์‹์ด๋‹ค. Kubernetes์—์„œ๋Š” ConfigMap์ด๋‚˜ Secret์„ ํ™œ์šฉํ•ด ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ๋ฐ, ์ด ๋ฐฉ์‹์ด ์ด์— ์ ํ•ฉํ•˜๋‹ค.
  • ๋ฐฐํฌ ์‹œ์ ์—์„œ ํ™˜๊ฒฝ์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด ๋ฐฉ์‹์—์„œ๋Š” Dockerfile์—์„œ ๋นŒ๋“œ ์‹œ ํ™˜๊ฒฝ์„ ์ •ํ•ด์•ผ ํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” ๋ฐฐํฌํ•  ๋•Œ ์„ ํƒ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

์ƒˆ๋กœ์šด ๋ฐฉ์‹์˜ ๋‹จ์ 

  • Helm์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ docker run ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ, ํ™˜๊ฒฝ ์„ค์ •์„ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.
  • ํ™˜๊ฒฝ์ด Helm์— ์ข…์†๋œ๋‹ค. Kubernetes๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ์„ค์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‚ด๊ฐ€ ์„ ํƒํ•œ ๊ฒฐ๋ก : Helm values.yaml์ด ๋” ํšจ์œจ์ ์ด์—ˆ๋‹ค

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Dockerfile์—์„œ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ Helm์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹œ๋„๋ฅผ ํ•ด ๋ณธ ๊ฒฐ๊ณผ, Helm values.yaml์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์œ ์—ฐํ•˜๊ณ , ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์ ์—์„œ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

 

์ด ๋ฐฉ์‹์„ ์ ์šฉํ•œ ํ›„ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ณผ์ •์ด ๋‹จ์ˆœํ•ด์กŒ๊ณ , ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฌ์›Œ์กŒ๋‹ค. ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ํ™˜๊ฒฝ๋ณ„ ์„ค์ •์„ ์œ ์—ฐํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ๋„ ์žฅ์ ์ด ๋งŽ์•˜๋‹ค. ๋˜ํ•œ, ์‚ฌ๋‚ด ๋ฐฐํฌ ํˆด์—์„œ Docker์— ์ง์ ‘ ๊ฐ’์„ ๋„ฃ์–ด์•ผ ํ–ˆ๋˜ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์‚ฌ๋ผ์ง€๊ณ , Helm์—์„œ ์ฝ”๋“œ๋กœ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์–ด ์‹ค์ˆ˜ ์—†์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

๋ฌผ๋ก  ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๋ฌด์กฐ๊ฑด Helm์ด ์ •๋‹ต์€ ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๊ฒฝํ—˜ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด ๋ฐฉ์‹์ด ๋” ์ ํ•ฉํ–ˆ๊ณ , ๋” ํšจ์œจ์ ์ด์—ˆ๋‹ค. Kubernetes๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด, Dockerfile์—์„œ ARG์™€ ENV๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค Helm values.yaml์„ ํ†ตํ•ด ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ ํƒ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.