Helm: ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ : ์ด๋ฆ„์ด ""์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 09์›” 13์ผ  ยท  110์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: helm/helm

์žฌํ˜„

๊ฐ„๋‹จํ•œ Chart.yaml์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

name: upgrade-repro
version: 0.1.0

templates/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹จ์ผ K8S ๋ฆฌ์†Œ์Šค๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ :

kind: ConfigMap
apiVersion: v1
metadata:
  name: cm1
data:
  example.property.1: hello

์ฐจํŠธ ์„ค์น˜ :

helm install .
exasperated-op
Last Deployed: Tue Sep 13 12:43:23 2016
Namespace: default
Status: DEPLOYED

Resources:
==> v1/ConfigMap
NAME      DATA      AGE
cm1       1         0s

๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

helm status exasperated-op
Last Deployed: Tue Sep 13 12:43:23 2016
Namespace: default
Status: DEPLOYED

Resources:
==> v1/ConfigMap
NAME      DATA      AGE
cm1       1         1m

์ด์ œ templates/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‘ ๋ฒˆ์งธ K8S ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

kind: ConfigMap
apiVersion: v1
metadata:
  name: cm2
data:
  example.property.2: hello

์ฐจํŠธ ์—…๊ทธ๋ ˆ์ด๋“œ :

helm upgrade exasperated-op .
Error: UPGRADE FAILED: Looks like there are no changes for cm1

์ด์ƒ ํ•˜๋„ค. Chart.yaml์—์„œ ๋ฒ„์ „์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

name: upgrade-repro
version: 0.2.0

๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

helm upgrade exasperated-op .
Error: UPGRADE FAILED: No resource with the name cm2 found.

์˜ˆ์ƒ

helm upgrade ๋Š” cm2 ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋Œ€์‹  ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋ช…ํ™•ํ•˜๊ฒŒ : helm _is_ cm2 ConfigMap์„ ์ƒ์„ฑํ•˜์ง€๋งŒ helm์€ ์ƒ๊ด€์—†์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๊ณ„ ์ˆ˜ํ–‰ ํ›„ ํ˜„์žฌ ์ƒํƒœ

helm status exasperated-op
Last Deployed: Tue Sep 13 12:43:23 2016
Namespace: default
Status: DEPLOYED

Resources:
==> v1/ConfigMap
NAME      DATA      AGE
cm1       1         6m

kubectl get configmap --namespace default
NAME           DATA      AGE
cm1            1         6m
cm2            1         4m

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๋‚ด๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค (์ง€๊ธˆ๊นŒ์ง€๋Š” ์•„๋ฌด๋Ÿฐ ์‚ฌ๊ณ ์—†์ด ๋งค๋ฒˆ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์–ด์จŒ๋“  ์กฐ์‹ฌํ•˜์‹ญ์‹œ์˜ค).

  1. helm list ํ•˜๊ณ  ์˜ํ–ฅ์„๋ฐ›๋Š” ์ฐจํŠธ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

    NAME        REVISION UPDATED                  STATUS  CHART              NAMESPACE
    fetlife-web 381      Thu Mar 15 19:46:00 2018 FAILED  fetlife-web-0.1.0  default
    
  2. ๊ฑฐ๊ธฐ์—์„œ DEPLOYED ์ƒํƒœ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
    kubectl -n kube-system edit cm fetlife-web.v381 kubectl -n kube-system edit cm fetlife-web.v380 kubectl -n kube-system edit cm fetlife-web.v379 kubectl -n kube-system edit cm fetlife-web.v378
  3. ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋œ ๊ฐœ์ •ํŒ์„ ์ฐพ์œผ๋ฉด ์ƒํƒœ๋ฅผ DEPLOYED ์—์„œ SUPERSEDED ํ•˜๊ณ  ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. helm upgrade ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ์„ฑ๊ณตํ•˜๋ฉด ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค!
  5. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—…๊ทธ๋ ˆ์ด๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ :
    Error: UPGRADE FAILED: "fetlife-web" has no deployed releases
    ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์˜ ์ƒํƒœ๋ฅผ FAILED ์—์„œ DEPLOYED
    kubectl -n kube-system edit cm fetlife-web.v381
  6. helm upgrade ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์‹œ ์‹คํŒจํ•˜๋ฉด ํ…Œ์ด๋ธ”์„ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค ...

๋ชจ๋“  110 ๋Œ“๊ธ€

๋ฒˆ๋“ค ์ข…์†์„ฑ์ด์žˆ๋Š” ์ฐจํŠธ๊ฐ€์žˆ๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  helm upgrade ํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ์„ค๋ช… ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ helm์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์ด ์„ค์น˜๋œ ๊ฒฝ์šฐ : helm install -n my-release

my-thing/
  Chart.yml
  charts/
    depended-upon-thing/

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒˆ ์ฐจํŠธ๊ฐ€ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

my-thing/
  Chart.yml
  charts/
    depended-upon-thing/
    new-dependency/

๋ฆด๋ฆฌ์Šค๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๋ฉด helm upgrade my-release my-thing helm์ด ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Error: UPGRADE FAILED: No resource with the name new-dependency found.

@devth ๋งˆ์Šคํ„ฐ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ์‹คํ–‰์ค‘์ธ ์กฐํƒ€๊ธฐ / ๊ฒฝ์šด๊ธฐ์˜ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฐ์‚ฌ!

@elementalvoid ๋˜ํ•œ ๋งˆ์Šคํ„ฐ์—์„œ ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ์‹คํ–‰์ค‘์ธ ์กฐํƒ€๊ธฐ / ๊ฒฝ์šด๊ธฐ์˜ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋‹น์‹œ ๋‚˜๋Š” ์•ŒํŒŒ 4์—์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•ŒํŒŒ 5์™€ @devth ์˜ ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋„ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ข‹๊ตฌ๋‚˜. ์ง€๊ธˆ์€ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋˜๋ฉด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜์‹ญ์‹œ์˜ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@michelleN ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฒˆ ์ฃผ์— ๋งˆ์Šคํ„ฐ ์žฌํ˜„์„ ์‹œ๋„ ํ•  ์‹œ๊ฐ„์ด ์—†์–ด์„œ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ณง ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค!

hostPath ๋ฐฐํฌ / ๋ณผ๋ฅจ ์‚ฌ์–‘์„ PVC๋กœ ์ด๋™ํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
๋ฒ„๊ทธ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์˜์กดํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ด์ „ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ "๋ˆ„๋ฝ"?).
๋ฒ„์ „ : 2.7.2

