helm upgrade
์์ ConfigMaps๊ฐ ์
๋ฐ์ดํธ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ์๊ตฌ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋ฏ๋ก ์ฌํ ๋ฐฉ๋ฒ์ ์ ํํ ์ค๋ช
ํ ์ ์์ต๋๋ค. ๊ฐ๋ฅํ ํ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์๊ตฌ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋ผ๋ ๋ง์ ConfigMaps๋ฅผ ๋ณ๊ฒฝํ ๋ ํญ์ ๋ฐ์ํ๋ ๊ฒ์ ์๋์ง๋ง ๋ฐ์ํ๋ฉด ์
๊ทธ๋ ์ด๋๋ฅผ ๋ช ๋ฒ์ด๊ณ ์คํํ ์ ์์ผ๋ฉฐ ๊ฐ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ConfigMap์ด ์์ต๋๋ค. APP_DOMAIN
์ ๊ฐ์ test.mydomain.com
์์ develop.europa.mydomain.com
๋ก ๋ณ๊ฒฝํ๋ ค๊ณ ํฉ๋๋ค.
kubectl describe cm jupiter-config
Name: jupiter-config
Namespace: develop
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","data":{"API_URL":"http://node-services","APP_DOMAIN":"test.mydomain.com","LOG_LEVEL":"info",...
Data
====
SHOW_ADS:
----
true
API_URL:
----
http://node-services
APP_DOMAIN:
----
test.mydomain.com
HTTP_DEBUG:
----
true
LOG_LEVEL:
----
info
์ด ๊ฐ์ develop.europa.mydomain.com
๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด helm upgrade
๋ฅผ ์คํํฉ๋๋ค. Helm์ ๋๋ฒ๊ทธ ์ถ๋ ฅ์ ๋ณผ ์ ์์ต๋๋ค. ์
๊ทธ๋ ์ด๋๋ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์ง๋ง ConfigMap์ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
helm version
์ถ๋ ฅClient: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
helm upgrade
์ถ๋ ฅREVISION: 61
RELEASED: Tue May 23 15:11:34 2017
CHART: jupiter-0.1.0
USER-SUPPLIED VALUES:
cluster: europa
config:
API_URL: http://node-services
APP_DOMAIN: develop.europa.mydomain.com
HTTP_DEBUG: "true"
LOG_LEVEL: info
SHOW_ADS: "true"
resources:
limits:
cpu: 500m
memory: 500Mi
requests:
cpu: 100m
memory: 100Mi
scaling:
maxReplicas: 4
minReplicas: 2
version: 1
COMPUTED VALUES:
cluster: europa
config:
API_URL: http://node-services
APP_DOMAIN: develop.europa.mydomain.com
HTTP_DEBUG: "true"
LOG_LEVEL: info
SHOW_ADS: "true"
resources:
limits:
cpu: 500m
memory: 500Mi
requests:
cpu: 100m
memory: 100Mi
scaling:
maxReplicas: 4
minReplicas: 2
version: 1
HOOKS:
MANIFEST:
---
# Source: jupiter/templates/config.yaml
kind: ConfigMap
apiVersion: v1
metadata:
name: jupiter-config
data:
API_URL: http://node-services
APP_DOMAIN: develop.europa.mydomain.com
HTTP_DEBUG: "true"
LOG_LEVEL: info
SHOW_ADS: "true"
configmap์ด kubectl๋ก ์์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. Helm์ ํด๋ฌ์คํฐ์์ ์คํ์ค์ธ ๊ฒ์ด ์๋๋ผ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์์ ๋ค๋ฆ ๋๋ค.
์, ๊ทธ๋ด ๊ฒ์ ๋๋ค. ๋น ๋ฅธ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๋์ผํ ๋ฌธ์ ๋ก ์ธํด helm์ด configmap์ ์
๋ฐ์ดํธํ์ง ๋ชปํ ๊ฒ์ ์์๋ด๋ ๋ฐ ๋ช ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ํผ๋์ค๋ฝ๊ณ kubectl๋ก configmap์ ์์ ํ๋ฉด 1) helm configmap ๊ฐ์ ์
๋ฐ์ดํธํ๊ฑฐ๋ 2) configmap์ ์ญ์ ํ๊ณ helm์ ์ฌ์ฉํ์ฌ ์ฌ๋ฐฐํฌํ๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ ์
๋ฐ์ดํธ๋์ง ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ --force
ํ๋๊ทธ๋ฅผ ์ธ์ํ์ฌ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค๋ก ํ์ธํ์ง ์๊ณ ํด๋ฌ์คํฐ์์ ์คํ์ค์ธ ๊ฒ์ผ๋ก ํ์ธํ ์ ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋์ผํ ๋ฌธ์ ๋ก ์ธํด helm์ด configmap์ ์ ๋ฐ์ดํธํ์ง ๋ชปํ ๊ฒ์ ์์๋ด๋ ๋ฐ ๋ช ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ํผ๋์ค๋ฝ๊ณ kubectl๋ก configmap์ ์์ ํ๋ฉด 1) helm configmap ๊ฐ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ 2) configmap์ ์ญ์ ํ๊ณ helm์ ์ฌ์ฉํ์ฌ ์ฌ๋ฐฐํฌํ๋ ๊ฒ์ ์ ์ธํ๊ณ ๋ ์ ๋ฐ์ดํธ๋์ง ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋
--force
ํ๋๊ทธ๋ฅผ ์ธ์ํ์ฌ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค๋ก ํ์ธํ์ง ์๊ณ ํด๋ฌ์คํฐ์์ ์คํ์ค์ธ ๊ฒ์ผ๋ก ํ์ธํ ์ ์์ต๋๊น?