Kubeadm: node-cidr-mask-size๋ฅผ controllerManagerExtra arg๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ์šฐ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 03์›” 07์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubeadm

์ด ํ•ญ๋ชฉ์„ ์ œ์ถœํ•˜๊ธฐ ์ „์— kubeadm ๋ฌธ์ œ์—์„œ ์–ด๋–ค ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์…จ์Šต๋‹ˆ๊นŒ?

controllerManagerExtraArgs, node-cidr-mask-size

์ด๊ฒƒ์€ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๊ธฐ๋Šฅ ์š”์ฒญ์ž…๋‹ˆ๊นŒ?

๋ฒ„๊ทธ ๋ณด๊ณ 

๋ฒ„์ „

kubeadm ๋ฒ„์ „ ( kubeadm version ): v1.9.3

ํ™˜๊ฒฝ :

  • Kubernetes ๋ฒ„์ „ ( kubectl version ): v1.9.3
  • ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ : VirtualBox
  • OS (์˜ˆ: /etc/os-release์—์„œ):
    NAME="Container Linux by CoreOS" ID=coreos VERSION=1576.4.0 VERSION_ID=1576.4.0 BUILD_ID=2017-12-06-0449 PRETTY_NAME="Container Linux by CoreOS 1576.4.0 (Ladybug)" ANSI_COLOR="38;5;75" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://issues.coreos.com" COREOS_BOARD="amd64-usr"
  • ์ปค๋„ (์˜ˆ: uname -a ): Linux k8s-master 4.13.16-coreos-r2 #1 SMP Wed Dec 6 04:27:34 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz ์ •ํ’ˆ์ธํ…” GNU/๋ฆฌ๋ˆ…์Šค
  • ๊ธฐํƒ€ :

๋ฌด์Šจ ์ผ์ด์—์š”?

๋‚ด๊ฐ€ ์ง€์ •๋˜์—ˆ๋‹ค node-cidr-mask-size ์•„๋ž˜ kubeadm ์„ค์ • ํŒŒ์ผ์—์„œ controllerManagerExtraArgs ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. kube-controller-manager๋Š” --node-cidr-mask-size ์˜ 2๊ฐœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋Š” kubeadm์ด ๋‚ด๊ฐ€ ์„ค์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žฌ์ •์˜ํ•˜๋Š” ๊ธฐ๋ณธ๊ฐ’์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

kube-controller-manager๋Š” --node-cidr-mask-size ์˜ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์ ์–ด๋„ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ ์ธ์Šคํ„ด์Šค๋Š” ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋˜์–ด์•ผ ์šฐ์„ ๊ถŒ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•(๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์†Œํ•œ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ)?

  1. myconfig.yaml ํŒŒ์ผ์˜ ๋‚ด์šฉ์œผ๋กœ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ kubeadm init --config=myconfig.yaml ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration api: advertiseAddress: "fd10::101" networking: serviceSubnet: fd30::0/110 podSubnet: "fd20:0::/120" controllerManagerExtraArgs: node-cidr-mask-size: "120"
  2. kube-controller-manager๊ฐ€ ์‹œ์ž‘๋˜๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ kubeadm์„ ์‚ฌ์šฉํ•˜์—ฌ IPv6 ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ  podSubnet์„ ์ง€์ •ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

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

@tmjd networking.podSubnet ๋ฅผ controllerManagerExtraArgs.cluster-cidr ํ•˜๊ณ  allocate-node-cidrs ๋„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. podSubnet ์ด ์ง์ ‘ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ์˜ˆ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ณธ์งˆ์ ์œผ๋กœ ์—ฌ๊ธฐ์—์„œ kubeadm์˜ if ๋ฌธ์„ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

kubeadm์ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ podSubnet ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š์ง€๋งŒ ์ œ๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ๋” ์ง€์›๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ cidr ๋งˆ์Šคํฌ ํฌ๊ธฐ๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

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

1.9.6์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ networking ํ‚ค ์•„๋ž˜์˜ ์˜ต์…˜์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์‹œ์ž‘๊ณผ ๋์—์„œ ๋‘ ๋ฒˆ ๊ตฌ์„ฑ์— --node-cidr-mask-size ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.

@tmjd networking.podSubnet ๋ฅผ controllerManagerExtraArgs.cluster-cidr ํ•˜๊ณ  allocate-node-cidrs ๋„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. podSubnet ์ด ์ง์ ‘ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ์˜ˆ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ณธ์งˆ์ ์œผ๋กœ ์—ฌ๊ธฐ์—์„œ kubeadm์˜ if ๋ฌธ์„ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

kubeadm์ด ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ podSubnet ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š์ง€๋งŒ ์ œ๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ๋” ์ง€์›๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋…ธ๋“œ cidr ๋งˆ์Šคํฌ ํฌ๊ธฐ๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

@tmjd ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋งˆ์Šคํ„ฐ์˜ ๋‹ค์Œ kubeadm ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
ํ˜„์žฌ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"2018-06-06T08:00:59Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์—ฌ๊ธฐ์—์„œ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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