์ด์ƒํ•˜๊ฒŒ๋„ ๋ฒ„์ „ 2.7.2์—์„œ ์ƒˆ ์—ญํ• ๋กœ ์ฐจํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๋™์ผํ•œ ๋™์ž‘์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Tiller๋Š” ์‹ค์ œ๋กœ ์—ญํ• ์„ ์ƒ์„ฑ ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ญํ• ์„ ์ฐพ์„ ์ˆ˜์—†๊ณ  ๋ฐฐํฌ์— ์‹คํŒจํ•œ๋‹ค๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ƒํ™ฉ์€ ์ƒˆ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๊ณ  ์ƒˆ ๋ฆฌ์†Œ์Šค์™€ ํ•จ๊ป˜ ์ƒˆ ๋ฒ„์ „์˜ helm ์ฐจํŠธ๋ฅผ ๋ฐฐํฌ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋ฐฐํฌ๋Š” ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋Š” kubernetes์—์„œ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. yaml์„ ์ˆ˜์ •ํ•˜๊ณ  ์ฐจํŠธ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. kubernetes๋กœ ์ด๋™ํ•˜์—ฌ ์‹คํŒจํ•œ ๋ฐฐํฌ๋กœ ์ƒ์„ฑ ๋œ ์ƒˆ ๋ฆฌ์†Œ์Šค (๋‚ด ๊ฒฝ์šฐ์—๋Š” ์—ญํ•  ๋ฐ ์—ญํ•  ๋ฐ”์ธ๋”ฉ)๋ฅผ ์ œ๊ฑฐํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ ํ˜„์žฌ ๊ฐœ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ์œ„ํ•œ helm ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•˜๊ณ  (https://github.com/kubernetes/helm/blob/7432bdd716c4bc34ad95a85a761c7cee50a74ca3/pkg/kube/client.go#L257) ์‹คํŒจํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ. ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ์ฐจํŠธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๊ณณ์€ ์–ด๋””์ž…๋‹ˆ๊นŒ?

์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

$ helm upgrade --install bunny ./app --namespace=staging --reuse-values --debug
[debug] Created tunnel using local port: '53859'

[debug] SERVER: "127.0.0.1:53859"

Error: UPGRADE FAILED: no ConfigMap with the name "bunny-proxy-config" found

Configmap์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

$ k get configmap
NAME                 DATA      AGE
bunny-proxy-config   1         7m

๋‚ด configmap :

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ template "proxy.fullname" . }}-config
  labels:
    app: {{ template "proxy.name" . }}
    chart: {{ template "proxy.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
data:
  asd: qwe

์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œ ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ helm del --purge bunny

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ : & version.Version {SemVer : "v2.8.0", GitCommit : "14af25f1de6832228539259b821949d20069a222", GitTreeState : "clean"}
์„œ๋ฒ„ : & version.Version {SemVer : "v2.8.0", GitCommit : "14af25f1de6832228539259b821949d20069a222", GitTreeState : "clean"}

์ด๊ฒƒ์€ helm ์‚ฌ์šฉ์‹œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋ฉฐ ์ „์ฒด --purge ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค.

CI / CD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ๋กค๋ง ์—…๋ฐ์ดํŠธ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ? ์•„์ง ์ž‘๋™์ค‘์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋ฐฐํฌ ๋ฌธ์ œ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋น„๋ฐ€ / cm์ด ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ Helm์ด ์ถ”์ ์„ ์žƒ๊ณ  ๋งŽ์€ ์ž‘์—…์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

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

๊ธฐ์กด helm ๋ฐฐํฌ์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ๋„์ด ๋ฌธ์ œ (์„œ๋ฒ„ v2.8.2)๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐํฌํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ๋•์…˜์—์„œ ํฐ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ฐจํŠธ์— configmap์„ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ์ฐจํŠธ๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ : ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ : ์ด๋ฆ„์ด "์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค."๋ฐœ๊ฒฌ

์ฐธ๊ณ  : 2.7.2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

helm์ด ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ๊ฒฐ์ •ํ•  ๋•Œ ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ ์ƒˆ configmap ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๊ณ  ์ฐพ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ฝ”๋“œ๋Š” https://github.com/kubernetes/helm/blob/master/pkg/kube/client.go#L276 -L280์„ ์ฐธ์กฐ

์‹คํŒจํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ํ‹ธ๋Ÿฌ ๋กœ๊ทธ :

[tiller] 2018/05/03 19:09:14 preparing update for staging-collector
[storage] 2018/05/03 19:09:14 getting deployed release from "staging-collector" history
[tiller] 2018/05/03 19:10:39 getting history for release staging-collector
[storage] 2018/05/03 19:10:39 getting release history for "staging-collector"
[tiller] 2018/05/03 19:10:41 preparing update for staging-collector
[storage] 2018/05/03 19:10:41 getting deployed release from "staging-collector" history
[storage] 2018/05/03 19:10:42 getting last revision of "staging-collector"
[storage] 2018/05/03 19:10:42 getting release history for "staging-collector"
[tiller] 2018/05/03 19:10:44 rendering collector chart using values
[tiller] 2018/05/03 19:10:44 creating updated release for staging-collector
[storage] 2018/05/03 19:10:44 creating release "staging-collector.v858"
[tiller] 2018/05/03 19:10:44 performing update for staging-collector
[tiller] 2018/05/03 19:10:44 executing 0 pre-upgrade hooks for staging-collector
[tiller] 2018/05/03 19:10:44 hooks complete for pre-upgrade staging-collector
[kube] 2018/05/03 19:10:44 building resources from updated manifest
[kube] 2018/05/03 19:10:44 checking 3 resources for changes
[tiller] 2018/05/03 19:10:44 warning: Upgrade "staging-collector" failed: no resource with the name "collector-config" found 
[storage] 2018/05/03 19:10:44 updating release "staging-collector.v857"
[storage] 2018/05/03 19:10:44 updating release "staging-collector.v858" 

์ด ๋ฌธ์ œ๋Š” ๋ฐฐํฌ ๋œ ์„œ๋น„์Šค์˜ name ๋ ˆ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค์—์„œ ์„œ๋น„์Šค ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ๋‹ค์Œ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ : ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ : ์ด๋ฆ„์ด "new-service-name"์ธ ์„œ๋น„์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋™์ž‘์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ๋งŒ๋“ค๋ ค๊ณ ํ•˜์ง€๋งŒ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ์˜๋„ ๋˜๋Š” ์ œ์•ˆ ๋œ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. --force๊ฐ€ ์šฐ์„ ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” CLI ํ”Œ๋ž˜๊ทธ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

์ค‘์š”์„ฑ์— ๋™์˜ํ•˜์‹ญ์‹œ์˜ค.

์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํžˆ ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ์ด์ƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ์‹คํŒจ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Helm์€ ๋ฐฐํฌ ์‹คํŒจ ํ›„ ์ •๋ฆฌ๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์œ„์—์„œ ์ถ”๊ฐ€ ํ•œ ์ƒˆ ConfigMap๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ์ƒ์„ฑ๋˜์ง€๋งŒ '์ด์ „'๋ฐฐํฌ์—๋Š” ์ฐธ์กฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ ๋ฐฐํฌ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ helm์€ k8s์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๊ณ  ์ตœ์‹  ๋ฐฐํฌ ๋œ ๊ฐœ์ •ํŒ (๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ)์—์„œ ์ฐธ์กฐ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ณ€ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค์— ์—†์œผ๋ฏ€๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉฐ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ๋ฐฐํฌ ์‹คํŒจ๋กœ ์ธํ•ด k8s๋ฅผ ์ƒํƒœ์— ๋†“์œผ๋ฉด helm์ด ์ œ๋Œ€๋กœ ์ถ”์ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฐจํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์ฃผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Œ์„ ์•Œ์•˜์„ ๋•Œ k8s์—์„œ ConfigMap์„ ์‚ญ์ œํ•˜๊ณ  ๋ฐฐํฌ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

@krishicks ์˜ˆ, ์ด๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ๋ฐฐํฌ + ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค (์˜ˆ : ์ž˜๋ชป๋œ configmap)๋„์ด ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๋ณต๊ตฌ ํ•  ์ˆ˜์—†๋Š” ์ƒํƒœ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ๋„ ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @krishicks ์™€ @jaredallard๊ฐ€ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

  1. ๋ฐฐํฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
    UPGRADE FAILED: the server was unable to return a response in the time allotted, but may still be processing the request (get configmaps)
  2. ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ํ›„์† ๋ณ€๊ฒฝ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
    Error: UPGRADE FAILED: no Service with the name "โ€ฆ" found

์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด helm upgrade --timeout โ€ฆ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ฐฐํฌ ์‹คํŒจ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์ƒ๋‹นํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ helm rollback โ€ฆ ํ•ด๋„์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์œผ๋กœ helm upgrade โ€ฆ ์šฐ๋ฆฌ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ž๋™์œผ๋กœ ์‹คํ–‰, --auto-rollback ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ helm upgrade ์‹คํŒจํ•œ ๋ณ€๊ฒฝ์„ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค์žˆ๋Š”, ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Š” ์ฐจํŠธ์— ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ v2.7.2์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ์–ธ์ œ ๋‚˜์˜ฌ์ง€์— ๋Œ€ํ•œ ๊ฒฌ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ # 4146์œผ๋กœ ์ˆ˜์ •๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์•„๋ž˜ ์ฐธ์กฐ

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ PR์ด๋˜๋Š” # 4146์˜ ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ, # 4146 ๋ฐ # 4223 ์‚ฌ์ด์˜ ๊ฒฐ๊ณผ๋ฅผ ์—ฌ๊ธฐ์—๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/kubernetes/helm/pull/4223#issuecomment -397413568

@adamreese ์™€ ์ €๋Š”์ด ํŠน์ • ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ทผ๋ณธ์ ์ธ ๋ฒ„๊ทธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ œ์•ˆ ๋œ ๊ฐ PR์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๊ฐ€์žฅ์ž๋ฆฌ ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚ด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋ก€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์•„, ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•˜์ง€ ๋ชปํ•œ ์  : ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ผ๊ด€์„ฑ์ด์—†๋Š” ์ƒํƒœ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ "์ฐพ์„ ์ˆ˜ ์—†์Œ"์œผ๋กœ๋ณด๊ณ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/kubernetes/helm/pull/4223#issuecomment -397413568์—์„œ ์‹œ์—ฐ ํ•œ ์˜ˆ๋ฅผ ๋”ฐ๋ผ :

><> helm fetch --untar https://github.com/kubernetes/helm/files/2103643/foo-0.1.0.tar.gz
><> helm install ./foo/
...
><> vim foo/templates/service.yaml
><> kubectl create -f foo/templates/service.yaml
service "foo-bar" created
><> helm upgrade $(helm last) ./foo/
Error: UPGRADE FAILED: no Service with the name "foo-bar" found
><> kubectl delete svc foo-bar
service "foo-bar" deleted
><> helm upgrade $(helm last) ./foo/
Release "riotous-echidna" has been upgraded. Happy Helming!
...
><> kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
foo-bar      ClusterIP   10.104.143.52   <none>        80/TCP    3s
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   1h

@bacongobbler ํ•ญ์ƒ ์ž‘๋™ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์‚ญ์ œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๊ณ  ๊ทธ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž… ๋ฐ ์‚ญ์ œํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bacongobbler ์ด ๋ฆฌ์†Œ์Šค๋Š” ํ”„๋กœ๋•์…˜ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์˜ ์„œ๋น„์Šค ๋˜๋Š” ๋ฐฐํฌ ๊ฐœ์ฒด ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ์„œ๋น„์Šค ๋ณด์žฅ์ด ํฌ๊ฒŒ ์ค‘๋‹จ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์•Œ์•„์š”. ๋‚˜๋Š” ๋‹จ์ง€ ๋ฒ„๊ทธ์˜ ๋™์ž‘์„ ์„ค๋ช…ํ•˜๊ณ  ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ฌด์—‡์ด ๊ด€๋ จ๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๋‘ ๋ฒˆ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. configmaps์™€ ํ•จ๊ป˜ ๋งค๋ฒˆ. ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ „์ฒด ๋ฆด๋ฆฌ์Šค๋ฅผ ์ œ๊ฑฐํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Configmaps๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ServiceAccount์— ํ•˜๋‚˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ PVC. :)

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ง€์ •๋œ ๊ฐ์ฒด๋Š”์ด ๋ฒ„๊ทธ์˜ ์˜ํ–ฅ์„๋ฐ›์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ์ง€์ •๋œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋ฏธ ์ด๊ฒƒ์— ๋Œ€ํ•œ PR์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์—‡์„ ๋„์™€ ๋“œ๋ฆด๊นŒ์š”?

๋‚˜๋Š”์ด ๋ฌธ์ œ์— ๋น ์ ธ ๋“ค๊ธฐ ์‰ฌ์šด ์ƒํ™ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ ์ด์ƒ ๋ฌผ๋ ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ ๋น ์ ธ ๋‚˜์˜ฌ ์ˆ˜์žˆ๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์—†๋‹ค. ์ œ ๊ฒฝ์šฐ์— "์ข‹์€"๋ถ€๋ถ„์€ ๋ฆด๋ฆฌ์Šค์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด๋„ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (๊ทธ๊ฒŒ ์ €๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒํ•˜๊ฑฐ๋‚˜ ๊ฑฑ์ •ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ).

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

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

@Draiken ์•„๋‹ˆ, ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ํ•ด๊ฒฐ์ฑ…์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ทธ๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

a) ์˜๋„ ํ•œ๋Œ€๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜
b) ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ ์†Œ๊ฐœ

์—ฌ๊ธฐ ์— ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜๊ณผ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ผ์Šต๋‹ˆ๋‹ค. ๋Œ€์ฒด ์†”๋ฃจ์…˜์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ง์ „์— helm rollback ... ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฐจํŠธ๊ฐ€ helm install -n new-test-release . ๋กœ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์ด์ „ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด helm upgrade ... ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์„ฑ๊ฐ€์‹  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ…Œ์ŠคํŠธ ๋ฐ ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‘์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

helm ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์„œ๋น„์Šค์™€ poddisruptionbudget์ด ํฌํ•จ ๋œ ๊ธฐ์กด ๋ฐฐํฌ 1 ๊ฐœ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ž์ฒด ์„œ๋น„์Šค์™€ poddisruptionbudget์ด์žˆ๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐฐํฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ฐจํŠธ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.

