๊ฐ๋จํ 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
๋ฒ๋ค ์ข
์์ฑ์ด์๋ ์ฐจํธ๊ฐ์๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ ์ข
์์ฑ์ ์ถ๊ฐํ๊ณ 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๊ฐ ์ธ๊ธ ํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ์ ๋๋ค.
UPGRADE FAILED: the server was unable to return a response in the time allotted, but may still be processing the request (get configmaps)
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์ ์ฌ์ฉํ์ฌ ๋ง์ง๋ง์ผ๋ก ์ฑ๊ณตํ ๋ฐฐํฌ๋ก ๋ ๋๋ฆฐ ๋ค์ ์ฐจํธ ๋ฒ์ ๋ณ๊ฒฝ์ ๋๋๋ ค ์ฐจํธ ๋ฒ์ ์ด ๋์ผํ๊ฒ ์ ์ง๋์ด ์ฑ๊ณตํ์ต๋๋ค.
์ด (์ถ์ ํ) ์์ ์ด ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค.
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 ๊ณผ ์ ๋ ์ด๋ฒ ์ฃผ ์ด์ ๋ธ๋ ์ธ ์คํ ๋ฐ์ํ๊ณ ๋ ๊ฐ์ง ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ ์๊ฐํ๋๋ฐ ๋ ๋ค ํนํ ํ์์ ์ด์ง ์์์ต๋๋ค.
์ ๊ทธ๋ ์ด๋ ์คํจ ํ ํด๋ฌ์คํฐ๊ฐ ์ ์์๋ ์ํ์์์ ์ ์์ผ๋ฏ๋ก Helm์ด ๊นจ๋ํ ๋ฐฉ์์ผ๋ก ์งํํ ์ ์์ด ์ ์ฌ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ด ํ์์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ด๋ ๋งค์ฐ ์ํ ํฉ๋๋ค.
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
(์ ๋ฐฐํฌ)์์๋ง ์ฌ์ฉ๋๋๋ก ํ์ฉhelm delete --purge
๋ค์ helm reinstall
๋ถ๋ ๊ฒ์ด๋ฏ๋ก ์ฒ์ ๋ํ๋๋ ๊ฒ์ฒ๋ผ ๋ง์กฑ์ค๋ฝ์ง ์์ ์ ์์ต๋๋ค.์ด๊ฒ์ด ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊น์?
์ผ๋ถ ๊ฐ์ธ์์ด Helm ์ ํ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์์ ๊ตฌํ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ๊ฐํ ์์น์ ๋๋ค. https://github.com/istio/istio/issues/8841#issue -361871147 ์ฐธ์กฐ
๊ฑด๋ฐฐ
-์คํฐ๋ธ
@bacongobbler ์ ์ด์ ๋๊ธ๋ก
- ์ ๊ทธ๋ ์ด๋ํ๋ ๋์ ์ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ณ ์ด๋ฏธ ์กด์ฌํ๋ ๊ฒ์ผ๋ก ํ์ธ๋๋ฉด ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ์กด ๋ฆฌ์์ค์ ์ ์ฉํ๊ฑฐ๋ ์ญ์ / ๋ค์ ์์ฑํฉ๋๋ค.
Helm์ ์ฌ์ฉ์๊ฐ ์ํ์ง ์๋ ๋ค๋ฅธ ํจํค์ง ๋๋ kubectl create๋ฅผ ํตํด ์ค์น๋ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ ์ ์์ผ๋ฏ๋ก ๋งค์ฐ ์ํํฉ๋๋ค.
์๋ก์ด ํ๋์ ์ตํธ ์ธ (opt-in)ํ์ฌ์ด ์ํ์ ์ํ ํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ฃผ์ด์ง ๋ค์ ์คํ์ด์ค ๋ด์์ ์ ๋ ์ผ๋ฐ์ ์ผ๋ก helm์ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ด๊ฒ์ด ๋ง์ ๊ฒฝ์ฐ์ ํด๋นํ๋ค๊ณ ์๊ฐํฉ๋๋ค. Helm ์ค์น / ์ ๊ทธ๋ ์ด๋์ ๊ธฐ์กด ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ๊ฐ ์๋ ์ง์ ๋ ๋ค์ ์คํ์ด์ค์ ๋ชจ๋ ํญ๋ชฉ์ ์ญ์ / ๋ฎ์ด ์ฐ๋ ๊ฒ์ด ์ข๋ค๋ ํ๋๊ทธ๋ฅผ ์ง์ ํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊น์?
"๋ค๋ฅธ ํจํค์ง๋ฅผ ํตํด"๋ผ๊ณ ๋ง์ ํ์ จ๊ธฐ ๋๋ฌธ์ Helm์ด ๋ฆด๋ฆฌ์ค ์ํ์ ์ผ๋ถ๋ก ๋ค๋ฅธ ๋ฆด๋ฆฌ์ค๋ฅผ ์กฐ์ฌํ์ง ์์๋๋๋ฏ๋ก ์ ์ ์์ ๋ค์ ์คํ์ด์ค ๋น ๋จ์ผ ๋ฆด๋ฆฌ์ค ๋ชจ๋ธ์ ์ ์ธํ๊ณ ๋ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ์ด ๋ฐ๋์ ๋ํด ๋๋ตํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ๋ค์ ์คํ์ด์ค์์ ์ฌ๋ฌ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด ๋์์ ๊ณ์ ์ป์ผ๋ ค๋ฉด ์ํ๋ ์ฐจํธ ์ข ์์ฑ์ ์ง์ ํ๋ ๊ฒ์ด ์ ์ผํ ๋ชฉ์ ์ธ ์ฐ์ฐ ํ ์ฐจํธ๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น ์ฐ์ฐ ์ฐจํธ๋ฅผ ๋ฐฐํฌ ํ ๋ ์ ํ๋๊ทธ ( "--exclusive"?)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ถ๋ช ํ ์ด๊ฒ์ด ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ ์์ง๋ง ์๋ง๋ ์ถฉ๋ถํ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ผ ๊ฒ์ ๋๋ค.
@bacongobbler ๋๋ ์ฌ๊ธฐ์์ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์์ ์ ์์ต๋๋ค. ์ ๊ทธ๋ ์ด๋์์ ๋น์ทํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ด์ง ํ๋จ ํด๋ณด๋ฉด ์ข ๋ ๊ทผ๋ณธ์ ์ธ ๊ฒ์ ์ฌ๊ณ ํ ํ์๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ณต์ก์ฑ์ ์ผ๋ถ๋ Helm์ด kubernetes ์ธ ์ค์ ์์ค์๋ ๋ณ๋๋ก ์๋ ค์ง ๊ตฌ์ฑ์ ์์ฒด ๋ฒ์ ์ ์ ์งํ๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. Helm์ด ๊ธฐ๋ก ๋ฐ ๋กค๋ฐฑ ๋ชฉ์ ์ผ๋ก ์ด์ ์ ๋ฐฐํฌ ๋ helm ์ฐจํธ์ ๋ณต์ฌ๋ณธ ๋ง ๋ณด๊ดํ๊ณ ์ ๊ทธ๋ ์ด๋ ์ค์ ์ ํ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ ์์คํ ์ด ๋ ์์ ์ ์ผ๊น์? ๋์ Helm์ kubectl ์์ฒด์์ ์ง์ค์ ์ป์ ๋ค์ ํญ์ ์ํ ํ 2-way diff๊ฐ ์์ต๋๊น?
helm ์ฐจํธ์ ๋ฆฌ์์ค X๊ฐ ์์ด์ผํ๋ค๊ณ ํ์๋๊ณ kubectl์ ๊ธฐ์กด ๋ฆฌ์์ค X๊ฐ ํ์๋๋ ๊ฒฝ์ฐ :
helm ์ฐจํธ์ ๋ฆฌ์์ค X๊ฐ ์์ด์ผํ๋ค๊ณ ๋งํ๊ณ kubectl์ ๋ฐ๋ฅธ ๋ฆฌ์์ค๊ฐ์๋ ๊ฒฝ์ฐ Helm์ด ์์ฑํฉ๋๋ค.
kubectl์ด์ด helm ์ฐจํธ์ ์ํด ์ ์ด๋๋ ๊ฒ์ผ๋ก ํ๊ทธ ์ง์ ๋ ๋ฆฌ์์ค Y๊ฐ ์๊ณ ์ด helm ์ฐจํธ์ ๋ฆฌ์์ค Y๊ฐ ์๋ค๊ณ ๋ณด๊ณ ํ๋ ๊ฒฝ์ฐ helm์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํฉ๋๋ค.
์ด helm ์ฐจํธ์ ์ํด ์ ์ด๋๋ ๊ฒ์ผ๋ก ํ๊ทธ๊ฐ ์ง์ ๋์ง ์์ ๋ชจ๋ ๋ฆฌ์์ค๋ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํ ํ ๋ ํญ์ helm์ ์ํด ๋ฌด์๋ฉ๋๋ค. ๋จ, helm ์ฐจํธ์ ๋ฆฌ์์ค X๊ฐ ํ์ํ๋ค๊ณ ํ์๋๊ณ X๊ฐ ์กด์ฌํ์ง๋ง ํ๊ทธ๊ฐ ์ง์ ๋์ง ์์ ์์์ ์ธ๊ธ ํ ๊ฒฝ์ฐ๋ ์์ธ์ ๋๋ค.
์ด๋ค ์ด์ ๋ก helm ์ฐจํธ์ ๋กค์์์ด ๋ฐ์ํ๊ณ ์คํจํ๊ณ ๋ฆฌ์์ค์ ์ ๋ฐ ๋ง ๋กค์์ ๋ ๊ฒฝ์ฐ ๋กค๋ฐฑ ์ค์ Helm์ ์ด์ ์ ์ฑ๊ณตํ ๋ฐฐํฌ์ ์ ์ฅ๋ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ๊ณ ์ ํํ ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ ์คํํฉ๋๋ค. ์ผ๋ถ helm ๋ช ๋ น ์ค ํ๋๊ทธ์ ๊ด๋ จํ์ฌ ์์๋ ์ํ๋ก ๋จ์ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ค์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์๋ํ๋ ๊ฒฝ์ฐ kubernetes๊ฐ ๋ง์ง๋ง์ผ๋ก ์๋ ค์ง ์ฑ๊ณต์ ์ธ ๋ฐฐํฌ๊ฐ ์๋ ์ง์ค์ ์์ค๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ helm ์ฐจํธ์ ์์คํ ์ ๊ธฐ์กด ์ํ ๊ฐ์ ๋จ์ํ ์๋ฐฉํฅ ์ฐจ์ด ์ฌ์ผํฉ๋๋ค.
์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ๋ณด๊ณ ์์ต๋๋ค. ์ฌํ ๋จ๊ณ :
helm install
๋ฐฐํฌ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ค์น ํ ์ฐจํธhelm install
์ ์ฐจํธ. ์ด๋ก ์ธํด ์ฐ๋ฆฌ๊ฐ ์๋์ ์ผ๋ก ์คํจํ๋๋ก ์ค์ ํ ๋ฐฐํฌ์ ๋กค๋ง ์
๋ฐ์ดํธ๊ฐ ๋ฐ์ํฉ๋๋ค.kubectl
์ฌ์ฉํ์ฌ ํ์ธ)helm install
์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ์๋ ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. "์ด๋ฆ์ด ___ ์ธ ์์ ์์"์๋ณด๊ณ ํฉ๋๋ค. ์ด๋ฆ์ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค์ ์ด๋ฆ์
๋๋ค.kubectl
์ฌ์ฉํ์ฌ ์์ฌ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํฉ๋๋ค. ์ด์ helm install
๊ฐ ์๋ํฉ๋๋ค.์ฐจํธ์ ์๋ก ๋์
๋ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๋ก helm install
์ ๋ํ ์ฒซ ๋ฒ์งธ ์๋๋์ด ์ํ๊ฐ๋์ง ์์์ผํฉ๋๋ค.
@ rbair23 ์ฐ๋ฆฌ๋ ์ด์ ์ ์๋ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค. kubectl apply๋ฅผ ์์ ํ๊ณ ๋ก์ง์ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ด๋ํ์ฌ ์ ์ธ์ ๊ฐ์ฒด ๊ด๋ฆฌ ์ํ ๋ฅผ
# 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 upgrade --atomic
๊ทธ๋ฌ๋ฉด ๋ซ์๋ ์์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Helm 2.13.0์ด ๊ทธ๋ฆฌ ๋ฉ์ง ์์ ์ผ๋ฉดํฉ๋๋ค.
์ด ๋ฒ๊ทธ๋ ๋ฆด๋ฆฌ์ค์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ CI๋ฅผ ์ค๋จํฉ๋๋ค.
์์ ์ฐจํธ : https://github.com/distorhead/ex-helm-upgrade-failure
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
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
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๊ณผ ๋์ผํฉ๋๋ค. ์ฐจํธ๊ฐ ์๋ชป๋๋ฉด ์ค์นํ์ง ์์์ต๋๋ค.
์ค๋ฅ์ ์ด์ ์ํ๋ก ๋กค๋ฐฑํ๊ฑฐ๋ ์ฑ๊ณต์ ๊ฒฝ์ด๊ธฐ ์ฐจํธ๋ฅผ ์
๋ฐ์ดํธํ์ญ์์ค.
์ด๊ฒ์ ๋ด๊ฐ์ด ๋ฌธ์ ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋ก์ธ์ค์ ๋๋ค (์ง๊ธ๊น์ง๋ ์๋ฌด๋ฐ ์ฌ๊ณ ์์ด ๋งค๋ฒ ์๋ํ์ง๋ง ์ด์จ๋ ์กฐ์ฌํ์ญ์์ค).
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
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
DEPLOYED
์์ SUPERSEDED
ํ๊ณ ํ์ผ์ ์ ์ฅํฉ๋๋ค.helm upgrade
๋ค์ ์๋ํ์ญ์์ค. ์ฑ๊ณตํ๋ฉด ์๋ฃ์
๋๋ค!
Error: UPGRADE FAILED: "fetlife-web" has no deployed releases
FAILED
์์ DEPLOYED
kubectl -n kube-system edit cm fetlife-web.v381
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 ๋ฆด๋ฆฌ์ค ๋๋ ์คํ์ค์ธ ๋ฐฐํฌ๋ฅผ ์ญ์ ํ์ง ์๊ณ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๊ฒฌ์ ์ถ๊ฐํ๋ ค๊ณ ํ์ฌ ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ๋์์ต๋๋ค.
๊ทธ๋์ ๋ค์ ๋จ๊ณ๋ก ๋ฌธ์ ๋ฅผ ์ฌํํ์ต๋๋ค.
test-chart-failure
์ฐจํธ๋ฅผ ์ค์นํฉ๋๋ค.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
๋ฅผ ์คํํ์ง ์๊ณ ํฌํธ๋ฅผ ๋ฒํธ๋ก ์์ ํ ํ ์
๊ทธ๋ ์ด๋ ํ ์์์์ต๋๋ค.
helm history test-chart-failure
์คํจํ ๊ฐ์ ํ์ ์ฐพ์์ต๋๋ค.kubectl delete cm -n kube-system test-chart-failure.v2
ํน์ ๊ฐ์ ์ ๊ตฌ์ฑ ๋งต์ ์ญ์ ํ์ต๋๋ค.helm upgrade
์คํ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๋ด๊ฐ์ด ๋ฌธ์ ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋ก์ธ์ค์ ๋๋ค (์ง๊ธ๊น์ง๋ ์๋ฌด๋ฐ ์ฌ๊ณ ์์ด ๋งค๋ฒ ์๋ํ์ง๋ง ์ด์จ๋ ์กฐ์ฌํ์ญ์์ค).
helm list
ํ๊ณ ์ํฅ์๋ฐ๋ ์ฐจํธ์ ์ต์ ๋ฒ์ ์ ์ฐพ์ต๋๋ค.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
DEPLOYED
์์SUPERSEDED
ํ๊ณ ํ์ผ์ ์ ์ฅํฉ๋๋ค.helm upgrade
๋ค์ ์๋ํ์ญ์์ค. ์ฑ๊ณตํ๋ฉด ์๋ฃ์ ๋๋ค!Error: UPGRADE FAILED: "fetlife-web" has no deployed releases
๋ง์ง๋ง ๋ฒ์ ์ ์ํ๋ฅผ
FAILED
์์DEPLOYED
kubectl -n kube-system edit cm fetlife-web.v381
helm upgrade
๋ค์ ์๋ํ์ญ์์ค. ๋ค์ ์คํจํ๋ฉด ํ ์ด๋ธ์ ๋ค์ง์ต๋๋ค ...