Helm: μ„ΈνŠΈμ˜ λ³΅μž‘ν•œ 객체 지원

에 λ§Œλ“  2017λ…„ 03μ›” 03일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: helm/helm

μ±„νŒ…μ—μ„œ --set λ₯Ό 톡해 이와 같은 객체λ₯Ό μ •μ˜ν•˜λŠ” κΈ°λŠ₯에 λŒ€ν•΄ λ¬Όμ—ˆκ³  μŠ¬ν”„κ²Œλ„ 진싀에 μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€.

env:
  - name: ROUTER
    value: cake
  - name: PASSWORD
    value: derp

λ‚΄ values.yaml μ—μ„œ 이와 같은 μŠ€νƒ μžλ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • μ»¨ν…Œμ΄λ„ˆ 사양에 λŒ€ν•œ 전체 ν™˜κ²½ λ³€μˆ˜ μš”κ΅¬ 사항을 μ •μ˜ν•˜λ―€λ‘œ μ‚¬μ–‘μ—μ„œ λ‹€μŒλ§Œ ν•„μš”ν•©λ‹ˆλ‹€.

        env:
{{ toYaml .Values.env | indent 10 }}

이것이 μœ μš©ν•œ μ΄μœ λŠ” 많이 μžˆμŠ΅λ‹ˆλ‹€.

  1. λ‚΄ 앱에 빈 λ³€μˆ˜λ₯Ό μ „λ‹¬ν•˜λŠ” 것에 λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
  2. λ³€μˆ˜λŠ” λͺ¨λ‘ ν•œ μœ„μΉ˜μ— μ •μ˜λ˜μ–΄ μžˆμœΌλ―€λ‘œ λ³€μˆ˜ 이름이 λ³€κ²½λ˜λ©΄ λΉ λ₯΄κ²Œ μ„€μ •ν•˜κ³  이동할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 메인 ν”„λ‘œμ„ΈμŠ€μ— λͺ‡ 가지 λ‹€λ₯Έ λ³€μˆ˜λ₯Ό μ „λ‹¬ν•˜κΈ°λ₯Ό μ›ν•˜κΈ° λ•Œλ¬Έμ— deployment κ°œμ²΄μ™€ 같은 것을 μ™„μ „νžˆ μž¬λ°°ν¬ν•˜λŠ” 것에 λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μ•ˆνƒ€κΉκ²Œλ„ μ΄λŸ¬ν•œ μœ ν˜•μ˜ 개체λ₯Ό μ „λ‹¬ν•˜λŠ” 것은 ν˜„μž¬ μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν˜„μž¬λ‘œμ„œλŠ” 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ°€μž₯ 쒋은 λ°©λ²•μœΌλ‘œ λ‚΄ ν…œν”Œλ¦Ώμ—μ„œ λ°”λ‘œ if 문을 μ‚¬μš©ν•˜μ§€λ§Œ, values.yaml μ—μ„œ λ‚΄ 앱에 λŒ€ν•œ 잠재적으둜 동적인 μ •λ³΄μ˜ 큰 면봉을 μ •μ˜ν•˜λŠ” 것은 정말 λ©‹μ§ˆ κ²ƒμž…λ‹ˆλ‹€.

feature

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이것은 이제 λ‹€μŒ ꡬ문을 μ‚¬μš©ν•˜μ—¬ κ°€λŠ₯ν•©λ‹ˆλ‹€.

helm install foo --set env[0].name="ROUTER",env[0].value="cake"

이것은 μ—¬κΈ° 에 λ¬Έμ„œν™”λ˜μ–΄

λͺ¨λ“  3 λŒ“κΈ€

μ‹€μ œλ‘œ kube-lego 관찰을 톡해 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 또 λ‹€λ₯Έ 방법을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

          {{- range $key, $value := .Values.config }}
            - name: "{{ $key }}"
              value: "{{ $value }}"
          {{- end }}

λ‚΄ λ¬Έμ œλ„ λΉ„μŠ·ν•©λ‹ˆλ‹€.
λ‹€μŒ μœ„μΉ˜μ—μ„œ Chart aws-cluster-autoscalerλ₯Ό μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.
https://github.com/kubernetes/charts/tree/master/stable/aws-cluster-autoscaler

--set μ‚¬μš©ν•˜μ—¬ λͺ…령쀄을 톡해 autoscalingGroups[].name을 μ „λ‹¬ν•˜κ³  params.yaml νŒŒμΌμ„ 톡해 λ‹€λ₯Έ 정보λ₯Ό μ „λ‹¬ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

autoscalingGroups:
- minSize: 2
  maxSize: 8
awsRegion: eu-west-1

λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ μžλ™ ν™•μž₯ κ·Έλ£Ή 이름을 μ„€μ •ν•˜λ €κ³  ν•  λ•Œ:

$ helm upgrade cluster-autoscaler stable/aws-cluster-autoscaler -f params.yaml --set "autoscalingGroups[].name"="nodes.k8s.test.eu-west-1.aws.redacted.net"

ν•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ¬Έμ„œλ₯Ό 읽으면 이것이 μ•Œλ €μ Έ μžˆμ§€λ§Œ μ—¬μ „νžˆ 이것을 ν•  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

이것은 이제 λ‹€μŒ ꡬ문을 μ‚¬μš©ν•˜μ—¬ κ°€λŠ₯ν•©λ‹ˆλ‹€.

helm install foo --set env[0].name="ROUTER",env[0].value="cake"

이것은 μ—¬κΈ° 에 λ¬Έμ„œν™”λ˜μ–΄

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