helm์„ ์‹คํ–‰ํ•  ๋•Œ ์ฒ˜์Œ์œผ๋กœ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

KUBECONFIG=**** helm upgrade --kube-context=mycluster -f helm/project/mycluster.yaml project ./helm/project --install --wait --timeout 1200

Error: UPGRADE FAILED: Deployment.apps "blah-blah" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"app":"blah-blah", "chart":"blah-3", "name":"blah", "release":"project"}: `selector` does not match template `labels`

helm์„ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ์ด ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

KUBECONFIG=**** helm upgrade --kube-context=mycluster -f helm/project/mycluster.yaml project ./helm/project --install --wait --timeout 1200

Error: UPGRADE FAILED: no Service with the name "blah-blah" found

๋ฌผ๋ก  ํ‚ค ์ฐจํŠธ๋Š” ๋‚ด๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ณ  ์žฌ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ ํ…Œ์ŠคํŠธ์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ์ฐŒ๋ฅด๋Š” ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

@veqryn ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งŽ์ด

ํŽธ์ง‘ : ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ณต๊ฐœ ๋„์ปค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ‘ธ์‹œํ•˜๊ณ  ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋น ๋ฅธ ์Šค ๋‹ˆํŽซ์„ ํฌํ•จ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@jaredallard ์šฐ๋ฆฌ๋Š” ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

๊ด€๋ฆฌ์ž๊ฐ€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

@jaredallard ์ž์ฒด์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํŒจ์น˜๋ฅผ ๊ถŒ์žฅ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (์ฐธ์กฐ : https://github.com/helm/helm/pull/4223#issuecomment-397413568). ์˜ค๋ฅ˜๋ฅผ ์šฐํšŒํ•˜์ง€๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํŒจ์น˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›๋ž˜ ์˜๋„ ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์›๋ž˜ ๋ฌธ์ œ์ธ ๋ฆฌ์†Œ์Šค ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ # 4146์˜ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ๋ฉ”์ธ ๋ผ์ธ์œผ๋กœ ๋‹ค์‹œ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

๋‚ด๊ฐ€์ด ๊ถŒ๋ฆฌ๋ฅผ ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด, ๋‹น์‹ ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค ๊ณ  ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

a) ์˜ค๋ฅ˜ ์šฐํšŒ
b) ์›๋ž˜ ์˜๋„ ํ•œ๋Œ€๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2 helm upgrade s : ํ•˜๋‚˜๋Š” ํŒจ์น˜๊ฐ€ ์žˆ๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š”์—†๋Š”? ๊ทธ๋Ÿฌ๋ฉด ๊ทผ๋ณธ ์›์ธ์„ ๋” ์ž˜ ์‹๋ณ„ํ•˜๊ณ ์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bacongobbler ๋‚˜๋Š” ์ด๊ฒƒ์ด ํ–‰๋™์ธ์ง€ 100 % ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋Œ“๊ธ€์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค๋ฅธ ๊ธ€์„ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž๊ฐ€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋Š” ๊ทธ๋Š˜์„ ๋˜์ง€๋ ค๊ณ ํ•˜์ง€ ์•Š๋Š”๋‹ค! ์ง€๊ธˆ ๋’ค๋Œ์•„ ๋ณด๋ฉด ์กฐ๊ธˆ ์—‰๋šฑํ•œ ๋ง์ด๋„ค์š” ๋ฏธ์•ˆ ํ•ด์š”

๋‚˜๋Š” ์™œ ๋‚ด ์กฐํƒ€๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์‹คํŒจํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•„์ง๋„ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•œ๋‹ค.
๋‘ ๋ฒˆ์งธ๋กœ ์ ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ๊นŒ์ง€ no X with the name Y ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@veqryn ์œ„์—์„œ ๋งํฌ ํ•œ ๋ฌธ์ œ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ์ฒ˜์Œ์— ์–ด๋–ป๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š”์ง€์— ๋Œ€ํ•ด ์ผ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€์„ ์ฝ์–ด์ฃผ์„ธ์š”. ๋ถˆ๋ถ„๋ช… ํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋„๋ก ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์œผ๋ฅธ ์‚ฌ์šฉ์ž : https://github.com/helm/helm/pull/4223#issuecomment -397413568

๋‚˜๋Š” ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ์ฝ์—ˆ์œผ๋ฉฐ ์„œ๋น„์Šค ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ค ์‹œ์ ์—์„œ๋„ ๋‚ด ์„œ๋น„์Šค ๋‚˜ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋‹ค์‹œ ์ฝ๊ณ  ์Šน๋ฌด์›๊ณผ ์ด์•ผ๊ธฐ ํ•œ ํ›„ ์˜ค๋ฅ˜์˜ ์›์ธ์„ ํŒŒ์•…ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‚ด helm Chart์˜ ๋ฒ„์ „์„ ๋ถ€๋”ช์ณค๋‹ค.
์ด ์ฐจํŠธ ๋ฒ„์ „์€ ๋‚ด ๋ฐฐํฌ ๋ฐ ์„œ๋น„์Šค์—์„œ ๋ ˆ์ด๋ธ”๋กœ ์ฐธ์กฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Kube / helm์€ ๋ ˆ์ด๋ธ”์ด ๋ณ€๊ฒฝ ๋  ๋•Œ ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด๊ฒƒ์ด ์›๋ž˜ ์˜ค๋ฅ˜์˜ ์›์ธ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ํ•ด๊ฒฐ์ฑ…์€ helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ฑ๊ณตํ•œ ๋ฐฐํฌ๋กœ ๋˜ ๋Œ๋ฆฐ ๋‹ค์Œ ์ฐจํŠธ ๋ฒ„์ „ ๋ณ€๊ฒฝ์„ ๋˜๋Œ๋ ค ์ฐจํŠธ ๋ฒ„์ „์ด ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์–ด ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด (์ถ”์•…ํ•œ) ์ˆ˜์ •์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
helm upgrade az-test-2-prom ./prometheus --namespace monitor --set cluster_name="az-test-2" -f values.yaml
Error: UPGRADE FAILED: no ConfigMap with the name "az-test-2-prom-prometheus-grafana-config" found

1. ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋œ ์ˆ˜์ •๋ณธ ์ฐพ๊ธฐ

export TEMPLATE='{{range .items}}{{.metadata.name}}{{"\t"}}{{.metadata.labels.STATUS}}{{"\n"}}{{end}}'
kubectl -nkube-system get cm -l 'OWNER=TILLER' -ogo-template="$TEMPLATE"
az-test-2-prom.v1   SUPERSEDED
az-test-2-prom.v10  SUPERSEDED
az-test-2-prom.v11  SUPERSEDED
az-test-2-prom.v12  SUPERSEDED
az-test-2-prom.v13  SUPERSEDED
az-test-2-prom.v14  SUPERSEDED
az-test-2-prom.v15  SUPERSEDED
az-test-2-prom.v16  SUPERSEDED
az-test-2-prom.v17  DEPLOYED
az-test-2-prom.v18  FAILED
az-test-2-prom.v19  FAILED
az-test-2-prom.v2   SUPERSEDED
az-test-2-prom.v20  FAILED
az-test-2-prom.v21  FAILED
az-test-2-prom.v22  FAILED
az-test-2-prom.v23  FAILED
az-test-2-prom.v24  FAILED
az-test-2-prom.v25  FAILED
az-test-2-prom.v26  FAILED
az-test-2-prom.v27  FAILED
az-test-2-prom.v28  FAILED
az-test-2-prom.v29  FAILED
az-test-2-prom.v3   SUPERSEDED
az-test-2-prom.v30  FAILED
az-test-2-prom.v4   SUPERSEDED
az-test-2-prom.v5   FAILED
az-test-2-prom.v6   SUPERSEDED
az-test-2-prom.v7   SUPERSEDED
az-test-2-prom.v8   SUPERSEDED
az-test-2-prom.v9   FAILED



md5-b918cb6c3ed3b232fefddaf5da41f0e1



for ii in {17..30}
> do
>   kubectl -nkube-system delete cm az-test-2-prom.v${ii}
> done



md5-be6e03beb82adf195ed45c22b159a8de



kubectl -nkube-system patch cm az-test-2-prom.v16 -p '{"metadata": {"labels": {"STATUS": "DEPLOYED"}}}'

