Helm: k8s 1.5-> 1.6์—์„œ ์ฃผ์„์—์„œ spec.affinity๋กœ statefulset ์„ ํ˜ธ๋„๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋ชปํ•จ

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

๋ฌธ์ œ

๋ฐฉ๊ธˆ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ k8s 1.5์—์„œ 1.6์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ๊ณ  1.5 ์ฃผ์„ ๋Œ€์‹  spec.affinity๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์‚ฌ์œก์‚ฌ ์ฐจํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Error: UPGRADE FAILED: StatefulSet.apps "zk" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas' and 'containers' are forbidden.

์งˆ๋ฌธ

๊ธฐ์กด ์‚ฌ์œก์‚ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์ฐจํŠธ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?
...์—์„œ

annotations:
    scheduler.alpha.kubernetes.io/affinity: >
      {
        "podAntiAffinity": {
          "requiredDuringSchedulingIgnoredDuringExecution": [
            {
              "labelSelector": {
                "matchExpressions": [
                  {
                    "key": "app",
                    "operator": "In",
                     "values": ["zk-headless"]
                  }
                ]
              },
              "topologyKey": "kubernetes.io/hostname"
            }
          ]
        }
}

...์—

affinity:
  podAntiAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
                - key: "app"
                  operator: In
                  values: 
                  - zk-headless
  topologyKey: "kubernetes.io/hostname"
questiosupport

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

์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด StatefulSet๋Š” ์•ŒํŒŒ ๊ฐœ์ฒด (ํ˜„์žฌ 1.8 ์šฉ ๋ฒ ํƒ€ ๋ฒ„์ „)์ด๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ helm์œผ๋กœ ์•ˆ์ •์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” kubernetes์—์„œ ๋ถˆ์•ˆ์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ œ์–ด ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” ์ง์Šน์˜ ํŠน์„ฑ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค!

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

๋˜ํ•œ 1.6์—์„œ ์ฃผ์„์œผ๋กœ ์„ ํ˜ธ๋„๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#scheduling ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ์ด ๋ฌธ์ œ๋Š” ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 1.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ƒํƒœ ์ €์žฅ ์„ ํ˜ธ๋„๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์—…์ŠคํŠธ๋ฆผ ๋ฌธ์ œ์ด๋ฏ€๋กœ ์•ˆํƒ€๊น๊ฒŒ๋„ ์—ฌ๊ธฐ์„œ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์—†์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•˜๋ ค๋ฉด https://github.com/kubernetes/kubernetes ์—์„œ ํ‹ฐ์ผ“์„ ์—ด๊ฑฐ ๋‚˜ ๊ธฐ์กด ํ‹ฐ์ผ“์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด StatefulSet๋Š” ์•ŒํŒŒ ๊ฐœ์ฒด (ํ˜„์žฌ 1.8 ์šฉ ๋ฒ ํƒ€ ๋ฒ„์ „)์ด๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ helm์œผ๋กœ ์•ˆ์ •์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” kubernetes์—์„œ ๋ถˆ์•ˆ์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์ œ์–ด ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” ์ง์Šน์˜ ํŠน์„ฑ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