helm version
์ถ๋ ฅ :
$ helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
kubectl version
์ถ๋ ฅ :
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
ํด๋ผ์ฐ๋ ์ ๊ณต ์ ์ฒด / ํ๋ซํผ (AKS, GKE, Minikube ๋ฑ) : Amazon
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง :
๋ช ๋ฒ์ ์ค๋จ ๋ ๋ฐฐํฌ ํ์ helm (๋๋ tiller)์ด ์ค๋จ๋๊ณ ๋ชจ๋ ํ์ ๋ฐฐํฌ (๊ณ ์ ๋์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด)๊ฐ ๋ค์ ์ค๋ฅ๋ก ์ข
๋ฃ๋ฉ๋๋ค. app-name has no deployed releases
์ฌ์์ฐ ๋ฐฉ๋ฒ :
์ฐ๋ฆฌ๋
spec:
revisionHistoryLimit: 1
ํ์ง๋ง ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฒฝ๋ก A :
๊ฒฝ๋ก b :
์๋
ํ์ธ์. ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? ํน์ helm upgrade --install
๋ฅผ ์ฌ์ฉํ๊ณ ๊ณ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ฐฐํฌ๊ฐ ์ค๋จ๋์์ ๋ ๋ฐฐํฌ ์ํ๋ ์ด๋ป๊ฒ๋ฉ๋๊น ( helm ls
)-์๋ง๋ Failed
์ผ๊น์?
์ด ๊ฒฝ์ฐ helm delete --purge <deployment>
๊ฐ ํธ๋ฆญ์ ์ํํด์ผํฉ๋๋ค.
์๋
ํ์ธ์, ์ ๋ณด๋ฅผ ๋์ณ์ ์ฃ์กํฉ๋๋ค.
์, helm upgrade --install
์, ๋ฐฐํฌ๋ Failed
์์ํ ์ ์ง๋ฉ๋๋ค.
์ํ๊น๊ฒ๋ helm delete --purge <deployment>
์ (๋) ์ฌ๊ธฐ์์ ์ ํ ์ต์
์ด ์๋๋๋ค. ๊ทธ ๋๋ฌธ์ ํ๋ก๋์
์๋น์ค๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. :)
๋ฌธ์ ๋ 3 ํ ์ฐ์ ์คํจ ํ helm์ด ํ๋ณต ํ ์์๋ ์ด์ ์ ๋๋ค.
๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ์ง ์๊ณ ์ ๋ ฌํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ --force
--force
๋ฌด์์? ~ helm upgrade --install
?
๊ทธ๋ ๋ค๋ฉด ์์ ๋ฌธ์ ๊ฐ ์ค์ ๋ก ์์๋๋ ๊ธฐ๋ฅ์ด๋ฉฐ ๋ชจ๋ ๋ฐฐํฌ์ --force
๋ฅผ ์ฌ์ฉํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. -๊ทธ๋ ๋ค๋ฉด ๊นจ์ง ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ ๋ก ๋ฐฐํฌํ๋ค๋ ์๋ฏธ์
๋๊น?
์, ๋ฌผ๋ก helm upgrade --install
:)
์, ๋ชจ๋ ๋ฐฐํฌ์ --force
๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
--force
์ด (๊ฐ) ์์๋ ๋ฆด๋ฆฌ์ค๋ ๊ฐ์ ๋ก ๋ฐฐํฌํ๋ค๋ ์๋ฏธ์
๋๊น? -ํฌ๋๊ฐ ๋์ด์ง๊ณ ํญ์ ๋ค์ ์์๋๋ฉด ์ด์ ํฌ๋๋ฅผ ์ญ์ ํ๊ณ ์ ํฌ๋๋ฅผ ์์ฝํฉ๋๊น?
--force force resource update through delete/recreate if needed
delete
์กฐ๊ฑด์ ๋ฌด์์
๋๊น? ์ ํํ ์ด๋ป๊ฒ ์๋ํ๋์ง ์์ธํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด๋ฌํ ์ค์ํ ํ๋๊ทธ์ ๋ํด์๋ ์ค๋ช
์ด ๋๋ฌด ์งง์ต๋๋ค. ๋ด๋ถ์ ์ผ๋ก ์์ฒ ๊ฐ์ง ์์
์ ์ํ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
BTW ๋๋ ์ ๋ง๋ก ์ญ์ ๋ ์์ฐ ์๋น์ค๋ก ๋๋๊ณ ์ถ์ง ์์ผ๋ฏ๋ก --force
ํ๋๊ทธ๋ ๋์๊ฒ ์ต์
์ด ์๋๋๋ค.
์ ๋ง ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
์ค๋ฅ ๋ฉ์์ง๋ ์๋ชป๋์์ต๋๋ค.
app-name has no deployed releases
๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค ๊ฐ .
์ํ์ ์์ง๋ง,์ด ์ํ์์ Failed
์ ์กฐํ๋ :( ๊ทธ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ํ์ง ์์ต๋๋ค - ๋ด ๋ง์ ๊ณ ์ ํ์ฌ ๋จ์ง ๋์ ๋งค์ฐ ์์ ํฌ๊ธฐ์, ๋ฐฐํฌ ํด๋ณด์ธ์
๋ ์ด์ ๋์ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ์์ฐ์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐจํธ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋๋ฉฐ ๊ฐ์ ๋ก ์ค์นํ๋ ๊ฒ์ ์ํ ํด ๋ณด์ ๋๋ค. ์ด ์ค๋ฅ๋ Helm 3์๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ๋๋ ๋ ์์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํฌํจํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
storage.go : 136์์ "status": "deployed"๋ฅผ ์ ๊ฑฐํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฐธ์กฐ : https://github.com/helm/helm/pull/6933/commits/638229c3d3646e78d0fd5157309f8aeadfd01af1
์๊ฐ์ด ์์ผ๋ฉด Pull Request๋ฅผ ์์ ํ๊ฒ ์ต๋๋ค.
์ ์๋ฆฌ์์๋ ์ฝ๋๋ ์๋ ์ ํํ์ต๋๋ค. ํ์ฌ ์ํ์ ๊ด๊ณ์์ด ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์์๋ ์ํ์ ๊ด๊ณ์์ด Helm์ด ์
๊ทธ๋ ์ด๋ ํ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฐพ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์์ status: deployed
์ ๊ฑฐํฉ๋๋ค. ์ผ์์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ์ฐํํ์ง๋ง ์์ผ๋ก ๋ ํฐ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค.
์ด ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ ๋ helm history
์ ์ถ๋ ฅ์ ์ ๊ณต ํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค. ๋ฆด๋ฆฌ์ค ์์ฅ์ "๋ฐฐํฌ ๋จ"์ํ์ ๋ฆด๋ฆฌ์ค๊ฐ์๋ ๊ฒฝ์ฐ ์ข
๋ฃ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋ ์ ์ฉํฉ๋๋ค.
์ ํด๋ฌ์คํฐ์ ์ฒ์ ๋ฐฐํฌ ํ ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. --force
๋ ์ฌ์ฉํด์ผํฉ๋๊น?
--purge
์ต์
์ ์ฌ์ฉํ์ง ์๊ณ ์ด์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
helm delete --purge <release-name>
Helm ๋ฒ์
Client: &version.Version{SemVer:"v2.15.X"}
Server: &version.Version{SemVer:"v2.15.X"}
์ด ๋ฌธ์ ๋ ๋ฐ์ํฉ๋๋ค.
๋ฟก ๋นต๋จ
๋๋ ์ด๊ฒ์ helm3๋ก ์ณค๋ค. ์ด๊ฒ์ด ๋ฐ์ํ๋ฉด ๊ธฐ๋ก์ ์์ ํ ๋น์ด ์์ง๋ง ์๋ 1 ์ดํ๋ก ๊นจ์ง k8s ๋ฆฌ์์ค๊ฐ ์์ต๋๋ค.
๋ฒ์์ ์ ๋ง ์ฌ์ ๋ณด์ ๋๋ค.
--atomic ํ๋๊ทธ๋ ๋ด (CI / CD) ์๋๋ฆฌ์ค์์ ์์ผ๋ก ๋์๊ฐ ์ ์์ต๋๋ค. ์ฒ์ ์คํจํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ํ ๋ฐ์ํ์ง ์์ ๊ฒ์ฒ๋ผ ์์ ํ ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. delete
๋๋ --force
์ ์์ต๋๋ค. ํนํ ์๊ตฌ ๋ณผ๋ฅจ์ด์๋ ๊ฒฝ์ฐ ํนํ ๊ทธ๋ผ ํ๋ ๋์ ๋ณด๋๋ฅผ ๋ชจ๋ ์์ด ๋ฒ๋ ธ์ต๋๋ค. ๋ค์ :)
์ ๋ฐ์ดํธ : ๋ด ๊ฒฝ์ฐ btw๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํฉ๋๋ค.
Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
๊ทธ๋ผ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ์ง ์์๋
@ alex88 helm history
์ ์ถ๋ ฅ์ ์ ๊ณต ํ ์ ์์ต๋๊น? ๋ค๋ฅธ ์ฌ๋๋ค์ด์ด ์ฌ๊ฑด์ ์ด๋ป๊ฒ ๊ณต๊ฒฉํ๋์ง ์์์ผ ๊ทผ๋ณธ ์์ธ์ ํ์
ํ๊ณ ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์์ต๋๋ค.
@bacongobbler ๋๋ ๋ช ๋ฒ ์๊ตฌ ๋ณผ๋ฅจ์ ์์ด ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ helm์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ์ ๋ง๋ก ์ ์คํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์์ ๋ ๊ฒ์๋ณด๊ณ ์ถ์์ต๋๋ค (์๋ง๋ ๋ด ์๋ชป์ ๋๋ค)
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
4 Wed Dec 4 02:45:59 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
5 Mon Dec 9 12:27:22 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
6 Mon Dec 9 12:33:54 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
7 Mon Dec 9 12:36:02 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
8 Mon Dec 9 13:06:55 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
9 Mon Dec 9 13:38:19 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
10 Mon Dec 9 13:38:51 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
11 Mon Dec 9 13:41:30 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
12 Mon Dec 9 13:56:01 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
13 Mon Dec 9 15:15:05 2019 failed grafana-4.1.0 6.5.0 Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
๊ธฐ๋ณธ์ ์ผ๋ก ์ผ๋ถ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฌ๋ฌ ๋ฒ ์๋ํ์ผ๋ฉฐ ๋ฐฐํฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋์ ํ๊ฒฝ ๋ณ์๊ฐ ์ด์จ๋ ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ๊ณ์ ์ค๋ฅ๋ฅผ ๋ฌด์ํ์ต๋๋ค.
๋ชจ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ๊ฐ ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋ฆด๋ฆฌ์ค 1, 2, 3์ ์ด๋์ ์์ต๋๊น?
๋ชจ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ๊ฐ ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋ฆด๋ฆฌ์ค 1, 2, 3์ ์ด๋์ ์์ต๋๊น?
ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๊ณ (์ฌ๋ฌ ๋ฒ ๋ณ๊ฒฝํด์ผ ํจ) ๋งค๋ฒ ์ ๊ทธ๋ ์ด๋๋ฅผ ์คํํ๋ฉด ํ๊ฒฝ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋์์ง๋ง ์๊ตฌ ๋ณผ๋ฅจ ์ค๋ฅ๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํ์ต๋๋ค.
์ ๋ฐ์ดํธ : btw I 'm using
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
์ด์ ๋ฆด๋ฆฌ์ค์ ๊ด๋ จํ์ฌ ์๋ง๋ helm์ ๊ทธ์ค 10 ๊ฐ๋ง ์ ์งํฉ๋๋ค.
Helm3 : istio๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ ๋์ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ์ต๋๋ค. ์ด์ ํ ํ๋ฆฟ์ ์์ ์ค๋ฅ๊ฐ ์์ ๋์๋๋ฐ๋ ๋ค์ ๋ฐฐํฌ ํ ์ ์์ต๋๋ค. istio-ingress ์๋น์ค์ ๊ด๋ จ๋ ELB๋ ์ญ์ ๋๋ฏ๋ก ํ๋ก๋์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
์ด๊ธฐ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ๋ก ๋๋ ๋ ๋ ผ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ์ํ ํฅํ ์์ ์ด ์์ต๋๊น?
๋ค์ด ํ์์ด ํ์ฉ๋์ง ์์ผ๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น?
% helm upgrade prometheus-thanos --namespace metrics -f values.yaml .
Error: UPGRADE FAILED: "prometheus-thanos" has no deployed releases
% helm install --atomic prometheus-thanos --namespace metrics -f values.yaml .
Error: cannot re-use a name that is still in use
% helm version
version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}
๋ค์ด ํ์์ด ํ์ฉ๋์ง ์์ผ๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น?
์ง๊ธ์ helm์ ์ฌ์ฉํ์ฌ ํ ํ๋ฆฟ์ ์์ฑํ๊ณ ์๋์ผ๋ก ๋ก์ปฌ์ ์ ์ฅํ๊ณ ์ ์ฉํฉ๋๋ค.
--atomic ํ๋๊ทธ๋ ๋ด (CI / CD) ์๋๋ฆฌ์ค์์ ์์ผ๋ก ๋์๊ฐ ์ ์์ต๋๋ค. ์ฒ์ ์คํจํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ํ ๋ฐ์ํ์ง ์์ ๊ฒ์ฒ๋ผ ์์ ํ ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
@ henrikb123 ์๋ ํญ์ --atomic
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ง ์๋ --atomic
ํ๋๊ทธ์ ํจ๊ป ๋์ผํ ๋ช
๋ น์ ์คํํฉ๋๋ค. ๊นจ์ง ๊ฒ์
๋๋ค. ์ฐธ๊ณ ๋ก ์ต์ Helm ๋ฒ์ -> 3.0.2๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@ alex88 helm ๊ธฐ๋ก์ ์ถ๋ ฅ์ ์ ๊ณต ํ ์ ์์ต๋๊น? ๋ค๋ฅธ ์ฌ๋๋ค์ด์ด ์ฌ๊ฑด์ ์ด๋ป๊ฒ ๊ณต๊ฒฉํ๋์ง ์์์ผ ๊ทผ๋ณธ ์์ธ์ ํ์ ํ๊ณ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์์ต๋๋ค.
@bacongobbler ๋ฌธ์ ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด @ henrikb123์ด ์ฌ๊ธฐ ์์ ๋งํ๋๋กํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? @ henrikb123์ด ์ง์ ํ ๊ฒ์ฒ๋ผ ์ญ์ฌ๋ ์์ ํ ๋น์ด ์์ต๋๋ค. ์ ๋ ํ์ธํ ์ ์์ต๋๋ค. ์ ๋ฐ๋ณด์ธ์ :
$ helm upgrade --install --cleanup-on-fail --reset-values --force --namespace teleport --values values.test.yaml teleport ./
Release "teleport" does not exist. Installing it now.
Error: Secret "teleport-secrets" is invalid: metadata.labels: Invalid value: "helm.sh/chart:teleport-1.0.0app.kubernetes.io/managed-by": a qualified name must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')
$ helm history teleport
Error: release: not found
$ helm upgrade --install --cleanup-on-fail --reset-values --force --namespace teleport --values values.test.yaml teleport ./
Error: UPGRADE FAILED: "teleport" has no deployed releases
๋๋ ๋ํ Istio์ ํจ๊ป ์ด๊ฒ์ ๋ง๋ฌ์ต๋๋ค.
1.4.3์ Istio ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ Kubernetes API ์๋ฒ์ ๋๋ฌ ํ ์์๋ ๊ฒฝ์ฐ ์ค์น ์คํ ์์ ์ค ํ๋๊ฐ ์คํจํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ ์ ๋จ๊ฒจ๋๊ณ Helm ๋ช ๋ น์ ๋ค์ ์คํํ๋ ค๊ณ ํ๋ฉด ์์ ์ด ์ด๋ฏธ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์คํจํฉ๋๋ค. ์์ ์ ์ญ์ ํ๊ณ , ์์ ํ๊ณ , ์ ๊ทธ๋ ์ด๋๋ฅผ ๋ค์ ์คํํ๋ ค๊ณ ํ์ง๋ง ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ์ด์ ๋งํ์ต๋๋ค.
(๊ทธ๊ฒ์ ๋ํ ์ง๋ฌธ์ด ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์์ ํ ์คํจํ ๋ฆด๋ฆฌ์ค ์ํ๋ก ๋ค์ด๊ฐ ์์๋ ๋ฐฉ๋ฒ์ ๋๋ค.)
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
10 Tue Jan 14 09:17:00 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
11 Tue Jan 14 09:22:21 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
12 Tue Jan 14 09:23:10 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
13 Tue Jan 14 09:25:58 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
14 Tue Jan 14 09:35:21 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
15 Tue Jan 14 09:38:08 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
16 Tue Jan 14 14:02:47 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
17 Tue Jan 14 14:19:44 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
18 Tue Jan 14 14:33:36 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
19 Tue Jan 14 14:36:59 2020 failed istio-1.4.3 1.4.3 Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
์ด๊ฒ์ Helm 3.0.2์ ๋๋ค.
IMO ์ด๊ฒ์ ์ต๋ํ ๋นจ๋ฆฌ ์์ ํด์ผํ๋ ์ค์ํ ๋ฌธ์ ์ ๋๋ค. ๋ฒ์ 2๋ถํฐ ๋์ผํ ๋ฌธ์ ์ ๋ํด ์ด๋ ค์๋ ๋ค๋ฅธ ๋ง์ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ๋ณด์๊ณ ์ง๊ธ๊น์ง ์์ ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด @ henrikb123 ์ด ์์ ์ ์๊ฒฌ์์ ๋งํ๋๋ก ๊ฐ๋ฐ์์๊ฒ ์์ฒญํฉ๋๋ค. ๊ทธ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๋ ๋งค์ฐ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ชจ๋ Helm ๋ฒ์ (2.xx ๋ฐ 3.xx)์ผ๋ก ํ ์คํธ ํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๋ค ๋ชจ๋์์ ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ๊ฑฐ์ ํ์ ํฉ๋๋ค.
์๋ง๋ --atomic
์ (๋ช
๋ น ์ค ์ธ์๊ฐ ์๋) ์ด๋ ค์ด ์๊ตฌ ์ฌํญ์ด์ด์ผํฉ๋๋ค. --cleanup-on-fail
์ฒ๋ผ ์๋นํ ์ค๋ณต๋ฉ๋๋ค. ์ฐจ์ด์ ์ --cleanup-on-fail
๊ฐ --atomic
์ฒ๋ผ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์์๋ค๋ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ์์ฐ ๊ณผ์ ์์์ด ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ผ๋ฉฐ ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ต์
์ด ์๋๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋์ STATUS: DEPLOYED
๋ ์ด๋ธ์ ๊ฐ๋๋ก ์ต์ FAILED ๊ตฌ์ฑ ๋งต์ ํจ์นํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค.
kubectl -n kube-system patch configmap app-name.v123 --type=merge -p '{"metadata":{"labels":{"STATUS":"DEPLOYED"}}}'
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๋ง์ง๋ง FAILED ๊ฐ์ ์ด ์ค์ ๋ก kubernetes์ ์ํด ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋์๋ค๊ณ ํ์ ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ป๊ฒ์ด ์ํ์ ๋ค์ด๊ฐ์ต๋๊น?
๊ธฐ๋ณธ์ ์ผ๋ก Kubernetes๋ helm ์๊ฐ์ด ์ด๊ณผ ๋ ํ์๋ ์ฌ์ ํ ์์ ์ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ํ์ FAILED ์ ๊ทธ๋ ์ด๋๋ฅผ ๋ฌด์ํ์ต๋๋ค.
ํนํ Helm 2๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ tiller-deploy ๋ฐฐํฌ์ TILLER_HISTORY_MAX=20
์ค์ ํ์ต๋๋ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ชจ๋ RollingUpdate ์
๊ทธ๋ ์ด๋์ helm upgrade --wait --timeout 1080
๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ helm ์
๊ทธ๋ ์ด๋๊ฐ ์๊ฐ ์ด๊ณผ๋๊ธฐ ์์ํ์ง๋ง Kubernetes๊ฐ ์ฌ์ ํ ์ฑ๊ณต์ ์ผ๋ก ์์ ์ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ ๋๋ผ์ง ์์์ต๋๋ค. 20 ๊ฐ์ ์
๊ทธ๋ ์ด๋ ์๊ฐ์ด ์ด๊ณผ ๋ ํ (์ค๋), ๋์ app-name has no deployed releases
์ด (๊ฐ) ํ์๋์ด ๋ ์ด์ ๋ฐฐํฌ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋๋์ต๋๋ค.
ํจ์น๊ฐ ์๋ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ Helm์ด ์๋ง๋ ๋ค์๊ณผ ์ ์ฌํ ์์ฒญ์ ์ฌ์ฉํ์ฌ configmap์ ์์ฒญํ๊ณ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์ ๊ธฐ ๋๋ฌธ์ configmap์ STATUS ๋ ์ด๋ธ์ ํจ์นํด์ผํ๋ค๋ ๊ฒ์ ์์ ๋์ต๋๋ค.
kubectl -n kube-system get configmap -l NAME=app-name,STATUS=DEPLOYED
configmap yaml์๋ณด๊ณ ๋ค์ ๋ ์ด๋ธ์ ๋ฐ๊ฒฌํ์ ๋ ๋จ์๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค.
$ kubectl -n kube-system describe configmap app-name.v123
Name: app-name.v123
Namespace: kube-system
Labels: MODIFIED_AT=1579154404
NAME=app-name
OWNER=TILLER
STATUS=FAILED
VERSION=123
Annotations: <none>
Data
====
release:
----
H4sIAAAAAAAC...snipped...
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ https://github.com/helm/helm/issues/5595#issuecomment -552743196๊ณผ ์ผ์นํฉ๋๋ค.
@bacongobbler ์คํจํ ์ํ๊ฐ๋๋ ๋ฐฉ๋ฒ์ ๊ถ๊ธํดํ๋ ๋์ ์คํจํ์ง ์์์ผํ๋ ์คํจํ ์ค์น ์ ๊ทธ๋ ์ด๋์ ๋ํ ๊ท์คํ ์์ ์ฌํญ์ ๊ณ ๋ คํด์ผํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค์ ๋ก, ๊ทํ์ ์ฐ๋ ค์ ๋ตํ๊ธฐ ์ํด ์๊ฐ ์ด๊ณผ๋ ๋ฆด๋ฆฌ์ค ์คํจ์ ์ข์ ์ด์ ์ ๋๋ค. ๋ฆด๋ฆฌ์ค๋ ์ค๋จ๋๋ฉฐ ์ ๊ทธ๋ ์ด๋ํ๊ณ ์๊ฐ ์ด๊ณผ๋ก ์คํ๋ ๋ ๋กค๋ฐฑ ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ํด๋ ์์ ์ํด ๋์ ์ผ๋ก ์์ฑ ๋ ๋ณผ๋ฅจ์ด ์์ต๋๋ค. ์ฐจํธ๋ฅผ ์ญ์ ํ์ฌ ์ฒญ๊ตฌ๋ฅผ ์ญ์ ํ๋ฉด ๋ณผ๋ฅจ ๋ ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋ฉ๋๋ค . ๊ทธ๊ฒ์ ๋น์ ์ด ๊ทธ๊ฒ์ ์ข์ํ๋ ๋ฐฉ์์ด ์๋๋๋ค. ๋์ ๋ค๋ฅธ ๋ง์ ๊ฐ๋ฐ์๋ค์ ๋ช ๋ฌ ๋์ ๊ฐํ ์์ผ๋ฉฐ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ฟผ๋ฆฌ์์ status: deployed
๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ง์์ ๋ค์ง ์์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ํ๊ฐ ๋ฐฐํฌ๋์๊ฑฐ๋ ์คํจํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ค์ ๋ก ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ ํ๋ ์ ๋ ์ด๋ธ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ๊ทธ๊ฒ์ ์ค์ ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฌ๋ถ์ด ์ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์
๊ทธ๋ ์ด๋ ํ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ป๊ณ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฌด๊ฒ๋ ์์ผ๋ฉด ์คํจํ ๋ฆด๋ฆฌ์ค๋ฅผ ๋์ ํ์ธํด์ผํฉ๋๋ค. ๋๋ ์ต์ ๋ ์ด๋ธ์ ์ง์ ํ์ํ๋ ์ ๋ ์ด๋ธ์ ์ฌ์ฉํ์ญ์์ค.
_ ์ด์ ๋ํ ์ฌ๋ฌ๋ถ์ ์๊ฒฌ์ ๋ฃ๊ณ ๊ธฐ์ฉ๋๋ค ._
์๋ฒฝํ ์ฝ๋ @AmazingTurtle.
์ด ๋ฌธ์ ๊ฐ ์ด๋ฏธ ์ธ๊ธ๋์๋์ง ํ์คํ์ง ์์ง๋ง ์ฐจํธ์ ์ฒซ ๋ฒ์งธ ์ค์น๊ฐ ์ด๋ค ์ด์ ๋ก ๋ ์คํจํ๋ ๊ฒฝ์ฐ์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค (ํนํ ์ฐจํธ์์ ๋ฐ๋ณตํด์ผ ํ ์์๋ ์ฒ์ ์ฐจํธ ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ). ์คํ์์ํ ๊ตฌ์ฑ).
์ด ๊ฒฝ์ฐ CLI ์ฌ์ฉ์๋ฅผ์ํ ์ ์ผํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋น๋ฐ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฆด๋ฆฌ์ค ์ถ์ ๋น๋ฐ์ ์ญ์ ํ๋ ๊ฒ๋ฟ ์๋๋ผ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์์ ์์ฑ ๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋๋ค (Helm์ ๋ฆฌ์์ค ์์ ๊ถ ๊ฒ์ฌ ์คํ์ ๋ฐฉ์งํ๊ธฐ ์ํด).
์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก ์์ฑํ ๋๊ตฌ์ ์ค์ ํจ์์ ๋๋ค.
package foo
import (
"helm.sh/helm/v3/pkg/action"
"helm.sh/helm/v3/pkg/release"
"helm.sh/helm/v3/pkg/storage/driver"
)
// DangerouslyApplyRelease allows installing or upgrading any release from a failed state,
// but does not enforce Helm's standard resource ownership checks.
func DangerouslyApplyRelease(cfg *action.Configuration, rel *release.Release) error {
// Forcibly mark the last release as successful and increment the version
rel.Info = &release.Info{
Status: release.StatusDeployed,
}
rel.Version++
var err error
// Attempt to create the release
err = cfg.Releases.Create(rel)
// If release already exists, update it
if err == driver.ErrReleaseExists {
err = cfg.Releases.Update(rel)
}
return err
}
@jlegrone helm delete --purge
(v2) ๋๋ helm uninstall
(v3) ์ฌ์ฉ๋ ๋ชจ๋ ์คํจํ ๋ฆด๋ฆฌ์ค์ด๋ฏ๋ก ์๋ํฉ๋๊น?
@jlegrone ์ด ์ง์ ํ ๊ฒ์ ์ฌ์ค์
๋๋ค.
@hickeyma ๊ทํ์ ์ ์์ ์๋ ํ ์์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค. ํ์ง๋ง ํ์คํ ํด๊ฒฐ์ฑ
์ด ํ์ํฉ๋๋ค.
์ง๋ 2 ๋
๊ฐ ์ ํดํ ๋ฒ๊ทธ์ด๋ฉฐ helm์ ๊ณ ์น์ง ์์ ๊ฒ์
๋๋ค.
helm delete
์ ๋๋ถ๋ถ์ ํ๋ก๋์
์ผ์ด์ค์์ ํ์ฉ๋์ง ์์ต๋๋ค.
helm3์์๋ ์ํธํ๋์ด ์์ผ๋ฏ๋ก kubectl edit secret sh.helm.release....
์ (๋ฅผ) ์ฌ์ฉํ ์ ์์ต๋๋ค.
helm rollback <latest-successful>
์ ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ผ๋ฟ์
๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก HISTORY_MAX = 10์ด ์๊ณ ์๋ํ๋๋ก 10 ๋ฒ ์๋ํ๋ค๋ฉด ์์ ํ ์์ด๋ฒ๋ฆฐ ๊ฒ์ ๋๋ค ...
์ค์น์ ์ ๊ทธ๋ ์ด๋์ ๋ํ ๋ ผ๋ฆฌ๊ฐ์๋ ๊ฒฝ์ฐ sh.helm.release ..... v * ๋น๋ฐ์ ์ญ์ ํ ์ ์์ต๋๋ค.
ํฌ๊ตฌ๋ ์ฃฝ๊ฑฐ๋ ๊ณ ์ณ์ผํฉ๋๋ค
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค.
helm3์ ๋น๋ฐ์ ๋ ์ด๋ธ์ ์ค์ ํฉ๋๋ค.
kubectl get secrets --show-labels | grep sh.helm.release.v1
....
sh.helm.release.v1.helm-must-die.v34 helm.sh/release.v1 1 13h modifiedAt=1580326073,name=helm-must-die,owner=helm,status=failed,version=34
sh.helm.release.v1.helm-must-die.v35 helm.sh/release.v1 1 13h modifiedAt=1580326228,name=helm-must-die,owner=helm,status=failed,version=35
sh.helm.release.v1.helm-must-die.v36 helm.sh/release.v1 1 1h modifiedAt=1580370043,name=helm-must-die,owner=helm,status=failed,version=36
...
์ต์ kubectl edit secret sh.helm.release.v1.helm-must-die.v36
ํ๊ณ ๋ ์ด๋ธ status = deployed๋ฅผ ์ค์ ํ์ญ์์ค.
์ด์ ๋ฆด๋ฆฌ์ค (v35)์ ๊ฒฝ์ฐ ๋ ์ด๋ธ status = superseded๋ฅผ ์ค์ ํฉ๋๋ค.
๋ค์ helm upgrade --install ...
์๋ํฉ๋๋ค
@ kosta709 ๋ชจ๋ CAPS ๋ ์ด๋ธ์ด์๋ kube-system ๋ค์ ์คํ์ด์ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ConfigMaps๋ก ์ ์ฅํ๋ Helm2์ ๋ํ ๋ด ๋ฐ๊ฒฌ๊ณผ ์ ์ฌํ๊ฒ, Helm3์ ์ด์ ๋ ์ด๋ธ์ด ๋ชจ๋ ์๋ฌธ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์คํ์ด์ค์ ๋ฆด๋ฆฌ์ค๋ฅผ Secrets๋ก ์ ์ฅํฉ๋๋ค.
๋ฐ๋ผ์ Helm3์ ๊ฒฝ์ฐ ์ฝ๊ฐ ๋ค๋ฅธ kubectl patch ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
kubectl -n app-namespace patch secret app-name.v123 --type=merge -p '{"metadata":{"labels":{"status":"deployed"}}}'
์ด๋ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ๋ ผ์ ํ ํ์๊ฐ ์์ ์ผ๋ฉดํฉ๋๋ค. ์ ํ์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์ต์ฐ์ ๊ณผ์ ์ ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋์์ง์ ๋ํ ์๋ฆผ (ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ฌด์) :
๋ฆด๋ฆฌ์ค๊ฐ ์ฒ์ ๋ฐฐํฌ ๋ ๋ ์คํจํ๊ฑฐ๋ ์ถฉ๋ถํ ๋ฆด๋ฆฌ์ค๊ฐ ๋ง์ง๋ง ์ฑ๊ณต์ ๊ธฐ๋ก์์ ๊ต์ฒดํ์ง ๋ชปํ ๊ฒฝ์ฐ ์๋ ๊ฐ์ ์์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
์ฐ์ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์์ Helm์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ํจํด์ด๊ฑฐ๋ ์ ์ด๋ ์ํ๋ ํจํด ์ผ ์ ์์ผ๋ฏ๋ก ์ด๋ ์๋ํ์ง ์์ต๋๋ค.
๋๋ ์์ ํ ๋์ํ์ง๋ง ์ต์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ช ํํ๊ฒ ๋ฌธ์ํํ๊ณ ์ถ์์ต๋๋ค.์ด ์ํ์ ๋ค์ด๊ฐ๋ฉด ๋ฆด๋ฆฌ์ค๋ฅผ ํฌ๊ธฐํ๊ณ ์ค๋จํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ์ต์ ์ด์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค๋จ์ ๋ฐฉ์งํ๊ธฐ์ํ ํจ์น์ ํจ๊ป helm --wait
์ฌ์ฉ์ ์ค๋จํ๊ณ ๋์ ์์ฒด ํด๋ง ๋ก์ง์ ์์กดํ์ฌ ๋ฆด๋ฆฌ์ค๊ฐ ์ฑ๊ณตํ๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ ๋ง์ ์์
์ด์ง๋ง ์ด์ ๋ ๋ ๋ง์ ๊ฐ์์ฑ์ ํ๋ณดํ์ฌ ๋ฆด๋ฆฌ์ค๊ฐ ์์๋ณด๋ค ์ค๋ ๊ฑธ๋ฆด ๋ ๋์์ด๋๋ฉฐ ์ ํ ์๊ฐ๋ณด๋ค ์ผ์ฐ ์ค๋ฅ๋ฅผ ๊ฐ์ง ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ด์ ๋ฒ์ ์ helm์์ ๋ฌธ์ ๊ฐ๋์ง ์์์ผ๋ฉฐ ๋ฐฐํฌ์ ์คํจํ์ง ์์์ผ๋ฉฐ kubectl์ ์คํ์ค์ธ ์๋น์ค๋ฅผ ํ์ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค.
์ด์ ๋จ์ํ helm upgrade -f app.yaml --namespace prometheus prometheus prometheus
์คํํ๋ ค๊ณ ํ๋๋ฐ Error: UPGRADE FAILED: "prometheus" has no deployed releases
์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง ์ด๊ฒ์ด ์ ํ์ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ ํ ์ ์์ต๋๋ค.
@zrsm ์ง๊ธํ๊ณ ์๋ ๊ฒ์ helm์ ์ฌ์ฉํ์ฌ yaml ํ์ผ์ ์์ฑํ๊ณ kubectl diff / dry-run์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ ์ฉํ๊ธฐ ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฆฌ ๋ณด๋ ๊ฒ์ ๋๋ค.
@zrsm ์ง๊ธํ๊ณ ์๋ ๊ฒ์ helm์ ์ฌ์ฉํ์ฌ yaml ํ์ผ์ ์์ฑํ๊ณ kubectl diff / dry-run์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ ์ฉํ๊ธฐ ์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฆฌ ๋ณด๋ ๊ฒ์ ๋๋ค.
๋ต์ฅ์ ๋ณด๋ด ์ฃผ์ ์ 2.15.1๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ์ง๋ง ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ~ / .helm ์ญ์ ์ ๊ฐ์ ์์ ์ ์๋ํ ๋ค์ kubectl์์ ํธ๋ฌ ์๋น์ค ๊ณ์ ์ ๋ค์ ์ด๊ธฐํ ํ ํ kubernetes์ ์ฐจํธ๋ฅผ ์ ์ฉ ํ ์์์์ต๋๋ค. . ์ค๋ ๋์ค์ helm 3๋ก ์ด๊ฒ์ ํ ์คํธํ๊ณ ์์ ์ฌํญ์ผ๋ก ๋ต์ฅ ํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ์ผ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ ํ์ธ์, ๊ทธ๋์ ์ด๊ฒ์ ํ ์คํธํ์ต๋๋ค ... ์ด์ ~ / .helm /์ ์ญ์ ํ ํ ๋ค์ ๋ช ๋ น์ ์ํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค ...
helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -
์ helm ๋ฒ์ ์ ์ค์นํ๊ณ ์๋น์ค ๊ณ์ ํญ๋ชฉ์ด ์์นํ์ง ์์ผ๋ฉด (๋ด ๋ ธํธ๋ถ์ ์ง์ฐ๊ณ ์ธ์ ๊ฐ ๋ณต์) ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๊ณ ์ด๊ฒ์ด ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋น์ ์๊ฒ๋ ํจ๊ณผ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด ๋ฒ๊ทธ๋ Helm 3์์ ์งํ ์ค์ ๋๋ค. ๊ณํ๋ ์์ ์ด ์์ต๋๊น?
๋ํ ์๊ฐ ์ด๊ณผ๋ก ์ธํด ์ ํด๋ฌ์คํฐ ๋ฐ ์ ๋ฐฐํฌ์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํด๋ฌ์คํฐ์ ์๋์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ์ ์ข์ํ์ง ์์ง๋ง ์ง๊ธ์ ์ด๊ฒ์ด ์ ์ผํ ์ต์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์ต๋ํ ๋นจ๋ฆฌ ํด๊ฒฐ๋๋๋ก ํ ์ ์์ต๋๊น?
์ด ๋ฌธ์ ๋ ๋๋ฌด ๋ต๋ตํด์ helm
์ฌ์ฉ์ ์ค๋จํด์ผํ๋ ์ด์ ์
๋๋ค.
๋๋ ๋์ํ๋ค. ์ด๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋ ๋ค. ๋๋ ๊ทธ๊ฒ์ ๊ณ ์น๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ํ์ด์ ๋น์ด ์.
๋๋ ๋์ํ๋ค. ์ด๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋ ๋ค. ๋๋ ๊ทธ๊ฒ์ ๊ณ ์น๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ํ์ด์ ๋น์ด ์.
๊ฐ์ฌํฉ๋๋ค. ํ์ด์ ๋น๋๋ค!
PR # 7653์ ๋ณด๋๋ก ์ฌ๋ฌ๋ถ ์ค ๋ช ๋ช ์๊ฒ๋ ๊ด์ฐฎ์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์์์ ์ค๋ช ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
๋ฉ์ธํ ์ด๋์ ๋ฐ์์์ด ์์ง ์ด๋ ค ์๋ค๋ ๊ฒ์ ๋ฏฟ์ ์ ์์ต๋๋ค.
cc @bacongobbler @mattfarina
helm delete --purge (v2) ๋๋ helm uninstall (v3)๋ ๋ชจ๋ ์คํจํ ๋ฆด๋ฆฌ์ค์ด๋ฏ๋ก ์๋ํฉ๋๊น?
@hickeyma ํญ์ ์๋๋๋ค; ์ด๋ helm ๋ฆด๋ฆฌ์ค ๋ฉํ ๋ฐ์ดํฐ ์์์ ๊ฒฐ๊ณผ ์ผ ์๋ ์์ผ๋ฏ๋ก ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ ๊ฑฐํ๋ฉด๋ก๋์ค์ธ ๋ฆฌ์์ค๊ฐ ์ญ์ ๋ ์ ์์ต๋๋ค.
๋๋ก๋ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ์ง ์์์ง๋ง ์๊ฐ ์ด๊ณผ ๋ฐ helm์ด ์คํจํ ๊ฒ์ผ๋ก ๋ ์ด๋ธ์ ์ง์ ํ๊ณ ๋ค์์ ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ์๋ ๊ฒ์ผ๋ก ํ์๋์ง๋ง ์ฑ์ด ์ค์ ๋ก ์์ ํ ์๋ํ๋ ๊ฒฝ์ฐ ์ฌ๋ฌ ๋ฒ ๋ฐ์ํ์ฌ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณ๊ฒฝํด์ผํ์ต๋๋ค. deployed
1์ ๋ผ๋ฒจ์ ์ง์ ํฉ๋๋ค. ํญ์ helm delete --purge (v2) or helm uninstall (v3)
ํ ์์๋ ๊ฒ์ ์๋๋๋ค.
@rimusz ๋ฆด๋ฆฌ์ค ๋ ์ด๋ธ์ ์ด๋ป๊ฒ ๋ณ๊ฒฝํฉ๋๊น?
@dudicoco helm v3 ์ต์ ๋ฆด๋ฆฌ์ค ๋น๋ฐ์ ์๋์ผ๋ก ํธ์งํ์ฌ์ด๋ฅผ ์๋ํํ๊ณ kubectl patch
๋งค๋ ฅ์ฒ๋ผ ์๋ํ๋ https://github.com/k14s/kapp ๋ก ์ด๋ํ์ต๋๋ค.
@rimusz ๊ทธ๊ฒ ๋ด๊ฐ ์๊ฐํ ๊ฒ์ ๋๋ค, ๊ฐ์ฌํฉ๋๋ค.
๋ํ # 7668์ helm 2์ ๋ํ ์์ ์ฌํญ์ ๋ฐฑ ํฌํ ํ์ง๋ง # 7653์ ๋ํ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ ,
--wait
๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์๊ฐ ์ด๊ณผ๋์์ผ๋ฉฐ ๋ง์ง๋ง์ผ๋ก ์คํ ์ค์
๋๋ค. ์ฌ์ ํ ์คํจ๋ก ํ์๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ดํ ๋ฐฐํฌ๋ ์คํจํฉ๋๋ค.
์ด๋ ๋ฆด๋ฆฌ์ค ์ํ๊ฐ ์ ๋ขฐํ ์์๋ ์ ๋ณด๊ฐ ์๋์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์์ฐ์์ ๋ง์ ์๋น์ค๋ฅผ ์ํด ํ์ฌ์์ k8s๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ ๋ฌ์ ๋ช ๋ฒ ๋์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ helm๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค ( " * ์๋ ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค.").
์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ฒ์ ์ helm (2.7์์ 3.0.3๊น์ง)์ ์ฌ์ฉํ์ต๋๋ค.
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
์ด๋ก ์ธํด ์ฌ์ฉ์ (ํด๋ฌ์คํฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๋ ๊ฐ๋ฐ์)์๊ฒ ๋ง์ ๋ถํธ ํจ์ด ์๊น๋๋ค.
๋งค๋ฒ ๊ณต๊ฒฉ ํ ๋๋ง๋ค ์ต์ ๋ฆด๋ฆฌ์ค ๋น๋ฐ (๋ฐฐํฌ ์ํ) ๋ง ํจ์นํฉ๋๋ค.
๋ง์ง๋ง ๋ฆด๋ฆฌ์ค ์ํ๋ฅผ ๋ฌด์ํ๊ณ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ค์นํ๋ ๋์์ ์ถ๊ฐ ํ ๊ณํ์ด ์์ต๋๊น?
--history-max
์ 10 (๊ธฐ๋ณธ๊ฐ)์ผ๋ก ์ค์ ํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๊ฐ ์ฑ๊ณตํ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ค์ 10 ๊ฐ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ์ต๋๋ค.
Error: UPGRADE FAILED: timed out waiting for the condition
(์๋ฎฌ๋ ์ดํธ๋์์ผ๋ฏ๋ก ์์ ๋จ).
๊ทธ ํ ๋ค์ (11 ๋ฒ์งธ ์คํจ) ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ์ต๋๋ค.
Error: UPGRADE FAILED: "app" has no deployed releases
(๊ทธ๊ฒ ๋ฌธ์ ์
๋๋ค!)
Helm์ด ๊ฐ์ฅ ์ต๊ทผ์ 10 ๊ฐ (์ํ์ ๊ด๊ณ์์ด) ์ธ์ ๊ธฐ๋ก์์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฑ๊ณต์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ํญ์ ๋ณด์กด ํ ์ ์์ต๋๊น?
๋๋ ์์ด๋์ด๋ฅผ ์ข์ํ๋ค. ์ ์ฅ ๊ธฐ๋ฅ์ ์์ ํด์ผํ์ง๋ง ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/helm/helm/pull/4978 ์ด Helm 2 ์ฉ์ผ๋ก ๋ณํฉ๋์์ต๋๋ค. ์๋ง๋ Helm 3์ผ๋ก ์ด์๋์ง ์์์ ์ ์์ต๋๋ค. ๋๊ตฐ๊ฐ ์๊ฐ์ด ์๊ณ ์ด๋ฅผ ์ด์ํ๊ณ ์ถ๋ค๋ฉด ๋ถ๋ด์์ด ์ฌ์ฉํด์ฃผ์ธ์.
๋๋ ์ด๊ฒ์ # 7806์ผ๋ก Helm 3์ ์ด์ํ๋ ค๊ณ ์๋ํ์ผ๋ฉฐ ์ต๋ํ ๋นจ๋ฆฌ ๋ณํฉ๋๋ ๊ฒ์๋ณด๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค, @ultimateboy!
_first_ ์ค์น์ ์คํจํ ๋ฆด๋ฆฌ์ค, ์ฆ ์ด์ ์ ์ฑ๊ณตํ ๋ฆด๋ฆฌ์ค๊ฐ์๋ ๋ฆด๋ฆฌ์ค๋ ์ด๋ป์ต๋๊น?
helm ๋ฆด๋ฆฌ์ค์ ๋ฉฑ๋ฑ ์ ๋ฐฐํฌ์ upgrade --install
๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ๋ฉด upgrade --install
์ ๋ชจ๋ ํ์ ํธ์ถ์ด "๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค ์์"์ค๋ฅ (์ด ๋ฌธ์ )์ ํจ๊ป ์คํจํฉ๋๋ค.
"์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค ์คํจ"์๋๋ฆฌ์ค๋ ์ผ๋ฐ์ ์ผ๋ก ์๋์ผ๋ก ์คํํ๊ฑฐ๋ ๋ชจ๋ํฐ๋งํ๊ธฐ ๋๋ฌธ์ (๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ๊ทธ ์๋ฆฌ์์ ์์ ์ฌํญ์ ์ ์ฉ ํ ์ ์๊ธฐ ๋๋ฌธ์) ๊ด๋ฆฌ๊ฐ ๋ ์ฉ์ดํฉ๋๋ค. ์ฝ๋๋ฅผ ์์ ํ ํ์๋ ๋ณต๊ตฌ๋์ง ์์ต๋๋ค.
๋ฌผ๋ก ์ฌ์ ํ ์์ ๋์ด์ผํฉ๋๋ค.
์ด ๋ฒ๊ทธ๋ฟ๋ง ์๋๋ผ ๋ง์ง๋ง์ผ๋ก ์ฑ๊ณตํ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด์กดํ๋ ๊ฒ๋ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ : ๊ฐ ํ์ผ ๋ฑ์ ๋๋ฒ๊น ๋ฌธ์
@peterholak "์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค ์คํจ"์๋๋ฆฌ์ค๋ ๋๋๋ก CI / CD๋ก๋ ์ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํด๋ฌ์คํฐ์ ๋ํ ์ก์ธ์ค๊ฐ ์ ํ๋์ด ์๊ณ "๊ด๋ฆฌ"๋ฅผ ์ด๋ป๊ฒํด์ผํฉ๋๊น?
์ด ๋ฌธ์ ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ํ๋ก๋์
์์ helm์ ์ฌ์ฉํ๋ค๋ ์ ์์ ์ฐ์ ์์๊ฐ ๋์ ๋ฌธ์ ์ฌ์ผํฉ๋๋ค. --atomic
helm ์ค์น๋ฅผ ์คํํ ์ ์์ง๋ง ๋ฐฐํฌํ๊ธฐ ์ ์ ์คํจ ์ด์ ๋ฅผ ๊ฒ์ฌํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? ์ค์น๊ฐ ์คํจํ๊ธฐ ์ ์ ์๊ฐ ์ ํ์ผ๋ก ์ธํด ์๊ฐ์ด ์ ํ๋๊ณ ๋๋์๊ฐ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ์ ์๋ค๋ฉด ์คํจ๋ฅผ ๊ฒ์ฌ ํ ๋ ์๊ฐ์ ๋ญ๋นํ์ง ์์๋๋ฉ๋๋ค.
๋ํ helm ๋ฆด๋ฆฌ์ค์ ๋ฉฑ๋ฑ ์ ๋ฐฐํฌ๋ฅผ ์ํด upgrade --install์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ์๋ํ ๋ ci / cd ํ์ดํ ๋ผ์ธ์ด ์๋ํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์ ์ฐํํ๊ธฐ ๋๋ฌธ์ helm์ ์๋์ผ๋ก ์กฐ์ ํ ๊ณํ์ ์์ต๋๋ค.
์๋ํ ๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์์ ์ฒซ ๋ฒ์งธ ๋ฐฐํฌ๋ ๊ฑฐ์ ํญ์ ์คํจํฉ๋๋ค. ํ์ ๋ฐฐํฌ๋ ์ฒซ ๋ฒ์งธ ์๋์ ๋ค๋ฅด๊ฒ ํธ๋ฆฌ๊ฑฐ๋์ง ์์์ผํฉ๋๋ค.
์ด ๋ฌธ์ ์ ์ฐ์ ์์๋ฅผ ์๋นํ ๋์ด์ญ์์ค.
๊ฒฝํ์ด ๋๋ฌด ๋์๊ณ ํ๋ก๋์ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด ๋ฆด๋ฆฌ์ค๋ฅผ ๋จ์ํ ์ญ์ ํ ์ ์์ต๋๋ค! ์๋ฒ ๋ค์ด ํ์์ด ๋ฐ์ํฉ๋๋ค! ๊ฒฐ๊ตญ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃฐ ์ ์์๊น์?
๋ํ ๋๊ตฐ๊ฐ ์ง๋ฌธ / ์ง์ ๋ ์ด๋ธ์ ์ ๊ฑฐ ํ ์ ์์ต๋๊น? ์ด ๋ฌธ์ ๋ ๋๋ฝ ๋ ๋ฌธ์์ ๊ดํ ๊ฒ์ด ์๋๋ผ ์๋ํ ๋ ๋ฐฐํฌ ํ์ดํ ๋ผ์ธ์์์ ์ฌ์ฉ์ ์ง์ํ์ง ์๋ Helm์ ํ์ฌ ๋์์ ๊ดํ ๊ฒ์ ๋๋ค.
# 7806 PR์ด ๋ง์คํฐ์ ๋ณํฉ๋์์ต๋๋ค. 3.2์์ ์ถ์ ๋ ์์ ์ ๋๋ค. ์ด์ ๋ฐ๋ผ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
ํฐ! ์ด๊ฒ์ Helm๊ณผ ๊ด๋ จ๋ ๋๋ถ๋ถ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ๋ฉด ํ์ฌ ๋์์ ๋ฌด์์ ๋๊น (์์ง ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์)?
์์๋ค https://github.com/helm/helm/issues/3353 ์ ์ํด ํด๊ฒฐ ๋ https://github.com/helm/helm/pull/3597 ๋งํ๋ฉด --force
์ฌ์ฉ๋ฉ๋๋ค.
--force
์ Helm 3 (https://github.com/helm/helm/issues/6378)์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ์ ์ (https://github.com/helm/helm/ issues / 7082), ๊ทธ๋ฆฌ๊ณ ์ธ๊ธ ๋์ด ์ค๋ ๋์ ๋ค๋ฅธ ์ฝ๋ฉํธ์ฒ๋ผ --force
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํญ์ ์ ํฉํ ๊ฒ์ ์๋๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด ์ํฉ์ ์ฌ์ ํ โโ๋ค์ ๋ถ๋ถ๋ช
ํฉ๋๋ค.
@technosophos ์์ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ํธ๊ธฐ์ฌ, ์ธ์ 3.2. ๋ฆด๋ฆฌ์ค๋ฅผ ์ค์นํ ์ ์์ต๋๊น? ๊ธฐ์กด์ ์คํจํ ๋ฆด๋ฆฌ์ค์์ app-name has no deployed releases
์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ CI / CD ํ์ดํ ๋ผ์ธ์ ์ผ์ข
์ ์ฐจ๋จ์ ์
๋๋ค.
@peterholak #
3.2๋ 4 ์ 16 ์ผ ๊ณต๊ฐ ๊ฐ๋ฐ ํ์์์ ๋ ผ์๋ฉ๋๋ค. ์ง๊ธ ๋ฐ๋ก ๋ง๋ฌด๋ฆฌ ํ ์์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ํญ๋ชฉ์ผ๋ก ๋ถ๋ฅํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฒ ํ ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค (๊ด๋ฆฌ์๊ฐ ๋ด์ผ ์ ํ์ ๋ชจ๋ ๋์ํ๋ค๊ณ ๊ฐ์ ).
๋ค์ ๋ช ๋ น์ผ๋ก ์ธ๊ธ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด AKS ํด๊ฒฐ์์ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
helm version : 3.1.2
๋ช
๋ น์ ์ฌ์ฉํ์ฌ k8s ํด๋ฌ์คํฐ์์ ํจํค์ง๋ฅผ ์ญ์ ํฉ๋๋ค.
helm delete <release-name>
๋ฐฐํฌ์ฃผ๊ธฐ๋ฅผ ์คํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
3.2.0 ๋ฒ์ ์๋ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@deimosfr ๋ฆด๋ฆฌ์ค 3.2.1์ ํฌํจ๋ # 7653์์ ์์ ๋์์ต๋๋ค. ์์ง ๋ฆด๋ฆฌ์ค๋์ง ์์์ง๋ง ๋ง์คํฐ๋ฅผ ๊ตฌ์ถํ๋ ค๋ ๊ฒฝ์ฐ ์์ ํ ์ ์์ต๋๋ค.
๋๋ 3.2.1์ด๊ณ ์ด๊ฒ์ ์ฌ์ ํ โโ์ผ์ด๋๊ณ ์์ต๋๋ค.
์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์์๋ ์ด์ ๋ ์ฌ์ ํ ์์ต๋๋ค. 3.2.1์ ๋จ์ํ ์ค๋ฅ๋ฅผ ์ ๊ฑฐํ์ง ์์์ต๋๋ค. ์์ธ ์ค ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. ๊ทธ๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ๊ฒ์ ๋๋ค.
@yinzara ๋ฌธ์ ๊ฐ์๋ ์ ํด๋ฌ์คํฐ์ ๋ํ ์๋ ์ค๋ช ์์ "๊ฒฝ๋ก b"๋ผ๋ ๊ณ ์ ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. Helm v2๊ฐ ์ ๋๋ก ์๋ํ๋ ๋ค๋ฅธ ํด๋ฌ์คํฐ์์๋์ด ์ค๋ฅ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌผ๋ก ๊ณ ์ ์ ์ธ "์ด๊ฒ์ ๋ค๋ฅธ ๊ฒ์ ์ํด ๋ฐ์ํฉ๋๋ค. ์๋ก์ด ๋ฌธ์ ๋ฅผ์ฌ์ญ์์ค"๋์ค๋ฅผ ํ ์ ์์ง๋ง, ๊ทธ๊ฒ์ด ์ค์ ๋ก ํด๊ฒฐ๋์ง ์์๋ค๋ ๊ฒ์ ๋จ์ํ ์ธ์ํ๋ฉด ๋ ๋น ๋ฅผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
helm list
์ ๊ฒฐ๊ณผ๋ ๋ฌด์์
๋๊น? ์ด์ ์ ์คํจํ ๋ฆด๋ฆฌ์ค์ "์ํ"๋ ๋ฌด์์
๋๊น? Helm 2์๋์ด ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ์ ํ ์์ ๋์ง ์์์ผ๋ฏ๋ก ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์๊ฐํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฒ์ 3.2.1์์ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
์ด๊ธฐ ๋ฐฐํฌ๊ฐ 3 ๋ฒ ์คํจํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ค๋จ๋ฉ๋๋ค ... ์ฐจํธ๋ฅผ ์ญ์ ํ์ง ์๊ณ ์ข์ ์ฐจํธ๋ฅผ ๋ฐฐํฌํ๋ฉด ์์ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ธ๋ถ:
helm history t3-mac -n t3 REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Fri May 22 18:55:11 2020 failed t3-mac-2.13.0 2.13.0 Release "t3-mac" failed: timed out waiting for the condition
2 Fri May 22 19:33:44 2020 failed t3-mac-2.13.0 2.13.0 Upgrade "t3-mac" failed: timed out waiting for the condition
3 Fri May 22 19:57:51 2020 pending-upgrade t3-mac-2.13.0 2.13.0 Preparing upgrade
helm.exe upgrade --namespace t3b --install --force --wait t3b-mac t3b-mac-2.13.0.tgz
2020-05-22T18:14:01.7103689Z Error: UPGRADE FAILED: "t3b-mac" has no deployed releases
๋ฐฐํฌ ๋ ์ฐจํธ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ํฌ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์์ต๋๋ค.
vm-victoria-metrics-single-server-0 1/1 Running 0 2d18h
ํ์ง๋ง ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค.
$ helm version
version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-26T06:16:15Z", GoVersion:"go1.14", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T20:52:22Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
ismail ~ $ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
vm default 1 2020-05-23 16:20:35.243505 +0300 +03 deployed victoria-metrics-single-0.5.3 1.35.6
$ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10"
Error: UPGRADE FAILED: "vm" has no deployed releases
ismail ~ $ helm upgrade --install vm vm/victoria-metrics-single --set "-selfScrapeInterval=10"
Release "vm" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: vm-victoria-metrics-single, existing_kind: policy/v1beta1, Kind=PodSecurityPolicy, new_kind: policy/v1beta1, Kind=PodSecurityPolicy
๋ด ์ชฝ์์๋ ์ผ์ด ๋ฌ๋์ง ํ์ธํฉ๋๋ค
@zodraz helm ์ํ๋ ์ค๋ฅ์ ์์ธ์ ๋ณด์ฌ์ค๋๋ค. ์ต์ ๋ฆด๋ฆฌ์ค๋ ์คํจํ ๊ฒ์ผ๋ก ํ์๋์ง ์๊ณ "์ค์น ๋๊ธฐ ์ค"์ผ๋ก ํ์๋ฉ๋๋ค. ์ด๋ ๋ง์ง๋ง ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๊ธฐ ์ ์ (์ฆ, ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ฑ๊ณตํ๊ธฐ ์ ์) ์ธ์์ ์ผ๋ก ์ข ๋ฃ๋์์์ ์๋ฏธํฉ๋๋ค.
์ ๊ทธ๋ ์ด๋๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๋ณด๋ฅ์ค์ธ ์ค์น ์ํ๋ฅผ ์ ํจํ ์ค๋ฅ ์ํ๋ก ํฌํจํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์์ ๊ฒฐ์ ์ด์์ต๋๋ค. (์ฆ ์ด๊ฒ์ ์ค๊ณ๋๋๋ก ์๋ํฉ๋๋ค)
ํฌ๋ฉง ์ ๊ทธ๋ ์ด๋๊ฐ ์๋ฃ๋๊ธฐ ์ ์ ์ทจ์๋๋ ์ด์ ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํผํ ์์๋ ์ํฉ์ด์ด์ผํฉ๋๋ค.
๋ฐฐํฌ ๋ ์ฐจํธ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ํฌ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์์ต๋๋ค.
vm-victoria-metrics-single-server-0 1/1 Running 0 2d18h
ํ์ง๋ง ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค.
$ helm version version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"} $ kubectl version Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-26T06:16:15Z", GoVersion:"go1.14", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T20:52:22Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"} ismail ~ $ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION vm default 1 2020-05-23 16:20:35.243505 +0300 +03 deployed victoria-metrics-single-0.5.3 1.35.6 $ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" Error: UPGRADE FAILED: "vm" has no deployed releases ismail ~ $ helm upgrade --install vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" Release "vm" does not exist. Installing it now. Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: vm-victoria-metrics-single, existing_kind: policy/v1beta1, Kind=PodSecurityPolicy, new_kind: policy/v1beta1, Kind=PodSecurityPolicy
๋๋ ๋น์ ์ ๋ฌธ์ ๊ฐ ๋์๊ฒ ์๋นํ ๋นํน ์ค๋ฝ๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค. ๋๋ ๋น์ ์ด ๊ฐ์ง ๋ก๊ทธ ์ถ๋ ฅ์ ๊ฐ์ํ ๋ ์ด๋ป๊ฒ ์ผ์ด๋ ์ ์์๋์ง ๋ณผ ์ ์์ต๋๋ค. 3.2.1์ ์์ ๋ฆด๋ฆฌ์ค๋ ์คํจํ ๋ฆด๋ฆฌ์ค๊ฐ ์์ผ๋ฏ๋ก ์ํฉ์ ๋์์ด๋์ง ์์ต๋๋ค. helm ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ฅผ ํฌํจํ๋ Kubernetes์์ ์ผ๋ถ ๋น๋ฐ์ด ์ ๊ฑฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ ์ ๊ฑฐํ๊ณ ๋ค์ ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋ ํ์ธ์ @yinzara ,
๋ฌธ์ ๋ ์ทจ์ํ์ง ์์๋ค๋ ๊ฒ์ ๋๋ค. ์ ๊ฐ ์ธ ๋ฒ์งธ๋ก ์์ (๊ทธ๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์คํจํ๋๋ก ๋ฐฐํฌ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์)์ด "์์๋ ์ํ"์ ๋๋ฌ ํ ์ธ ๋ฒ์งธ ์๊ฐ์ ์ดํดํฉ๋๋ค. .
์ด ์ํ๋ ๋ณต๊ตฌ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์์ด๋ฅผ ์์ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ฐจํธ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋๋ค ... ์์ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํญ์ ๋กค๋ฐฑํ๊ณ ์ด "์์๋ ์ํ"์ ๋๋ฌํ์ง ์๋๋ก ๋ฐฉ์งํ๋ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
๋๋ ๋ฉ์ธํ ์ด๋์ ๊ฒฐ์ ์ ์ดํดํ๋ค ... ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํผ๋์ ์ผ๊ธฐํ๊ณ , ์ ํ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ด ์๋ค (์ฐจํธ๋ฅผ ์ญ์ ํ์ง ์๋๋ค๋ฉด) ๊ทธ๋ฆฌ๊ณ ๊ธ์, ๋ด๊ฐ ๋งํ๋ฏ์ด 3 ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋์ด ์ํ์ ๋๋ฌํ๋ค ... ์ทจ์ํ์ง ์๊ณ .. .
์ด์จ๋ ๊ตํ์ ์์ ํ๋๊ทธ๋ฅผ ํตํด ๋กค๋ฐฑํ๊ณ ๋ฐฐ์ ์ต๋๋ค.
์๋ ํ์ธ์ @yinzara
์คํจํ ์ด์ ๋ฅผ ์ฐพ์์ต๋๋ค.
์๋ชป๋ ๋งค๊ฐ ๋ณ์๋ฅผ -selfScrapeInterval=10
ํ์ต๋๋ค. server.extraArgs.selfScrapeInterval = 10์ด์ด์ผํฉ๋๋ค.
๋ฐ๋ผ์ ๋งค๊ฐ ๋ณ์์ -
๋ฌธ์ ์
๋๋ค.
์ด ์ ํ์ ๋ณ์ ์ค๋ฅ์ ๋ํด helm ์ค๋ฅ๊ฐ ์๋ฏธ๊ฐ ์์์ ์๋ ์์ต๋๋ค.
ํ๋ ์คํจ :
ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10"
Error: UPGRADE FAILED: "vm" has no deployed releases
์ฑ๊ณต:
ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "server.extraArgs.selfScrapeInterval=10"
Release "vm" has been upgraded. Happy Helming!
NAME: vm
LAST DEPLOYED: Tue May 26 22:35:15 2020
NAMESPACE: default
STATUS: deployed
REVISION: 3
TEST SUITE: None
NOTES:
TBD
์ด๊ฒ์ ๋ํ ์๋ํฉ๋๋ค :
ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "selfScrapeInterval=10"
Release "vm" has been upgraded. Happy Helming!
NAME: vm
LAST DEPLOYED: Tue May 26 22:37:43 2020
NAMESPACE: default
STATUS: deployed
REVISION: 4
TEST SUITE: None
NOTES:
TBD
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค : '(๊ทธ๋ฆฌ๊ณ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ฒ์ด๊ณ ๊ทธ๊ฒ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํผ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ค์ํ ์ํฌ๋ก๋๋ฅผ ๋ฐฐํฌ ํ ๋ helm ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฒ๋ ค์ผํฉ๋๋ค. ์ฌ์ง์ด istio์ istioctl์ด ์ด๋ฌํ ์ด์ ๋ก helm์ ๋ฒ๋ฆฝ๋๋ค (๋ด ์๊ฐ์). ํฌ๊ตฌ ํ ํ๋ฆฟ์ ์ฌ์ฉํฉ๋๋ค kubctl -f- ์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ด ๊ณผ์ ์์ ์ญ์ ๋ ๋ฆฌ์์ค์ ๋ํด ๊ธฐ์ตํด์ผํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
@GloriaPG ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น? ๊ฐ์ ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํฉ๋๊น? @yinzara ๊ฐ ์ค๋ ๋์์ ์์ ์ธ๊ธํ๋ฏ์ด # 7652๋ก ํด๊ฒฐ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๊ฒฐ๋ก ์ ๋๋ฌํ๊ธฐ ์ ์ ๋์์ด ๋ ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
์๋ ํ์ธ์ @bacongobbler
--install
๋ฐ --force
ํ๋๊ทธ์ ํจ๊ป helm upgrade
์ฌ์ฉํฉ๋๋ค.
helm upgrade --install ${PROJECT_NAME} ${CHART_NAME} \
ย --namespace $NAMESPACE_NAME \
ย --values ${SECRETS} \
ย --values ${CONFIG_VALUES} \
ย --force \
ย --wait \
ย --timeout ${MAX_WAIT_SECONDS} || rollback
๋ถํํ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ ์ธ ๊ฒฝ์ฐ :
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
PROJECT_NAME CHART_NAME 136 2020-07-09 14:13:09.192381483 +0000 UTC failed CHART_NAME-0.1.0
๊ฒฐ๊ณผ :
Error: UPGRADE FAILED: "PROJECT_NAME" has no deployed releases
Error: failed to replace object: Deployment.apps "PROJECT_NAME" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"PROJECT_NAME"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์ต๋๊น? ๋ณด์ธ๋ค --force
์ --install
ํ๋๊ทธ๊ฐ ์๋ํ์ง ์์ต๋๋ค
์ด๊ฒ์ด ํ๋ก๋์ ํ๊ฒฝ์ด๋ฏ๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ฑฐํ๊ณ ์ฒ์๋ถํฐ ๋ง๋ค ์๋ ์์ต๋๋ค.
์ ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค
https://github.com/kubernetes/client-go/issues/508 ๊ณผ ๊ด๋ จ๋ ์ค๋ฅ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐฐํฌ์์ ์ ํ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ฐฐํฌ๋ฅผ ์ทจ์ํ๊ณ ๋ค์ ๋ฐฐํฌํด์ผํฉ๋๋ค.
@yinzara ์ฌ๋ฏธ์๋ ์ ์ ๋ฐฐํฌ์์ ์ ํ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ชจ๋ ๊ฒ์ด 9/10 ๋ฆด๋ฆฌ์ค์์ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐฐํฌ ์ค ํ๋์์ sth๊ฐ ์๋ชป๋์ด ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ์ด๊ณ ์ด๋ค ์ ์ผ๋ก๋ ๋ณต๊ตฌ ํ ์ ์์ต๋๋ค. ๋ฐฐํฌ ์์ฒด๊ฐ ์๋ํ๊ณ Pod๊ฐ ์คํ ์ค์ด์ง๋ง ๋ ์ด์ ์์ ํ ์ ์์ต๋๋ค.
๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ ์ํ๊ฐ ๋ ํ ๋ ์ด์ helm์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ ๋ค์ ๋ฐ ์ง๊ด์ ์
๋๋ค. --force
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ๋ฐฐํฌ๋ฅผ ๊ต์ฒดํ๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ ํ ์ ์์ง๋ง ๊ธฐ์กด ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ๊ณ ์์
ํ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ค, ์ํ๊น๊ฒ๋ ์ด๊ฒ์ ์ค์ ๋ก ์กฐํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฆด๋ฆฌ์ค์ ๋ํด ๋ญ๊ฐ ์คํจํ์ผ๋ฉฐ Kubernetes์์ ์๋ชป๋ ์ํ์ ๋๋ค. ์ ํ๊ธฐ๊ฐ ์๋ง์ด๊ฑฐ๋ ์์ ํ ๊ฒ๊ณผ ๋ค๋ฅผ ๊ฐ๋ฅ์ฑ์ด ๋์ง๋ง "app-name"์ ๋ํด ํ์๋๋ ์ค๋ฅ๋ ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค.
์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑ์ ์๋ํ์ต๋๋ค. ๋ฆด๋ฆฌ์ค๋ ํ์ฌ deployed
์ํ์
๋๋ค. ๋ถํํ๋ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ๋ถํํ๋ ์ญ์ ํ๊ณ ๋ค์ ๋ฐฐํฌํ๋ ๊ฒ์ด ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ ๋ํ ๋์ ํน๋ณํ ๋ฌธ์ ๋ ์ฌํํ๊ธฐ ์ฝ์ต๋๋ค.
helm3 ( --atomic
๋ฐ --cleanup-on-fail
)์ผ๋ก ๋ฌด์ธ๊ฐ ๋ฐฐํฌ๋ฅผ ์์ํ๊ณ ๋ฆฌ์์ค ์์ฑ์ ์์ํ ํ ํ๋ก์ธ์ค๋ฅผ ctrl + cํฉ๋๋ค. ๋กค๋ฐฑ ๋ ํญ๋ชฉ์ด์๊ณ ๋ฆฌ์์ค๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ฉฐ ์ดํ์ install --upgrade
์คํ์ ์๋ํ๋ฉด "๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค"์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ctrl + c๋ ๋น๋๊ฐ ์ด๋ฏธ ์คํ์ค์ธ ๋์ ๋๊ตฐ๊ฐ๊ฐ CI ์์คํ ์ ๋ธ๋์น์ ์ ์ปค๋ฐ์ ํธ์ ํ ๋ ๋ณธ์ง์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ ๋๋ค. helm ์ ๊ทธ๋ ์ด๋๊ฐ ์ทจ์๋๊ณ ์์ ํ ์ค๋จ ๋ ์ํ๊ฐ๋ฉ๋๋ค.
์ด ์์ ์ดํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ด ์ค๋ ๋์ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ญ์ ๋ ์ต์ ์ด ์๋๋๋ค.
ํธ์ง : ์ผ๋จ ์ด๊ฒ์ด ๊นจ์ง๋ฉด helm ls
๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํ์ํ์ง ์๊ณ helm history
๋ ์ค์น ๋ณด๋ฅ ์ํ๋ก ํ์ํฉ๋๋ค.
์ฌ์ค-์ ๊ฒฝ ์ฐ์ง ๋ง์ธ์. ์ด๋ก ์ธํด ์ํฅ์๋ฐ๋ ์ฌ๋๋ค์ ์ํด ํ ๊ฐ์ง ํด๊ฒฐ์ฑ
์ด ์์ต๋๋ค. kubernetes์์ ์๋์ผ๋ก ๊ธฐ๋ก ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์
๋๋ค. ๋น๋ฐ๋ก ์ ์ฅ๋ฉ๋๋ค. ๋ฌธ์ ๊ฐ๋๋ pending-install
์ํ ํญ๋ชฉ์ ์ญ์ ํ๋ฉด upgrade --install
๋ค์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค!
@AirbornePorcine- ์ค์น ๋ณด๋ฅ ํญ๋ชฉ์ ์ญ์ ํ๊ธฐ ์ํด kubernetes์์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
@ tarunnarang0201 Helm์ ๋ฐฐํฌ ํ ๊ฒ๊ณผ ๋์ผํ ๋ค์ ์คํ์ด์ค์์ ๊ฐ ๋ฐฐํฌ์ ๋ํ kubernetes ๋น๋ฐ์ ์์ฑํฉ๋๋ค. 'helm.sh/release.v1'์ ํ์ด๊ณ 'sh.helm.release.v1.release'์ ๊ฐ์ ์ด๋ฆ์ด ํ์๋ฉ๋๋ค. -name.v1 '. ๊ฐ์ฅ ์ต๊ทผ์ ๋น๋ฐ์ ์ญ์ ํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค (์์ ์์ 'v1'์ ๋ฏธ์ฌ๋ฅผ ๋ณด๋ฉด ๋ฐฐํฌ ํ ๋๋ง๋ค ์ฆ๊ฐํฉ๋๋ค).
@AirbornePorcine ๊ฐ์ฌํฉ๋๋ค!
@AirbornePorcine @ tarunnarang0201 @ ninja- ์ํ ๋ ์ด๋ธ์ ํจ์น ํ ์๋ ์์ต๋๋ค. ํนํ ์ด์ ์ ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ์๋ ๊ฒฝ์ฐ ํนํ ๊ทธ๋ ์ต๋๋ค.
Helm 3์ ๊ฒฝ์ฐ https://github.com/helm/helm/issues/5595#issuecomment -580449247์์ ๋ด ์๊ฒฌ์
Helm 2์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ์ง์นจ์ https://github.com/helm/helm/issues/5595#issuecomment -575024277์์ ๋ด ์๊ฒฌ์
์ด ๋ํ๋ ๋๋ฌด ๊น๋๋ค. ๊ฐ ๋๊ธ์๋ ํ๋์ ํด๊ฒฐ์ฑ
์ด ์์ต๋๋ค. .... ๊ฒฐ๋ก ์ ๋ฌด์์
๋๊น?
์ด์ Helm 2.12๋ฅผ ์ฌ์ฉํด ์์ผ๋ฉฐ ๋ฌธ์ ๊ฐ ์์์ง๋ง ์ด์ v3.2.4์์๋ ์ด์ ์ ์คํจํ ๋ฐฐํฌ๊ฐ์ด ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค.
์ฐ๋ฆฌ๋ Terraform๊ณผ ์ต์ helm ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ --force
๋๋ --replace
์ฌ์ฉํด์ผํฉ๋๋ค.
@xbmono ๋ํ๊ฐ ๊ธธ๊ธฐ ๋๋ฌธ์
"๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค"์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ install --replace
๋๋ upgrade --install --force
์ด (๊ฐ) ์ค์ค๋ก ๋์์ด ๋ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํ๋ช ํ ์ ์์ ์๋ง๋ ์ฃผ์ด์ง ์ ์์ต๋๋ค
helm history
๋ฅผ ์ ๊ณตํ๋ฉด๊ฐ๋ฅํ ์ต์ ์ ๋ํ ์์ฝ
helm uninstall && helm install
๊ฐ ์ต์
์ผ ์ ์์ต๋๋ค.helm install
๋ค์ ์ญ์ ํ ์ ์์ต๋๋ค. --atomic
๋ฑ์ ์ฌ์ฉํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์คํจ๋ก ์ธํด ์ํด๊ฐ ๋จ๋ ๊ฒฝ์ฐ k8s ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ์ ๋ฆฌํด์ผ ํ ์๋ ์์ต๋๋ค.--wait
ed ์ค์น๋ฅผ ์ค๋จํ๊ณ helm history
์ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค๊ฐ pending-install
์ด ํ์ ๋๋ฉด ์ต์ ๋ฆด๋ฆฌ์ค ๋น๋ฐ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ฆด๋ฆฌ์ค ์ํ๋ฅผ ํจ์น ํ ์ ์์ต๋๋ค.upgrade
์งํํ ์ ์์ต๋๋ค, ๊ทธ๋ฌ๋ ๋ด ์ง์, ์ด๋ฌํ ๊ฒฝ์ฐ์ ๋๋ถ๋ถ์ ํด๊ฒฐ๋์๋ค # 7653์ ์ํด (์ญ์ฌ์ ์ด๋๊ฐ์ deployed
๋ฆด๋ฆฌ์ค๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด) ๊ทธ๋์ ์ด๊ฒ์ด ์ง๊ธ ์ ์ฉํ๋ค๋ฉด ๋๋ ๊ฒ์
๋๋ค.์ด๊ฒ์ ๋ซํ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์ด์จ๋ ๋ ๊ตฌ์ฒด์ ์ธ ๋ค๋ฅธ ํฐ์ผ์์ ๋๋ฒ๊ทธํ๊ณ ๋ฌธ์ํํ๋ ๊ฒ์ด ์ข์ ๊ทผ๋ณธ ์์ธ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@chadlwilson ์๋ต
helm history
๋ ํ์ ๋ฐํํ์ง ์์ต๋๋ค!
Error: release: not found
๊ทธ๋ฌ๋ helm list
๋ ์คํจํ ๋ฐฐํฌ๋ฅผ ๋ฐํํฉ๋๋ค.
M:\>helm3 list -n cluster171
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
cluster171 cluster171 1 2020-09-01 04:45:26.108606381 +0000 UTC failed mychart-prod-0.2.0-alpha.10 1.0
์ฐ๋ฆฌ๋ Terraform์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ Jenkins์์ ๋งค์๊ฐ ์๋์ผ๋ก ํ๊ฒฝ์ ๋ฐฐํฌํฉ๋๋ค. terraform์ ์ฌ์ฉํ๋ฉด helm upgrade
์ฌ์ฉํ ์ ์์ต๋๋ค. helm ๊ณต๊ธ์๊ฐ ์ํํ๋ ์์
์
๋๋ค.
ํ
๋ผ ํผ ์ฝ๋์์ force_update
์ true
์ค์ ํ์ต๋๋ค. ์ด์ด์๊ณ replace
๋ฅผ true
์ผ๋ก ์ค์ ํ์ต๋๋ค.
resource "helm_release" "productStack" {
name = "${var.namespace}"
namespace = "${var.namespace}"
chart = "${var.product_stack}"
force_update = true//"${var.helm_force_update}"
max_history = 10
replace = true
wait = true
timeout = "${var.timeout_in_seconds}"
}
๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ด wait=true
์ ๊ด๋ จ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ฐ๋ผ์ ์ด์ ๋ฐฐํฌ๊ฐ ์คํจํ ์ด์ ๋ ํด๋ฌ์คํฐ๊ฐ ๋์ปค ์ ์ฅ์์ ํต์ ํ ์ ์์ด timeout
๋๋ฌํ๊ณ ์ํ๊ฐ failed
๋์์ง๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ pods
์ฑ๊ณต์ ์ผ๋ก ๋ค์ ์์๋์์ต๋๋ค. ์ด์ ๋ถ๋ช
ํ helm delete
์๋ํ์ง๋ง ๋งค๋ฒ์ด ์์
์ ์ํํ๋ฉด ๊ด๋ฆฌ์ ๋ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ปํ ๊ฒ์
๋๋ค.
helm v2๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐํฌ๊ฐ ์คํจํ๊ณ ๊ฐ๋ฐ์๊ฐ์ด๋ฅผ ์์ ํ๋ฉด ๋ค์ ๋ฐฐํฌ์์ ์คํจํ ๋ฐฐํฌ๋ฅผ ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค.
M:\>helm3 list -n cluster171 NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION cluster171 cluster171 1 2020-09-01 04:45:26.108606381 +0000 UTC failed mychart-prod-0.2.0-alpha.10 1.0
helm history
์คํจ (์คํ? ๋์น ๋ค์ ์คํ์ด์ค? ์๋ชป๋ ํฌ๊ตฌ ๋ฒ์ ?) ์ด์ํ ๋ณด์ด์ง๋ง, ๊ทธ๊ฒ์ ๊ฐ์ ์ฃผ์ด์ง 1
์์ list
๋น์ ์ ์ ์ผ์ํ๋ ค๊ณ ํ๋ ๊ฒ๋ณด๋ค ์ ์ฐจํธ๋ฅผ ์ค์นํ ๋์ ์ฒ์ ์ค์น๊ฐ ์คํจํ์ต๋๋ค. ์ฐจ๋จ์ ํด์ ํ๋ ค๋ ๊ฒฝ์ฐ ์์ ๊ฐ์ด ๋ฆด๋ฆฌ์ค ๋น๋ฐ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์ํ๋ฅผ ํจ์นํ๊ณ ๋ค์ ์๋ ํ ์ ์์ต๋๋ค. ์ด๋ Helm ๋๋ Helm Terraform Provider์ ๊ด์ ์์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์๋ชป๋ ์ํ์ ์์์ ๋ํ๋ผ ์ ์์ง๋ง ์ด๋ป๊ฒ ๊ฑฐ๊ธฐ์ ๋๋ฌํ๋์ง๋ ์๋๋๋ค.
์ด์จ๋ , # 7653์ด ๋ณํฉ ๋ ์ดํ๋ก Helm 3.2.1
์คํจํ ์ต์ด ๋ฐฐํฌ์ ๋นํด upgrade
์ ์ํํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ณต๊ธ์๊ฐ ์ค์ ๋ก ์ฌ์ฉ์ค์ธ ํน์ Helm ๋ฒ์ ์ ๋ค์ ํ์ธํ๊ณ ์ถ์ต๋๊น? Helm Terraform ๊ณต๊ธ์๊ฐ install
์คํจ ํ ๋ฆด๋ฆฌ์ค ์ํ๋ฅผ ํ์
ํ๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด์์ ์๋ ์์ต๋๋ค. ๋๋ ๊ทธ ๊ณต๊ธ์์ ๋ํ ๊ฒฝํ์ด ์์ผ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก Helm์ TF์ ๊ฐ์ ๋ค๋ฅธ ์ ์ธ์ ์ถ์ํ๋ก ๋ํํ๋ ๊ฒ์ ์ ํธํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ํจ์ฌ ๋ ๋ถํฌ๋ช
ํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์
๋๋ค.ํ์ง๋ง ๋น์ ์ ๋ ๊น์ด ํ๊ณ ๋ค๊ณ ์ถ์ ์๋ ์์ต๋๋ค. .
์ด์จ๋ ์์์ ๋งํ๋ฏ์ด ์ฒ์ ๋ฐฐํฌ์ ์คํจํ ํ ์ค๋ฅ๊ฐ has no deployed releases
์ด๋ฉด replace
๋ force
๋ ์๊ฐํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ์
์์ด ์ํฉ์ ๋์ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ 51 ๋ช
์ ์ฐธ๊ฐ์๊ฐ์๋์ด ์ค๋๋ ๋น๊ณต๊ฐ ํฐ์ผ์ ์๋ค๋ก ์ด๋ํ๋ ๊ฒ์ด ๋ชจ๋ ๊ด๋ จ์์๊ฒ ๊ทธ๋ ๊ฒ ์์ฐ์ ์ด์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ ๋๋ฒ๊ทธํ๊ณ ๋ค๋ฅธ ๊ณณ์์ ๋ํ๋ฅผ ๋๋๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
์คํ๊ฐ ์์์ต๋๋ค. ๋ํ ์ด๋ ์ต์ด ๋ฐฐํฌ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ฐ์ํฉ๋๋ค.
์์ ์ธ๊ธํ๋ฏ์ด Jenkins์์ ๋ฐฐํฌ๋ฅผ ๊ธฐ๋ค๋ฆฐ ๋ค์ ๋ฐฐํฌ ์คํจ ์ฌ๋ถ๋ฅผ ์๋ฆฌ๊ธฐ ์ํด --wait
์ต์
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์๊ฐ ์ด๊ณผ์ ๋๋ฌํ๊ณ ๋ฐฐํฌ๊ฐ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒฝ์ฐ helm
๋ ๋ฐฐํฌ๋ฅผ failed
๋ก ํ์ํ์ผ๋ฉฐ ํด๋น ๋ฆด๋ฆฌ์ค๋ฅผ ์๋์ผ๋ก ์ญ์ ํ๋ ๊ฒ ์ธ์ ๋ณต๊ตฌ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฌด์ญ๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์๋์ผ๋ก ์ญ์ ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค.
๋ฐ๋ผ์ --wait
์ต์
์ ์ ๊ฑฐํ๋ฉด helm
๋ ๋ฐฐํฌ๋ฅผ successful
๋ก ํ์ํฉ๋๋ค.
์ด์ ๋ค๋ฅธ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค. ๋์ผํ ๋ฌธ์ ๊ฐ ์๊ณ ์๋ํ๊ฐ ์ด์ ์ ์๋ํ๋ ๊ฒ์ฒ๋ผ ์ ์๋ํ๊ธฐ๋ฅผ ์ํ๋ ์ฌ๋๋ค์ ์ํด ๋ค์์ ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
helm
๋ฐฐํฌ์์ --wait
์ต์
์ ๊ฑฐkubectl get deployments -n ${namespace} -o jsonpath='{range .items[*].metadata}{.name}{","}{end}'
split
๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ผํ๋ก ๊ตฌ๋ถ ๋ ๋ชฉ๋ก์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.kubectl rollout status deployment ${deploymentName} --watch=true --timeout=${timeout} -n ${namespace}
timeout
์ดํ์ ์๋ฅผ ๋ค์ด 7m
7 ๋ถ์ ์๋ฏธํ๊ณ ๋ฐฐํฌ๊ฐ ์ฌ์ ํ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒฝ์ฐ ๋ช
๋ น์ด ์ค๋ฅ์ ํจ๊ป ์ข
๋ฃ๋ฉ๋๋ค.์ฌ์ค-์ ๊ฒฝ ์ฐ์ง ๋ง์ธ์. ์ด๋ก ์ธํด ์ํฅ์๋ฐ๋ ์ฌ๋๋ค์ ์ํด ํ ๊ฐ์ง ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค. kubernetes์์ ์๋์ผ๋ก ๊ธฐ๋ก ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋๋ค. ๋น๋ฐ๋ก ์ ์ฅ๋ฉ๋๋ค. ๋ฌธ์ ๊ฐ๋๋
pending-install
์ํ ํญ๋ชฉ์ ์ญ์ ํ๋ฉดupgrade --install
๋ค์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค!
๋๋ ์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
helm uninstall {{release name}} -n {{namespace}}
kubectl -n $namespace delete secret -lstatus=pending-upgrade
๊ณ ์
์ง๊ธ ๋ค์ ์กฐํํ์ญ์์ค.
์ ์ด๊ฒ์ด ๋ซํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฐฉ๊ธ ์๋ก์ด Helm 3.3.4๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด๊ธฐ ์ค์น๊ฐ ์คํจํ๋ฉด ๋ ๋ฒ์งธ helm upgrade --install --force๊ฐ ์ฌ์ ํ ๋์ผํ ์ค๋ฅ๋ฅผ ํ์ํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ํ์ง๋ง ์๋ ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. 100 % ์๋ CI / CD๋ฅผ ์ํ ๋ ๋์์ด๋์ง ์์ต๋๋ค. 100 % ์๋ CI / CD๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ ๋ฆฌ๋ฅผ ์ํํ์ง ์๊ณ ๋ ์์ ์ฌํญ์ ํธ์ํ์ฌ ๋ค๋ฅธ ๋ฐฐํฌ๋ฅผ ํธ๋ฆฌ๊ฑฐ ํ ์ ์์ต๋๋ค.
๋๊ตฌ๋ ์ง ์ด๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์ด๋ฏ๋ก ์๋์ผ๋ก ์ญ์ ํ๋ ๊ฒ์ด ์์ ํด์ผํ๋ค๋ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์๊ฐํ ์ ์ด ์์ต๋๊น? ์๋๋ฉด "--force-delete-on-failure"์ ๊ฐ์ ๊ฒ์ ์ถ๊ฐ ํ์๊ฒ ์ต๋๊น? ๋ฌธ์ ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋์์ด๋์ง ์์ต๋๋ค.
@ nick4fake AFIK PR # 7653์ ์ํด ๋ซํ์ต๋๋ค. @yinzara ๋ ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
์ ๊ทธ๋ ์ด๋ ๋ณด๋ฅ์ค์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฎ์ด ์ฐ๋ ๊ฒ์ ํ์ฉํ์ง ์๊ธฐ๋ก ํ ์ ์ง ๊ด๋ฆฌ์์ ๊ฒฐ์ ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด CI / CD ํ์ดํ ๋ผ์ธ์์ ์๋ํ์ง ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ทํ์ ์ง์ ์ ์ฌ์ค์ด ์๋๋๋ค. helm ์ ๊ทธ๋ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ ์ ๋ง์ง๋ง์ผ๋ก ์ ์ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋น๋ ๋จ๊ณ๋ก ์ถ๊ฐ ํ ์ ์์ต๋๋ค (๋ํ CI / CD pipieline์์ --force๋ฅผ ์ฌ์ฉํ์ง ์์). ์คํจ์ ์์ธ์ ๋๋ฒ๊ทธ ํ ์ ์๋๋กํ๋ ๊ฒ์ด ์๋๋ผ ๋ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ค์นํ๊ธฐ ์ง์ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ ์ ์ํ ๊ฒ๊ณผ ๋์ผํ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๋ํ ์
๊ทธ๋ ์ด๋ ๋ช
๋ น์ ์คํํ๊ธฐ ์ ์ ์๋ํ ๋ ๋น๋์์ ๋ค์์ ์ฌ์ฉํ์ฌ "๋ณด๋ฅ์ค์ธ"๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ฑฐํ์ต๋๋ค (NS_NAME ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฐฐํฌ ํ ๋ค์ ์คํ์ด์ค๋ก ์ค์ ํด์ผ ํจ).
```bash
RELEASES = $ (helm list --namespace $ NS_NAME --pending --output json | jq -r '. [] | select (.status == "pending-install") | .name')
๋ง์ฝ [[ ! -z "$ RELEASES"]]; ๊ทธ๋
helm delete --namespace $ NS_NAME $ RELEASES
fi
@yinzara ์ค ๋ํซ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.์ด ์ค๋ ๋๋ฅผ ์ฐพ๋ ๋ถ๋ค์๊ฒ ๋งค์ฐ ๋์์ด๋ฉ๋๋ค.
๋ด ์์ ์ ์ฌ์ ํ โโ์ ํจํฉ๋๋ค. ๋จ์ํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์์ ํ์ง ์์ต๋๋ค. ๋จ์ผ ๋ฆฌ์์ค๊ฐ ์คํจํ๋ ๊ฒฝ์ฐ Helm ๊ฐ์ ์ ๊ทธ๋ ์ด๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํ ํ ์์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๋ฒ์ ์ผ๋ก ๊ต์ฒดํ๋ ๊ฒ์ด ์ ์ฒด ์ญ์ ๋ณด๋ค ๋ ๋์ ํด๊ฒฐ์ฑ ์ผ๋ก ๋ณด์ ๋๋ค. Helm์ ํต์ฌ ๊ธฐ๋ณธ ์ฌํญ (์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์)์ ์ดํดํ์ง ๋ชปํ ์ ์์ผ๋ฏ๋ก ๋ถ๊ฐ๋ฅํ ์ ์์ง๋ง ์ฒซ ๋ฒ์งธ ์ค์น๊ฐ ์คํจ ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ๊ฐ์ ํ๋๋กํ๋ ๊ฒ์ด ๋ ์ข์ ์ด์ ๋ฅผ ์ฌ์ ํ ์ดํดํ์ง ๋ชปํฉ๋๋ค.
์ด ํ ๋ก ์ค๋ ๋๋ฅผ ํ์ธํ๋ฉด ์ฌ๋๋ค์ด ์ฌ์ ํ ๋ฌธ์ ์ ์ง๋ฉด ํด ์์ต๋๋ค. ์ด ์ค๋ ๋์ ๋ํ ๋งํฌ์ ์ํ ํ ์์ ์ ๋ํ ๋ช ๊ฐ์ง ์ ์๊ณผ ํจ๊ป Helm ์ค๋ฅ ๋ฉ์์ง์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
@ nick4fake "์คํจ"์ "์ค์น ๋๊ธฐ ์ค"์ด ์์ฌ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์๋ ์คํจํ ๋ฆด๋ฆฌ์ค์ ๋ํด ๊ทํ์ ๋์ํ๋ฏ๋ก ๋ด PR์ ์๋ฝํ์ต๋๋ค.
"์คํจํ"๋ฆด๋ฆฌ์ค๋ ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ PR์ด ํ ์ผ์ ๋๋ค. ๋ฆฌ์์ค ์ค ํ๋๊ฐ ์คํจํ์ฌ ๋ฆด๋ฆฌ์ค๊ฐ ์คํจํ๋ฉด ํด๋น ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค (์ : upgrade --install๋ ์๋ ํจ). ๊ทธ๋ฌ๋ฉด "app-name"์ ๋ฐฐํฌ ๋ ๋ฆด๋ฆฌ์ค ์์ ์ค๋ฅ๊ฐ ํ์๋์ง ์์ต๋๋ค.
"์ค์น ๋๊ธฐ ์ค"๋ฆด๋ฆฌ์ค์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ ์ง ๊ด๋ฆฌ์๋ ๋ณด๋ฅ์ค์ธ ์ค์น ๋ฆด๋ฆฌ์ค (๊ฐ์ ๋๋ ๊ธฐํ)๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด ์์ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์์ง ์งํ ์ค์ด๊ฑฐ๋ ์๋์ผ๋ก ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ์ ์ผ๋ก ์๋ฃ๋ ์ํ ์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ด PR์ ์๋์ด ์ํ๋ฅผ ํ์ฉํ๊ณ ๊ด๋ฆฌ์๋์ด๋ฅผ ์ ๊ฑฐํ๋๋ก ์์ฒญํ์ต๋๋ค.
์ด ์ํ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ ๋ฐฐํฌ ๊ตฌ์ฑ์ ์ฌ๊ณ ํ ์ ์์ต๋๋ค. ์ ๋๋ก ๊ตฌ์ฑ๋ CI / CD ํ์ดํ ๋ผ์ธ์์๋ ์ด๋ฐ ์ผ์ด ๋ฐ์ํด์๋ ์๋ฉ๋๋ค. ์คํจํ๊ฑฐ๋ ์ฑ๊ณตํด์ผํฉ๋๋ค. "๋ณด๋ฅ ์ค"์ ์ค์น๊ฐ ์์ง ์ฒ๋ฆฌ๋๋ ๋์ ์ทจ์๋์์์ ์๋ฏธํฉ๋๋ค.
๋๋ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์๋๋ฏ๋ก ๊ทํ์ ์ ์์ ๋ํ ๋ด ์๊ฒฌ์ ๊ด๋ จ์ด ์์ง๋ง ์ค์ ๋ก ์ค๋ฅ ๋๋ ๋ฉ์์ง๋ก ์ธ์ ๋ Github ๋ฌธ์ ์ ๋ํ ์ฝ๋๋ฒ ์ด์ค์ ์ธ๊ธ์ ์ฐพ์ง ๋ชปํ๋ฏ๋ก ํ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง ๋น์ ์ PR์ ์์ฑํ๊ณ ์ฐธ์กฐํ์ญ์์ค :-)
์ฆ, ๊ทํ์ ์์ ์ด ์ฌ์ ํ ์ ํจํ๋ค๋ ๊ทํ์ ์ง์ ์ ๋์ํ์ง ์์ต๋๋ค. ๋ด ์ ์์ ๋ณด๋ฅ์ค์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ฑฐ ํ ์ ์์ง๋ง @abdennour ์ ์์ ๋ณด๋ฅ์ค์ธ ์ค์น ๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋ช ํ๋ ๋น๋ฐ์ ์ญ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ฆด๋ฆฌ์ค์์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ์ง ์๊ณ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค.
์ด ์ค๋ ๋์ ๋ํ ๋งํฌ์ ์ํ ํ ์์ ์ ๋ํ ๋ช ๊ฐ์ง ์ ์๊ณผ ํจ๊ป Helm ์ค๋ฅ ๋ฉ์์ง์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
์ด๊ฒ์ +1. ์ด ์ค๋ ๋๋ฅผ ์ฐพ๊ณ pending-install
๋ฆด๋ฆฌ์ค๊ฐ ๋ฌด์์ธ์ง ์ดํดํ๋ ค๋ฉด ์ฌ์ ํ Google์ ๊ฒ์ํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด์ด ์ค๋ฅ ๋ฉ์์ง์ ๋ํ ์ถ๋ก ์ ์์ํ ์ ์์ต๋๋ค.
๋๋ helm upgrade
๋ฌธ์ ๊ฐ ์์๊ณ ๊ทธ๊ฒ์ด ๋๋ฅผ ์ฌ๊ธฐ๋ก ์ด๋์์ต๋๋ค. -n <namespace>
์ถ๊ฐํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค. ์ด์ฉ๋ฉด ๊ทธ๊ฒ์ ๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ๊ฒ์
๋๋ค.
Helm3์ ๊ฒฝ์ฐ ํจ์น๋ฅผ ํตํด ํด๊ฒฐํ ์ ์์
kubectl -n <namespace> patch secret <release-name>.<version> --type=merge -p '{"metadata":{"labels":{"status":"deployed"}}}'
release-name
๋ฐ version
- kubectl get secrets -n <namespace> | grep helm
์์ ๋ณผ ์ ์์
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ ์ด์ ๋์ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ์์ฐ์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐจํธ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋๋ฉฐ ๊ฐ์ ๋ก ์ค์นํ๋ ๊ฒ์ ์ํ ํด ๋ณด์ ๋๋ค. ์ด ์ค๋ฅ๋ Helm 3์๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ๋๋ ๋ ์์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํฌํจํ๋ ๊ฒ์ด ์ข์ต๋๋ค.