** 4. (์ค‘์š”) ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ (v16) ์ดํ›„์— ์ถ”๊ฐ€ ๋œ ๊ธฐ์กด ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ชจ๋‘ ์ฐพ์•„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค (์˜ˆ :
kubectl -nmonitor delete cm az-test-2-prom-prometheus-grafana-config
kubectl -nmonitor delect svc ...

helm upgrade ... ํ•˜๊ณ  Happy Helming๋ณด๊ธฐ

@ kosta709๊ฐ€ ๋งํ–ˆ๋“ฏ์ด, ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๋กœ

Helm์€ ๋ช…๋ น ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ์ •์ ์ด์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ผ๋ถ€ ์ž๋™ ์›Œํฌ ํ”Œ๋กœ (CI / CD)์—์„œ ๋ฒ„๋ฆด ์ˆ˜์žˆ๋Š” ํ›Œ๋ฅญํ•œ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.

์ด ์ž˜ ์•Œ๋ ค์ง„ (๊ทธ๋ฆฌ๊ณ  ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹ ) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์•Œ๋ ค์ง„ ์†”๋ฃจ์…˜์ด ๊ฒฐ๊ตญ ์‹คํ–‰๋  ์ˆ˜์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ.

๊ทธ๋ž˜์„œ ์ตœ๊ทผ์—๋Š”์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์Šค์Šค๋กœ ์ž‘์—… ํ•  ์ˆ˜์žˆ์„๋งŒํผ ์ž์ฃผ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค (
https://github.com/Nopik/helm/commit/afe6451cc2c6295e71ea2213ccce654ec3f5b686) ๊ธฐ๋ณธ์ ์œผ๋กœ Tiller๊ฐ€ ์ด์ „ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค ๋Œ€์‹  ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ํ•˜๋“œ ์ฝ”๋”ฉ ๋œ ๋™์ž‘์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ‘ํ•ฉ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๊ฐ€ ๋‚˜๋ฅผ ๋ฌผ์—ˆ์„ ๋•Œ ์ ์–ด๋„ ํ•œ ๋ฒˆ์€ ์ด๋ฏธ 20 ๊ฐœ ์ด์ƒ์˜ ์„ฑ๊ณต์ ์ธ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์— ์กด์žฌํ–ˆ๋˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ๋งŽ์€ (> 40) ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋™์ž‘ ์•„๋ž˜์— ๋‘ ๊ฐœ์˜ ๋ฒ„๊ทธ๊ฐ€ ์ˆจ๊ฒจ์ ธ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 99 %์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ƒ์„ฑ ๋œ (๊ทธ๋Ÿฌ๋‚˜ helm์— ์•Œ๋ ค์ง€์ง€ ์•Š์€) ๋ฆฌ์†Œ์Šค ๋งŒ ์‚ญ์ œํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•„๋ž˜์— ์„ค๋ช…ํ•˜๊ณ ์žˆ๋‹ค. ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž๋Š” ์—ฌ๊ธฐ์—์„œ ๋‚˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋‚˜์™€ ๋™์˜ํ•˜๋ฉด ๋ฌด๊ฒŒ๋ฅผ ์ธก์ • ํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚˜๋Š”์ด ๋…ธ๋ ฅ์„ ์ด๋Œ๊ณ  PR์„ ์ œ๊ณตํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ helm์€ 'ํŒจ์น˜'๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ƒˆ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์ด ๋‹ค๋ฅธ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด helm์€ 2 ๊ฐœ ๊ฐœ์ • ์‚ฌ์ด์— ํŒจ์น˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์Šฌํ”„๊ฒŒ๋„ ์ด์ „ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค ๋ฒ„์ „, ์ƒˆ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ๋‹ค๋ฅธ ๋ฒ„์ „, ํ˜„์žฌ ์‚ด์•„์žˆ๋Š” ๋ฆฌ์†Œ์Šค์—์„œ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๊ฐ€์ ธ ์™”๊ธฐ ๋•Œ๋ฌธ์— 3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  helm์€ ๊ฐˆ๋“ฑ์ด ๋ฐœ์ƒํ•  ๋•Œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ถ„๋ช…ํžˆ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์€ ๋” ๋‚˜์€ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ (๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ฉด ๋จผ ๊ธธ์„) ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ :

  • --ignore-old-manifest=never (๊ธฐ๋ณธ๊ฐ’, ํ˜„์žฌ ๋™์ž‘)
  • --ignore-old-manifest=create-only (์ด ๊ฒฝ์šฐ์— ์ ์šฉ, ์ด์ „ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๋ฆฌ์†Œ์Šค ๊ฐœ๋…์ด ์—†์ง€๋งŒ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ,์ด๋ฅผ ์ƒˆ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํŒจ์น˜ ๋งŒ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Œ)-์ƒˆ ํ•ญ๋ชฉ์œผ๋กœ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ. ๊ทธ๋Ÿฌ๋ฉด helm์ด ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑ ๋œ ๋ฆฌ์†Œ์Šค์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ ์˜ค๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • --ignore-old-manifest=always -์™„์ „์„ฑ์„ ์œ„ํ•ด, ์•„๋งˆ๋„ ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•ญ์ƒ ํ˜„์žฌ ๋ฆฌ์†Œ์Šค์™€ ์ตœ์‹  ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์‚ฌ์ด์— ํŒจ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋ฐ˜์ „ ๋œ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ”Œ๋ž˜๊ทธ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : --use-current-resources=never(currently default)/create-only/always ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ.

๋‚˜์ค‘์—์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ์ฃผ์„์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

annotations:
  helm.io/ignore-old-manifest: always

๋ฆฌ์†Œ์Šค๋ณ„๋กœ์ด ์ „๋žต์„ ์ธ์‹ํ•˜๊ณ  ์ ์šฉ ํ•  ์ˆ˜์žˆ๋Š” ๊ด€๋ฆฌ์ž ๊ทธ๋ž˜๋„ helm devs๊ฐ€ ๊ฑฐ๊ธฐ์— ๊ฐ€๊ณ  ์‹ถ์€์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

๊ทธ๋ž˜์„œ์ด ์ œ์•ˆ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

Helm ๊ฐœ๋ฐœ์ž๊ฐ€ 3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ ํŒจ์น˜๋ฅผ ๊ณ ๋ ค์ค‘์ธ ๋ฌธ์ œ # 3805๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Google ํด๋ผ์šฐ๋“œ ๋นŒ๋“œ๋กœ CD / CI ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
Error: UPGRADE FAILED: no Deployment with the name "baobab-sidekiq" found

์žฌ๋ฏธ์žˆ๋Š” ์ ์€ ๋ฐฐํฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

kc get deployments
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
baobab           3         3         3            2           2d
baobab-ermis     1         1         1            1           23h
baobab-sidekiq   1         1         1            1           23h

์ด๊ฒƒ์ด ์ œ๊ฐ€ ๋งŒ๋“  ์ฒซ ๋ฒˆ์งธ ์ฐจํŠธ์ด๋ฉฐ helm ๊ฐ€ CI / CD ํ™˜๊ฒฝ์—์„œ ๋ณต์žกํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•˜๋Š” ๋ณต์žก์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์†”๋ฃจ์…˜์ด ๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

helm์˜ ์˜๋„๊ฐ€ CI / CD ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๊ฐ์‚ฌ

Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

helm 0.8.0์„ helm 1.0.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

helm version --tls Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

์ฐจํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Istio๋„์ด ๋ฒ„๊ทธ์— ๋ถ€๋”ช ํžˆ๊ณ  ์„ค์น˜ ๋ฌธ์„œ ๋Š” helm template ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๊นŒ?

https://github.com/helm/helm/issues/3805 ์—์„œ ์ตœ๊ทผ ํ† ๋ก ์„ ํ™•์ธ

์ด๊ฒƒ๋„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ตœ์‹  helm 2.10์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์‹ฌ๊ฐํ•˜๊ฒŒ ๊ณ ๋ คํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ์ด์ œ 2 ๋…„์ด ์ง€๋‚ฌ๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋Š” ํ”„๋กœ๋•์…˜์—์„œ helm์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌ๊ฐ€ helm์— ์˜์กด ํ•  ๋•Œ ํฐ ๊ณ ํ†ต์ž…๋‹ˆ๋‹ค.

๋งŽ์€ GitHub ์Šคํƒ€์™€ ํ•จ๊ป˜ ํฐ ์ฑ…์ž„์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

@ brendan-rius์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํฌ์ธํ„ฐ๋Š” # 3805 ๋ฐ # 4146์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

ํŠนํžˆ @ brendan-rius, # 3805์—๋Š”์ด ๋ฒ„๊ทธ๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์ตœ์‹  ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๊ทธ ์Šค๋ ˆ๋“œ์— ์ฝ๊ธฐ๋ฅผ ์ ๊ทน ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ ์ „๋žต๋ณด๋‹ค์ด ๋ฌธ์ œ์™€ ๋” ๊ด€๋ จ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ๋‚ด ์˜๊ฒฌ์„ ๋‹ค์‹œ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

Helm 2.yz์˜ ์ƒˆ ๋ฐฐํฌ์— 3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ # 1193์€ ์–ธ์ œ ์ˆ˜์ • ๋˜๋‚˜์š”? ์ด ๋ฒ„๊ทธ๋Š” Helm 2.0์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ ๊ณ„ํš์—†์ด ๊ฑฐ์˜ 2 ๋…„ ๋™์•ˆ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด, @michelleN ๊ณผ ์ €๋Š” ์ด๋ฒˆ ์ฃผ ์ดˆ์— ๋ธŒ๋ ˆ์ธ ์Šคํ† ๋ฐ์„ํ–ˆ๊ณ  ๋‘ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋‘˜ ๋‹ค ํŠนํžˆ ํ™˜์ƒ์ ์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  1. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด์ด ๋ฆด๋ฆฌ์Šค ์ค‘์— ์ƒ์„ฑ ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋กค๋ฐฑํ•˜๊ณ  ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์•Œ ์ˆ˜์—†๋Š” ์ƒํƒœ์—์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Helm์ด ๊นจ๋—ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†์–ด ์ž ์žฌ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹ค์šด ํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Š” ๋งค์šฐ ์œ„ํ—˜ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋ฉด ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ์กด ๋ฆฌ์†Œ์Šค์— ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ / ๋‹ค์‹œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Helm์ด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๋˜๋Š” kubectl create ํ†ตํ•ด ์„ค์น˜๋œ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Š” ๋งค์šฐ ์œ„ํ—˜ ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ์˜ต์…˜์€ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž…ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ์—ˆ๋Š”๋ฐ, ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ์ œ์•ˆ / ํ”ผ๋“œ๋ฐฑ / ๋Œ€์•ˆ ์ œ์•ˆ์ด์žˆ๋Š” ๊ฒฝ์šฐ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@bacongobbler , 3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ณ„ํš๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋Œ€์•ˆ ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด # 1193์€ ์‹ฌ๊ฐํ•˜๊ฒŒ ๊ณ ํ†ต์Šค๋Ÿฌ์šด ๋ณด์ปค์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ๋ฐ˜๋ณตํ•˜๋ ค๋ฉด :

์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค๊ฐ€ FAILED ์ƒํƒœ๊ฐ€๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— helm upgrade ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Helm์€ ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค์™€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ DEPLOYED ๋ฆด๋ฆฌ์Šค์—์„œ๋Š”์ด ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•˜์ง€๋งŒ ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. @arturictus๊ฐ€ ์ง€์ ํ–ˆ๋“ฏ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์™„์ „ํžˆ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๊ฐ€ "์ฐพ์„ ์ˆ˜ ์—†์Œ"์œผ๋กœ๋ณด๊ณ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/helm/helm/pull/4223#issuecomment -397413568์—์„œ ์‹œ์—ฐ ํ•œ ์˜ˆ์ œ์— ๋”ฐ๋ผ :

><> helm fetch --untar https://github.com/helm/helm/files/2103643/foo-0.1.0.tar.gz
><> helm install ./foo/
...
><> vim foo/templates/service.yaml                    # change the service name from "foo" to "foo-bar"
><> kubectl create -f foo/templates/service.yaml      # create the service
service "foo-bar" created
><> helm upgrade $(helm last) ./foo/
Error: UPGRADE FAILED: no Service with the name "foo-bar" found
><> kubectl delete svc foo-bar
service "foo-bar" deleted
><> helm upgrade $(helm last) ./foo/
Release "riotous-echidna" has been upgraded. Happy Helming!
...
><> kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
foo-bar      ClusterIP   10.104.143.52   <none>        80/TCP    3s
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   1h

์ฆ‰, FAILED ๋ฆด๋ฆฌ์Šค ์ค‘์— ์ƒ์„ฑ ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@bacongobbler ๋จผ์ €, ์ง€๋‚œ ๋ช‡ ์ฃผ ๋™์•ˆ์ด ๋ฌธ์ œ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด ๋ณด์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” Istio 0.8.0์—์„œ Istio 1.0.0 ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ์˜ ๋ฌธ์ œ๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ๋˜๋Š” ๋ฌธ์ œ ์„ค๋ช…๊ณผ ์™„์ „ํžˆ ์ผ์น˜

Helm์— ๋Œ€ํ•œ ์ด์ „ ๊ฒฝํ—˜์ด ๋งŽ์€ Istio ์šด์˜์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋Œ€ํ™”ํ•˜๋ฉด์„œ ์ผ๋ถ€ ์šด์˜์ž๋Š” Helm์˜ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‚˜์œ ์†Œ์‹์ด๋ฉฐ ์ข…์ข… ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ๋กœ ์ด์–ด์ง„๋‹ค ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. Istio ์ฐจํŠธ ๊ตฌํ˜„์— Helm 2.yz ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒฐํ•จ์ด์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๋น„ ํ˜ธํ™˜์„ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ–ฅํ›„ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” 0.8.0์—์„œ 1.0.0 ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ 1 ํšŒ ์ ์ค‘ ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง€์†์ ์œผ๋กœ ๊ฒฐํ•จ์ด์žˆ๋Š” ๊ฒฝ์šฐ-๊ทธ๊ฒƒ์€ ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Istio์—์„œ bisect๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ 7 ์›” 27 ์ผ (Istio 1.0.0 ๋ฆด๋ฆฌ์Šค 3 ์ผ ์ „)๊นŒ์ง€ ์ž‘๋™ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ์ปค๋ฐ‹์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/istio/istio/commit/301612af08128b15069d27ff6d03cdb87420e15b

์ด PR์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ ํ›„ ์ž‘์—…์—์„œ ๊ฐœ์ฒด ๋“ฑ๋ก์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํ•˜์ง€๋Š” ์•Š์ง€๋งŒ Istio 1.0.0์— ์ด๋ฅด๋Š” 3 ์ผ ๋™์•ˆ ์„ค์น˜ ํ›„ ์ž‘์—…์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ์™€ ๊ด€๋ จ๋œ Istio์˜ ํŠน์ • Helm ์ฐจํŠธ์— ๋Œ€ํ•œ ์กฐ์–ธ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์„ค์น˜ ํ›„ ์ž‘์—…์—์„œ ๊ฐœ์ฒด ๋“ฑ๋ก์„ ์œ ์ง€ํ•˜๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

Helm์— ๋Œ€ํ•œ ์ตœ๊ทผ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ์ผ๋ฐ˜ํ™” ๋œ ์†”๋ฃจ์…˜์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— (๋ฌธ์ œ๋ฅผ ์‚ดํŽด ๋ณด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—)์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ์กฐ์–ธ์ด๋‚˜ ์ œ์•ˆ์„ ์‹ค์ œ๋กœ ์ œ๊ณต ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋” ์ž˜ํ•  ์ˆ˜์žˆ์„ ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ
-์Šคํ‹ฐ๋ธŒ

์˜ค๋ฅ˜๋ฅผ ๋” ์ž˜ ๋ฐ˜์˜ํ•˜๋„๋ก ์ œ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„๋ฐ›์Šต๋‹ˆ๋‹ค. GKE 10.6์—์„œ ์ตœ์‹  Helm 2.10์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์–ธ์ œ ์ˆ˜์ • ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ฉ๋ฆฌ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? --purge ์˜ต์…˜์œผ๋กœ ์ „์ฒด ๋ฐฐํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €์˜ ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์— ๋ถ€๋‹ด์—†์ด ๋“ค๋ ค์ฃผ์„ธ์š”. ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ž˜ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/helm/helm/issues/1193#issuecomment -419555433์„

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ helm ์ž๋™ ๋กค๋ฐฑ ๊ธฐ๋Šฅ ( ์˜ต์…˜ 1 )์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ DEPLOYED Helm ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ž‘๋™ ์ค‘์ด๊ณ  ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์–‘ํ˜ธํ•œ ์ƒํƒœ์ด๋ฏ€๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์œ„ํ—˜ํ•œ ๊ฒฝ์šฐ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด helm ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ์‹คํŒจ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์•Œ ์ˆ˜์—†๋Š” ์ƒํƒœ์—์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Helm์ด ๊นจ๋—ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†์–ด ์ž ์žฌ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹ค์šด ํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Š” ๋งค์šฐ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ helm ์‚ฌ์šฉ์ž๊ฐ€ CD ๋˜๋Š” CM ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์ž๋™ํ™” ๋œ ๋ฐฉ์‹์œผ๋กœ helm์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ helm ๋ฆด๋ฆฌ์Šค๋ฅผ FAILED ์ƒํƒœ๋กœ ๋‘๋Š” ๊ฒƒ์ด ๋” ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์˜ ์ด๋Ÿฌํ•œ ๋ถˆ์™„์ „ํ•œ ๋ฆฌ์†Œ์Šค๋Š” ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค์— ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์ž์ฒด์ ์œผ๋กœ ๋‹ค์šด ํƒ€์ž„์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๋“œ ์‚ฌ์–‘์— ๋ˆ„๋ฝ ๋œ ์ด๋ฏธ์ง€ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ํ”„๋กœ๋•์…˜์œผ๋กœ ์ „ํ™˜ ๋œ ๊ฒฝ์šฐ ์›Œํฌ๋กœ๋“œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ImagePullBackOff ์ƒํƒœ๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํšŒ์‚ฌ์˜ ๊ฒฝ์šฐ UI๋ฅผ ํ†ตํ•ด ์Šค์Šค๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜์žˆ๋Š” ์˜จ ํ”„๋ ˆ๋ฏธ์Šค ๊ณ ๊ฐ์ด ์žˆ๊ณ  ์‹คํŒจ ํ•  ๊ฒฝ์šฐ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚˜์ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฌด์‹œํ•˜๋”๋ผ๋„ ์ž๋™ ๋กค๋ฐฑ์€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ด๋ฉฐ Helm ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ๋” ๋งŽ์€ ํŠธ๋žœ์žญ์…˜์ด๋˜๋„๋กํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Helm์€ ์ตœ์„ ์˜ ๋ฐฐํฌ์—์„œ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๊ณต์ ์ธ ๋ฐฐํฌ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

@bacongobbler ๋Š” ์ƒˆ๋กœ์šด ๋ฐฐํฌ์— ๋‹ค์Œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋ž˜๊ทธ ์ถ”๊ฐ€- -three-way-merge
  • ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๊ฐ€ helm install (์ƒˆ ๋ฐฐํฌ)์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋„๋ก ํ—ˆ์šฉ
  • ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ํ•ญ์ƒ 3 ๋ฐฉํ–ฅ ๋ณ‘ํ•ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ฐฐํฌ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒฝ๋กœ์—†์ด ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์‹œ์ ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ helm delete --purge ๋’ค์— helm reinstall ๋ถ™๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ๊นŒ์š”?

์ผ๋ถ€ ๊ฐœ์ธ์€์ด Helm ์ œํ•œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ž ๊ตฌํ˜„์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‹ฌ๊ฐํ•œ ์ˆ˜์น˜์ž…๋‹ˆ๋‹ค. https://github.com/istio/istio/issues/8841#issue -361871147 ์ฐธ์กฐ

๊ฑด๋ฐฐ
-์Šคํ‹ฐ๋ธŒ

@bacongobbler ์˜ ์ด์ „ ๋Œ“๊ธ€๋กœ

  1. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋ฉด ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ์กด ๋ฆฌ์†Œ์Šค์— ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ / ๋‹ค์‹œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    Helm์€ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๋˜๋Š” kubectl create๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งค์šฐ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํ–‰๋™์„ ์˜ตํŠธ ์ธ (opt-in)ํ•˜์—ฌ์ด ์œ„ํ—˜์„ ์™„ํ™” ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ๋‚ด์—์„œ ์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ helm์„ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ด๊ฒƒ์ด ๋งŽ์€ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Helm ์„ค์น˜ / ์—…๊ทธ๋ ˆ์ด๋“œ์— ๊ธฐ์กด ๋ฆด๋ฆฌ์Šค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ์ง€์ •๋œ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์‚ญ์ œ / ๋ฎ์–ด ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋ ๊นŒ์š”?

"๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด"๋ผ๊ณ  ๋ง์”€ ํ•˜์…จ๊ธฐ ๋•Œ๋ฌธ์— Helm์ด ๋ฆด๋ฆฌ์Šค ์ˆ˜ํ–‰์˜ ์ผ๋ถ€๋กœ ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์กฐ์‚ฌํ•˜์ง€ ์•Š์•„๋„๋˜๋ฏ€๋กœ ์ œ ์ œ์•ˆ์€ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ๋‹น ๋‹จ์ผ ๋ฆด๋ฆฌ์Šค ๋ชจ๋ธ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ˜๋Œ€์— ๋Œ€ํ•ด ๋Œ€๋‹ตํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์—์„œ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ ์ด ๋™์ž‘์„ ๊ณ„์† ์–ป์œผ๋ ค๋ฉด ์›ํ•˜๋Š” ์ฐจํŠธ ์ข…์†์„ฑ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์œ ์ผํ•œ ๋ชฉ์ ์ธ ์šฐ์‚ฐ ํ˜• ์ฐจํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ์šฐ์‚ฐ ์ฐจํŠธ๋ฅผ ๋ฐฐํฌ ํ•  ๋•Œ ์ƒˆ ํ”Œ๋ž˜๊ทธ ( "--exclusive"?)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์ด ๋ชจ๋“  ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์•„๋งˆ๋„ ์ถฉ๋ถ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@bacongobbler ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ ๋น„์Šทํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด์ง€ ํŒ๋‹จ ํ•ด๋ณด๋ฉด ์ข€ ๋” ๊ทผ๋ณธ์ ์ธ ๊ฒƒ์„ ์žฌ๊ณ  ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žก์„ฑ์˜ ์ผ๋ถ€๋Š” Helm์ด kubernetes ์ธ ์‹ค์ œ ์†Œ์Šค์™€๋Š” ๋ณ„๋„๋กœ ์•Œ๋ ค์ง„ ๊ตฌ์„ฑ์˜ ์ž์ฒด ๋ฒ„์ „์„ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. Helm์ด ๊ธฐ๋ก ๋ฐ ๋กค๋ฐฑ ๋ชฉ์ ์œผ๋กœ ์ด์ „์— ๋ฐฐํฌ ๋œ helm ์ฐจํŠธ์˜ ๋ณต์‚ฌ๋ณธ ๋งŒ ๋ณด๊ด€ํ•˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์ด ๋” ์•ˆ์ •์ ์ผ๊นŒ์š”? ๋Œ€์‹  Helm์€ kubectl ์ž์ฒด์—์„œ ์ง„์‹ค์„ ์–ป์€ ๋‹ค์Œ ํ•ญ์ƒ ์ˆ˜ํ–‰ ํ•  2-way diff๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

helm ์ฐจํŠธ์— ๋ฆฌ์†Œ์Šค X๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๊ณ  ํ‘œ์‹œ๋˜๊ณ  kubectl์— ๊ธฐ์กด ๋ฆฌ์†Œ์Šค X๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ :

  • ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๊ฐ€ Helm์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒƒ์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ Helm์€ ํ•„์š”ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๊ฐ€ Helm์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒƒ์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ • ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Helm์ด ์‹คํŒจํ•˜๊ณ  ๊นจ๋—ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค (๋˜๋Š” ์ผ๋ถ€ ๋ช…๋ น ์ค„ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฐ•์ œํ•˜๊ณ  Helm์ด ๊ธฐ์กด ๋ฆฌ์†Œ์Šค X์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ–๋„๋ก ํ•  ์ˆ˜ ์žˆ์Œ).

helm ์ฐจํŠธ์— ๋ฆฌ์†Œ์Šค X๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  kubectl์— ๋”ฐ๋ฅธ ๋ฆฌ์†Œ์Šค๊ฐ€์—†๋Š” ๊ฒฝ์šฐ Helm์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

kubectl์ด์ด helm ์ฐจํŠธ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒƒ์œผ๋กœ ํƒœ๊ทธ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค Y๊ฐ€ ์žˆ๊ณ ์ด helm ์ฐจํŠธ์— ๋ฆฌ์†Œ์Šค Y๊ฐ€ ์—†๋‹ค๊ณ ๋ณด๊ณ ํ•˜๋Š” ๊ฒฝ์šฐ helm์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์ด helm ์ฐจํŠธ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒƒ์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ ํ•ญ์ƒ helm์— ์˜ํ•ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, helm ์ฐจํŠธ์— ๋ฆฌ์†Œ์Šค X๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ‘œ์‹œ๋˜๊ณ  X๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ๊ฒฝ์šฐ๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ helm ์ฐจํŠธ์˜ ๋กค์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๊ณ  ์‹คํŒจํ•˜๊ณ  ๋ฆฌ์†Œ์Šค์˜ ์ ˆ๋ฐ˜ ๋งŒ ๋กค์•„์›ƒ ๋œ ๊ฒฝ์šฐ ๋กค๋ฐฑ ์ค‘์— Helm์€ ์ด์ „์— ์„ฑ๊ณตํ•œ ๋ฐฐํฌ์˜ ์ €์žฅ๋œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ •ํ™•ํžˆ ๋™์ผํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ helm ๋ช…๋ น ์ค„ ํ”Œ๋ž˜๊ทธ์™€ ๊ด€๋ จํ•˜์—ฌ ์†์ƒ๋œ ์ƒํƒœ๋กœ ๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ kubernetes๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์„ฑ๊ณต์ ์ธ ๋ฐฐํฌ๊ฐ€ ์•„๋‹Œ ์ง„์‹ค์˜ ์†Œ์Šค๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์ƒˆ helm ์ฐจํŠธ์™€ ์‹œ์Šคํ…œ์˜ ๊ธฐ์กด ์ƒํƒœ ๊ฐ„์˜ ๋‹จ์ˆœํ•œ ์–‘๋ฐฉํ–ฅ ์ฐจ์ด ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋„์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌํ˜„ ๋‹จ๊ณ„ :

  1. helm install ๋ฐฐํฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ ํ•œ ์ฐจํŠธ
  2. ๊ธฐ์กด ๋ฐฐํฌ ์™ธ์— ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ฐจํŠธ ์—…๋ฐ์ดํŠธ
  3. ๋ฐฐํฌ ์‹คํŒจ๋ฅผ ๋ชจ๋ฐฉํ•˜๋„๋ก ๋ฐฐํฌ podspec์˜ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ
  4. helm install ์ƒˆ ์ฐจํŠธ. ์ด๋กœ ์ธํ•ด ์šฐ๋ฆฌ๊ฐ€ ์˜๋„์ ์œผ๋กœ ์‹คํŒจํ•˜๋„๋ก ์„ค์ • ํ•œ ๋ฐฐํฌ์˜ ๋กค๋ง ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  5. Helm ์„ค์น˜๊ฐ€ ์‹คํŒจํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋Š” k8s etcd์— ๋‚จ์•„ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ( kubectl ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ)
  6. (์ด ์‹œ์ ์—์„œ ํˆฌ๊ตฌ๋Š” ๋ถˆ๋Ÿ‰ ์ƒํƒœ์ž…๋‹ˆ๋‹ค)
  7. ์ฐจํŠธ ์ˆ˜์ •-๋ฐฐํฌ podspec์— goot ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
  8. helm install ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์ž‘๋™ ํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "์ด๋ฆ„์ด ___ ์ธ ์ž์› ์—†์Œ"์„๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  9. ๋ณต๊ตฌ : kubectl ์‚ฌ์šฉํ•˜์—ฌ ์ž”์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ helm install ๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฐจํŠธ์— ์ƒˆ๋กœ ๋„์ž… ๋œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋กœ helm install ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์‹œ๋„๋Š”์ด ์ƒํƒœ๊ฐ€๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

# 3275๊ฐ€ ๊ทธ๊ฒƒ์˜ ์ค‘๋ณต์œผ๋กœ ๋‹ซ ํ˜”๊ธฐ ๋•Œ๋ฌธ์— : ์šฐ๋ฆฌ๋Š” # 3275์™€ ๋น„์Šทํ•œ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ์ž‘์—… my-long-running-job ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ :

>helm upgrade --install my-release --namespace my-environment my-chart --timeout 60
Error: UPGRADE FAILED: no Job with the name "my-long-running-job" found

์ž‘์—…์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

>kubectl -n=my-environment get jobs
NAME                                DESIRED   SUCCESSFUL   AGE
my-long-running-job                 1         0            16m

ํ•ด๋‹น ์ž‘์—… ์‚ญ์ œ :

>kubectl -n=my-environment delete job my-long-running-job
job.batch "my-long-running-job" deleted

์ด๋Ÿฌํ•œ ์žฅ์• ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

>helm upgrade --install my-release --namespace my-environment my-chart --timeout 60
Error: UPGRADE FAILED: timed out waiting for the condition

์ตœ์†Œํ•œ no Job with the name "my-long-running-job" found ๋ฉ”์‹œ์ง€๋Š” ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ž‘์—…๋„ ์—…๋ฐ์ดํŠธ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

v2.9.1 (ํ˜„์žฌ ์ถœ์‹œ ๋œ ์•ˆ์ • ๋ฒ„์ „)์—์„œ ์—ฌ์ „ํžˆ์ด ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ทจ์†Œํ•˜๋Š” ๊ฒƒ์ด "๋งค์šฐ ์œ„ํ—˜"ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Kubernetes๋Š” ์„ ์–ธ์ ์ž…๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์ „์˜ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ์Šค๋ƒ… ์ƒทํ•ฉ๋‹ˆ๋‹ค.
๋„์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์Šค๋ƒ… ์ƒท์œผ๋กœ ๋กค๋ฐฑํ•˜์‹ญ์‹œ์˜ค.
์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๋•Œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ž˜๋ชป๋œ ์ƒํƒœ๋กœ ๋‚จ๊ฒจ ๋‘˜ ์Šคํฌ๋ฆฝํŠธ ํ›„ํฌ๊ฐ€์žˆ๋Š” ์‚ฌ๋žŒ์€ ์ž์‹ ์˜ ์ž˜๋ชป์ž…๋‹ˆ๋‹ค. (์•„๋งˆ๋„ ๋กค๋ฐฑ ํ›„ํฌ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)

๋ฌผ๋ก  ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‚ฌ์ „์— ์ง„ํ–‰๋˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์ด ํŒŒ์ผ์„ ์ œ์ถœํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ’ ๋˜๋Š” --set ์ธ์ˆ˜๋กœ ์ƒ์„ฑ ๋œ ์ข…์†์„ฑ ์ฐจํŠธ์˜ ์˜ค๋ฅ˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์„ ์žŠ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋„๋ก ๋ฏธ๋ฆฌ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ : v2.10.0 + g9ad53aa
์„œ๋ฒ„ : v2.10.0 + g9ad53aa

Helm์ด ๋ฆด๋ฆฌ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ serviceAccount, configMap ๋ฐ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋ฒ„์ „ 2.11.0์—์„œ @dilumr๊ฐ€ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}

Error: UPGRADE FAILED: no ConfigMap with the name "xxx" found

v2.9.1์—์„œ ์ด๊ฒƒ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋˜ ์ฐจํŠธ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์žˆ๋Š” ๊ฐœ์ธ ์ฐจํŠธ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฒ„์ „์„ ๋›ฐ์–ด ๋„˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํžˆ ๋ฌด์—‡์ด ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ–ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋ฐฐํฌ๊ฐ€ ์›๋ž˜ FAILED ์ƒํƒœ๋กœ ๋๋‚œ ์ด์œ ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” --wait ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

helm list ์ค‘๋ณต ๋œ FAILED ๋ฐฐํฌ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์—ˆ์ง€๋งŒ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ž‘์—… ํ•œ ๋ฐฐํฌ๋Š” DEPLOYED ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๋ฐฐํฌ๋ฅผ ๋งŒ๋“ค๋ฉด No resource with the name x found .

์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋˜ helm rollback ์— ์žˆ๋˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์— DEPLOYED ์— ์ƒํƒœ helm list . ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ์˜ค๋ฅ˜์—†์ด ์‹คํ–‰ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ์ด ์˜ค๋ฅ˜๋Š” ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ํ•ด๋‹น ๋ฐฐํฌ์˜ ์ƒˆ ์ž์‚ฐ์ด ์„ค์น˜๋œ ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ์„ ๋•Œ ๊ฐ€์žฅ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (ํ•ญ์ƒ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).

์‹คํŒจํ•œ Helm ๋ฐฐํฌ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๊นŒ๋‹ค ๋กญ๊ฑฐ๋‚˜ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์— ์ด์ƒ์ ์ธ Helm ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ฒซ์งธ, Helm์ด ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ๋ฐ ๊ธฐํƒ€ ๋ฆฌ์†Œ์Šค๋ฅผ (์žฌ) ์„ค์น˜ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Kubernetes๋Š” "๊ตฌ์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋งŒ๋“ค๊ณ  kube๊ฐ€ ์„ธ์ƒ์„ ๊ตฌ์„ฑ๊ณผ ์ผ์น˜์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ด๋„๋กํ•ฉ๋‹ˆ๋‹ค."
๋‘˜์งธ, Helm์€ ์ „๋ถ€ ์•„๋‹ˆ๋ฉด ์ „๋ฌดํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์˜ ์ƒํƒœ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.
๋‘˜ ๋‹ค ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค X๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋Š” ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋‘ ๊ฐœ ์žˆ์œผ๋ฉด ์ฐธ์กฐ ๊ณ„์‚ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค X๋ฅผ ๋งŒ๋“ค๋ ค๋Š” ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์ง€๋งŒ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ถœ์ฒ˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ helm์€ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์—ฌ์ด๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  helm 2.12.0 ๋ฐ kubernetes 1.10.11์—์„œ๋„์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @aguilarm์ด ์ œ์•ˆํ•œ๋Œ€๋กœ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ

๋‚˜๋Š” ๋งค์šฐ ์œ ์‚ฌํ•œ ํ™˜๊ฒฝ์„ ๊ฐ€์ง„ 2 ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, 2 ๊ฐœ๋Š” ์ด ๋…ธ๋“œ ์ˆ˜์ธ 2 ๊ฐœ ์‚ฌ์ด์— ์ฃผ๋œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฒฝ์šฐ์—๋Š” helm delete --purge ๋‹ค์Œ์— ์ƒˆ๋กœ์šด helm install ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ์ด๋ฅผ ์ตœ์‹  ํ…œํ”Œ๋ฆฟ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ง ์•Œ์•„ ๋‚ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

helm rollback ๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฐœ์ •ํŒ (์‹คํŒจํ•œ ๊ฐœ์ •ํŒ)์„ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ
Error: UPGRADE FAILED: no Service with the name "xxx-api" found
kubectl get svc -n stage | grep xxx-api
xxx-api ClusterIP 172.20.149.229 <none> 8300/TCP 19h
helm rollback ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ—ฌ๋ฆ„ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผํ•˜๋Š” ๋™์•ˆ ๊ฝค ์ •๊ธฐ์ ์œผ๋กœ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ์‹คํŒจํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„ฑ๊ณต์ ์ธ ๋ฐฐํฌ ํ›„์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 1) ์‚ฌ์šฉํ•  ์ˆ˜์—†๊ณ  2) ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋ณต๊ตฌํ•˜๋Š” ๋ฐ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์‚ฌ์†Œํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ ๋œ ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์ด๋ฏ€๋กœ delete --purge๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์œ„์— ๊ฒŒ์‹œ ํ•œ ์ง„๋‹จ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@bacongobbler ์‘๋‹ต

@ajcann์— +1ํ•˜๊ณ 
๋‚˜๋Š” ๋˜‘๊ฐ™์€ ์ƒํ™ฉ์— ์žˆ์Šต๋‹ˆ๋‹ค.
CICD๋Š” ์ž๋™ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‚ฎ์€ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์Šฌ๋ž™ ๋ด‡์ด ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
์‹คํŒจํ•˜๋ฉด ์ˆ˜๋™์œผ๋กœ helm ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐํฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋Š” ์ „ํ˜€ ์ผ๊ด€์„ฑ์ด ์—†์ง€๋งŒ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ €์—๊ฒŒ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์ฐจํŠธ / ๋ฆฌ์†Œ์Šค๋ฅผ ๋‘ ๋ฒˆ์งธ ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ์— ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ž์›์€ ํ•ญ์ƒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์˜ ํ…œํ”Œ๋ฆฟ์ด์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • {{if $condition -}} ๋ฌธ
  • ๋˜๋Š” {{ range $index, $value := $array-}}

@jkroepke ๋Š” PR # 5143์ด ์ด์— ๋Œ€ํ•œ ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๋‚˜์—๊ฒŒ ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. --atomic ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‹ค์Œ ๋ถ€ ๋ฒ„์ „์—์„œ ๋ฆด๋ฆฌ์Šค๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€์žˆ์„ ๋•Œ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋กค๋ฐฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bacongobbler ๋‹น์‹ ์ด ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์•ž๋’ค๋กœ ๊ด€๋ จ๋˜์–ด --atomic ํ”Œ๋ž˜๊ทธ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ?

@distorhead ๊ฐ€ https://github.com/helm/helm/pull/4871 ์—์„œ ์ œ๊ธฐ ํ•œ ์šฐ๋ ค ์‚ฌํ•ญ๋„ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค --atomic ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉ ํ•œ๋‹ค๊ณ  ๊ฐ€์ • ํ•˜๋ฉด --atomic ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŠน์ • ์ฃผ์— ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ ๋œ ํ•ด๊ฒฐ์ฑ…์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ œ๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์™„ํ™” ์ „๋žต์ด

  • ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ผ์ด๋ธŒ ์ƒํƒœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ดํŽด ๋ณด๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Helm 2.13.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์•ž์œผ๋กœ helm upgrade --atomic

๊ทธ๋Ÿฌ๋ฉด ๋‹ซ์•„๋„ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Helm 2.13.0์ด ๊ทธ๋ฆฌ ๋ฉ€์ง€ ์•Š์•˜ ์œผ๋ฉดํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฒ„๊ทธ๋Š” ๋ฆด๋ฆฌ์Šค์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ CI๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

Atomic์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฐจํŠธ : https://github.com/distorhead/ex-helm-upgrade-failure

  1. ๋งˆ์Šคํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐฐํฌ๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.
git clone https://github.com/distorhead/ex-helm-upgrade-failure
cd ex-helm-upgrade-failure
helm upgrade --atomic --install --namespace myns myrelease .

์ฐจํŠธ์—๋Š” myserver1 ๋ฐ myserver2 ๋‘ ๊ฐ€์ง€ ๋ฐฐํฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Release "myrelease" does not exist. Installing it now.
NAME:   myrelease
LAST DEPLOYED: Tue Feb  5 23:48:57 2019
NAMESPACE: myns
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/Deployment
NAME       READY  UP-TO-DATE  AVAILABLE  AGE
myserver1  1/1    1           1          5s
myserver2  1/1    1           1          5s
  1. ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€. ์ฐจํŠธ์—์„œ myserver1 ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‚ฌ์šฉ์ž ์˜ค๋ฅ˜๋กœ myserver2 ๋ฐฐํฌ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : ์ด๋ฏธ์ง€ ํ•„๋“œ ์‚ญ์ œ).
git checkout break-atomic
git diff master
diff --git a/templates/deploy.yaml b/templates/deploy.yaml
index 198516e..64be153 100644
--- a/templates/deploy.yaml
+++ b/templates/deploy.yaml
@@ -1,21 +1,5 @@
 apiVersion: apps/v1beta1
 kind: Deployment
-metadata:
-  name: myserver1
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        service: myserver1
-    spec:
-      containers:
-      - name: main
-        command: ["/bin/bash", "-c", "while true ; do date ; sleep 1 ; done"]
-        image: ubuntu:16.04
----
-apiVersion: apps/v1beta1
-kind: Deployment
 metadata:
   name: myserver2
 spec:
@@ -28,4 +12,3 @@ spec:
       containers:
       - name: main
         command: ["/bin/bash", "-c", "while true ; do date ; sleep 1 ; done"]
-        image: ubuntu:16.04
  1. ๋ฐฐํฌ ์‹คํ–‰ :
git checkout break-atomic
helm upgrade --atomic --install --namespace myns myrelease .

์นœ๊ตฌ์—๊ฒŒ ๋‹ค์‹œ ์ธ์‚ฌํ•˜์‹ญ์‹œ์˜ค.

UPGRADE FAILED
ROLLING BACK
Error: Deployment.apps "myserver2" is invalid: spec.template.spec.containers[0].image: Required value
Error: no Deployment with the name "myserver1" found

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ

@distorhead ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์˜ˆ์ƒํ–ˆ๋˜ ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋กค๋ฐฑ์— ๋Œ€ํ•ด์„œ๋Š” ์•ฝ๊ฐ„ ์–ด์ƒ‰ํ•˜์ง€๋งŒ ์–ด์จŒ๋“ .

๋กค๋ฐฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋กœ --atomic ์—์„œ์™€ ๊ฐ™์ด ๋ฐฐํฌ ์งํ›„ ๋กค๋ฐฑ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํŒจ ํ›„ ์ž˜๋ชป๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฒ€์‚ฌ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์—†๊ณ  --wait ํ”Œ๋ž˜๊ทธ๋กœ ์ธํ•ด helm์ด ๋ฐฐํฌ์ค‘์ธ ๋ฆฌ์†Œ์Šค์˜ ์‹คํŒจ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ๋‹ค์Œ ์‹คํ–‰์‹œ ๋กค๋ฐฑ (์ถ”๊ฐ€ ์ •๋ณด https://github.com/helm/helm/issues/3149#issuecomment-462271103)

๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ๋ฐ˜๋ณตํ•˜๋ ค๋ฉด :

์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค๊ฐ€ FAILED ์ƒํƒœ๊ฐ€๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— helm upgrade ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Helm์€ ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค์™€ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ DEPLOYED ๋ฆด๋ฆฌ์Šค์—์„œ๋Š”์ด ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•˜์ง€๋งŒ ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. @arturictus๊ฐ€ ์ง€์ ํ–ˆ๋“ฏ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์™„์ „ํžˆ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๊ฐ€ "์ฐพ์„ ์ˆ˜ ์—†์Œ"์œผ๋กœ๋ณด๊ณ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. # 4223 (์ฃผ์„) ์—์„œ ์‹œ์—ฐ ํ•œ ์˜ˆ์— ๋”ฐ๋ผ :

><> helm fetch --untar https://github.com/helm/helm/files/2103643/foo-0.1.0.tar.gz
><> helm install ./foo/
...
><> vim foo/templates/service.yaml                    # change the service name from "foo" to "foo-bar"
><> kubectl create -f foo/templates/service.yaml      # create the service
service "foo-bar" created
><> helm upgrade $(helm last) ./foo/
Error: UPGRADE FAILED: no Service with the name "foo-bar" found
><> kubectl delete svc foo-bar
service "foo-bar" deleted
><> helm upgrade $(helm last) ./foo/
Release "riotous-echidna" has been upgraded. Happy Helming!
...
><> kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
foo-bar      ClusterIP   10.104.143.52   <none>        80/TCP    3s
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   1h

์ฆ‰, FAILED ๋ฆด๋ฆฌ์Šค ์ค‘์— ์ƒ์„ฑ ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ @bacongobbler์— ๋ชจ์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๋กœ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํ•œ ๊ฐ€์ง€ ๊ณ ํ†ต์Šค๋Ÿฌ์šด ๋ฌธ์ œ๋Š” ๋ณต์žกํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ๋งŽ์€ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค (๋•Œ๋กœ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ข…์†์„ฑ ์ˆ˜์ค€์ด ๊นŠ์Œ)๊ฐ€์ด ์ƒํƒœ์—์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ด€๋ จ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ "๊ฒ€์ƒ‰"์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํŒจํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์œผ๋กœ ์ด์–ด์ง€๋Š” ์ž๋™ ๋ฐฉ์‹์œผ๋กœ ์ด๋Ÿฌํ•œ ์ƒํƒœ๋ฅผ ์™„์ „ํžˆ ์—ด๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ง ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ๊ทผ์— ์ƒˆ๋กœ ์ถ”๊ฐ€ ๋œ ์ข…์†์„ฑ ์ž์ฒด๊ฐ€ postgresql ์ฐจํŠธ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋น„๋ฐ€, ๊ตฌ์„ฑ ๋งต, ์„œ๋น„์Šค, ๋ฐฐํฌ ๋ฐ PVC๋ฅผ ์‚ญ์ œํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์€ ๋จผ ๊ธธ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์—์„œ ์ƒ์„ฑ ๋œ ํ…œํ”Œ๋ฆฟ์„ ์—ด๊ฑฐํ•˜๋Š” helm diff ์™€ ์œ ์‚ฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Helm์—์„œ ์ง์ ‘ pkg/kube ์†Œ๋น„ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. client.Update ์—๋Š” Tiller์—์„œ ๋‘ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋น„๊ต ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜์žˆ๋Š” helm์˜ ๋ฆฌ์†Œ์Šค ์ถ”์  / ์‚ญ์ œ ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์ผ๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์žˆ์Šต๋‹ˆ๋‹ค. target.Difference(original) ๋Š” ์ด์ „ ๋ฆด๋ฆฌ์Šค ์ดํ›„์— ๋„์ž… ๋œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์˜ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

@bacongobbler ๋ฆด๋ฆฌ์Šค A์˜ ์ผ๋ถ€๋กœ ๋ฐฐํฌ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (์˜ˆ : ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋” ํฐ ๋ฆด๋ฆฌ์Šค)์„ ๋‹ค์šด ํƒ€์ž„์—†์ด ๋ฆด๋ฆฌ์Šค A์—์„œ ์ž์ฒด ๋ฆด๋ฆฌ์Šค๋กœ ๋ถ„๋ฆฌ (๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€)ํ•˜๋Š” ๋ฐ ๊ถŒ์žฅํ•˜๋Š” ์†”๋ฃจ์…˜์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธํ•ด ๋‹ค์šด ํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ... ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ ํ•˜๋ฉด์ด Github ๋ฌธ์ œ์— ์„ค๋ช… ๋œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ๋‚ด๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค (์ง€๊ธˆ๊นŒ์ง€๋Š” ์•„๋ฌด๋Ÿฐ ์‚ฌ๊ณ ์—†์ด ๋งค๋ฒˆ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์–ด์จŒ๋“  ์กฐ์‹ฌํ•˜์‹ญ์‹œ์˜ค).

  1. helm list ํ•˜๊ณ  ์˜ํ–ฅ์„๋ฐ›๋Š” ์ฐจํŠธ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

    NAME        REVISION UPDATED                  STATUS  CHART              NAMESPACE
    fetlife-web 381      Thu Mar 15 19:46:00 2018 FAILED  fetlife-web-0.1.0  default
    
  2. ๊ฑฐ๊ธฐ์—์„œ DEPLOYED ์ƒํƒœ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
    kubectl -n kube-system edit cm fetlife-web.v381 kubectl -n kube-system edit cm fetlife-web.v380 kubectl -n kube-system edit cm fetlife-web.v379 kubectl -n kube-system edit cm fetlife-web.v378
  3. ๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋œ ๊ฐœ์ •ํŒ์„ ์ฐพ์œผ๋ฉด ์ƒํƒœ๋ฅผ DEPLOYED ์—์„œ SUPERSEDED ํ•˜๊ณ  ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. helm upgrade ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ์„ฑ๊ณตํ•˜๋ฉด ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค!
  5. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—…๊ทธ๋ ˆ์ด๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ :
    Error: UPGRADE FAILED: "fetlife-web" has no deployed releases
    ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์˜ ์ƒํƒœ๋ฅผ FAILED ์—์„œ DEPLOYED
    kubectl -n kube-system edit cm fetlife-web.v381
  6. helm upgrade ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์‹œ ์‹คํŒจํ•˜๋ฉด ํ…Œ์ด๋ธ”์„ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค ...

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— "์ž์›์ด helm์— ์˜ํ•ด ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๊ณ  ์ˆ˜๋™ ๊ฐœ์ž…์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ํ‘œ์‹œ๋˜์–ด์•ผํ•˜๋ฉฐ "์ฐพ์„ ์ˆ˜ ์—†์Œ"์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜์— ๋Œ€ํ•œ์ด ์ž‘์€ ๋ณ€ํ™” ๋งŒ์ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@selslack ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

@michelleN ์˜ค๋ฅ˜ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค : # 5460.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@reneklacan์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์—ฌ๊ธฐ์—์„œ https://github.com/helm/helm/issues/1193#issuecomment -470208910

๋ถˆํ–‰ํžˆ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œ ํ•œ ๋‹ค์Œ helm upgrade ๋‹ค์‹œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ helm ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ง€์† ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CI ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋กœ helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ™˜๊ฒฝ ์ธ QA์™€ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

QA ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ helm delete --purge ๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ helm upgrade -๋ฌธ์ œ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š”์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ๋Š” ๊ฐ ๋ฐฐํฌ ์ „์— ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ˆ˜์ž… ์ž์›์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์šด์ด ์ข‹๋‹ค.

@zacharyw ํ˜„์žฌ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? No resource with the name ... ๋˜๋Š” "fetlife-web" has no deployed releases ?

์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

kubectl -n kube-system describe cm -l NAME=YOUR_RELEASE_NAME | grep -A1 STATUS= ์ถœ๋ ฅ ( YOUR_RELEASE_NAME ๋Œ€์ฒด)

๊ด€๋ จ์ด์—†๋Š” ๋ฐ์ดํ„ฐ (rene (at) klacan (dot) sk)๋กœ์ด ๋ฌธ์ œ๋ฅผ ์ŠคํŒธํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.

๊ฐ€๋Šฅํ•œ ์ง„๋‹จ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ https://github.com/helm/helm/issues/1193#issuecomment -419555433, @zacharyw๋ฅผ ์ฐธ์กฐ

@reneklacan no resource with the name ... ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์ธ ๊ทธ๋ ˆ์Šค๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์ง€๋งŒ ์ธ ๊ทธ๋ ˆ์Šค๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋”๋ผ๋„์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ํ›„์† ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ตœ๊ทผ ๋ฆด๋ฆฌ์Šค์˜ ์ƒํƒœ (๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์ˆ˜์‹ ์„ ์‚ญ์ œํ•˜๊ณ  helm ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉ ํ•œ ํ›„)๋Š” DEPLOYED .

STATUS=DEPLOYED
VERSION=197

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

@bacongobbler ๋‚ด๊ฐ€ ์˜คํ•ดํ•˜์ง€ ์•Š๋Š” ํ•œ ์ด๋ฏธ ํ•ด๋‹น ์ฃผ์„์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋งค๋ฒˆ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์— @reneklacan https://github.com/helm/helm/issues/1193#issuecomment -470208910 ๋‚ด ์ƒ๋ช…์„ ๊ตฌ ํ–ˆ์–ด์š”.

Helm์ด ์ด๋Ÿฐ ์‹์œผ๋กœ ์‹คํŒจํ•œ ๊ฒƒ์€ ์‹ค๋ง์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์ด์ƒ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ helm์ด ์ž์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

--cleanup-on-fail ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด์ด ์˜ค๋ฅ˜ ์ผ€์ด์Šค๊ฐ€ ์‚ฌ๋ผ์ ธ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. # 4871 ๋ฐ # 5143์„ ํ†ตํ•ด ํ•ด๊ฒฐ ๋œ๋Œ€๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ์—†์ด ์ถ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ!

helm ๋ฆด๋ฆฌ์Šค ๋˜๋Š” ์‹คํ–‰์ค‘์ธ ๋ฐฐํฌ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ ํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์ข…๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ test-chart-failure ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋น„์Šค ํฌํŠธ์— ๋ฌธ์ž์—ด (์˜ˆ : "test")์ด์žˆ๋Š” ์„œ๋น„์Šค ํ…œํ”Œ๋ฆฟ์ด์žˆ๋Š” ํ•˜์œ„ ์ฐจํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ฐจํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค. Service in version "v1" cannot be handled as a Service: v1.Service.Spec: v1.ServiceSpec.Ports: []v1.ServicePort: v1.ServicePort.Port: readUint32: unexpected character: ... ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

http://centosquestions.com/helm-how-to-delete-bad-deployment ์—์„œ ์ œ์•ˆ์„ ์ ์šฉํ•˜์—ฌ helm delete ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํฌํŠธ๋ฅผ ๋ฒˆํ˜ธ๋กœ ์ˆ˜์ • ํ•œ ํ›„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. helm history test-chart-failure ์‹คํŒจํ•œ ๊ฐœ์ •ํŒ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
  2. kubectl delete cm -n kube-system test-chart-failure.v2 ํŠน์ • ๊ฐœ์ •์˜ ๊ตฌ์„ฑ ๋งต์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ์ˆ˜์ • ๋œ ์ฐจํŠธ๋กœ helm upgrade ์‹คํ–‰
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