Kubernetes: kubeadm 1.6.0(1.6.0๋งŒ!!)์ด kubelet NotReady๋ฅผ ๋งŒ๋“œ๋Š” ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ CNI๋กœ ์ธํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

https://github.com/kubernetes/kubeadm/issues/212์˜ ์ดˆ๊ธฐ ๋ณด๊ณ ์„œ

๋‚˜๋Š” ์ด๊ฒƒ์ด https://github.com/kubernetes/kubernetes/pull/43474 ์— ๋„์ž…๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€(๋‹จ์ผ ๋งˆ์Šคํ„ฐ์—์„œ ๋ชจ๋‘):

  1. kubeadm starts๋Š” kubelet์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ •์  ํฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ด ํ‰๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. kubeadm์€ ๋…ธ๋“œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  kubelet์ด ๊ฐ€์ž…ํ•˜๊ณ  ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  3. kubelet์€ ์ค€๋น„๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ kubeadm์€ ์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๋…ธ๋“œ์˜ ์กฐ๊ฑด ๋ชฉ๋ก์—์„œ:

  Ready         False   Wed, 29 Mar 2017 15:54:04 +0000     Wed, 29 Mar 2017 15:32:33 +0000     KubeletNotReady         runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

์ด์ „ ๋™์ž‘์€ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ CNI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ kubelet์ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํ‚น๊ณผ ํ•จ๊ป˜ DaemonSet์„ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ CNI๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์กฐ์ธ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ DaemonSet๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CNI๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

@mikedanese ํŽธ์ง‘: ํŒจ์น˜๋œ ๋ฐ๋น„์•ˆ amd64 kubeadm https://github.com/kubernetes/kubernetes/issues/43815#issuecomment -290616036์„ ์ˆ˜์ •ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

prioritcritical-urgent sinetwork

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

Ubuntu 16.04์— kubeadm์„ ์‚ฌ์šฉํ•˜์—ฌ kubernetes๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ˆ˜์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

/ ์ฐธ์กฐ @lukemarsden @luxas @mikedanese

#43474๋ฅผ ์™„์ „ํžˆ ๋˜๋Œ๋ฆฌ๋ฉด ๋‹ค์‹œ 0.2.0 CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ค‘๋‹จํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฉ๋‹ˆ๋‹ค(https://github.com/kubernetes/kubernetes/issues/43014 ์ฐธ์กฐ).

https://github.com/kubernetes/kubernetes/pull/43284 ์™€ ๊ฐ™์€ ์ž‘์—…์„ ๊ณ ๋ คํ•ด์•ผ

๋˜ํ•œ /cc @thockin

/ cc @ kubernetes / ์„œ๋ช… ๋„คํŠธ์›Œํฌ ๋ฒ„๊ทธ

@jbeda --loglevel=5๋กœ ์ผ๋ถ€ kubelet ๋กœ๊ทธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@yujuhong -- ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋‹ค๊ณ 

ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ Slack ํ† ๋ก  -- https://kubernetes.slack.com/archives/C09QYUH5W/p1490803144368246

๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ DaemonSets๊ฐ€ ๊ณ„์† ์˜ˆ์•ฝ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง๋กœ, ์ด ๊ฒฝ์šฐ kubeadm ๊ฐ€ ๋„ˆ๋ฌด ํŽธ์ง‘์ฆ์ ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธํ•  ํ˜„์žฌ ๊ณ„ํš์€ kubeadm ๊ฐ€ ๋” ์ด์ƒ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋Œ€์‹  ๋“ฑ๋ก๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ CNI DaemonSet์ด CNI๋ฅผ ์„ค์ •ํ•˜๋„๋ก ์˜ˆ์•ฝํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@kensimon ์ด ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@jbeda ์˜ˆ, DaemonSet ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ฃผ๋กœ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ์™„์ „ํžˆ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† ๋Œ€๊ธฐ์—ด์— ๋„ฃ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. kube์—์„œ ์ฆ‰์‹œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ์€ ๋ชจ๋‘ kubeadm์— ์žˆ์Šต๋‹ˆ๊นŒ?

Ubuntu 16.04์— kubeadm์„ ์‚ฌ์šฉํ•˜์—ฌ kubernetes๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ˆ˜์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@jbeda ํŒจ์น˜๋œ ๋ฒ„์ „์ด ์žˆ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”..

kubeadm์ด ๋…ธ๋“œ์˜ NotReady ์ƒํƒœ๋ฅผ ๋„˜์–ด์„œ๊ณ  ์žˆ์ง€๋งŒ node.alpha.kubernetes.io/notReady ์˜ค์—ผ์œผ๋กœ ์ธํ•ด ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋”๋ฏธ ๋ฐฐํฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ ์˜ค์ฐจ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. notReady ์˜ค์—ผ์„ ํ—ˆ์šฉํ•˜๋Š” ํฌ๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋…ธ๋“œ๋ฅผ notReady๋กœ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜ต์…˜์„ ์‚ดํŽด๋ณด๊ณ  ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” kubelet ๋ช…๋ น์ค„์—์„œ KUBELET_NETWORK_ARGS๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ kubeadm init๊ฐ€ ์ž˜ ์ž‘๋™ํ–ˆ๊ณ  canal cni ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@sbezverk ๊ทธ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@sbezverk (good find :)) ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ  /etc/systemd/system/10-kubeadm.conf๋ฅผ ์กฐ์ •ํ•˜๊ณ  KUBELET_NETWORK_ARGS๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด centos์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ง์กฐ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

@overip /etc/systemd/system/kubelet.service.d/10-kubeadm.conf๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ExecStart = / usr / bin / kubelet $ KUBELET_KUBECONFIG_ARGS $ KUBELET_SYSTEM_PODS_ARGS $ KUBELET_NETWORK_ARGS $ KUBELET_DNS_ARGS $ KUBELET_AUTHZ_ARGS $ KUBELET_EXTRA_ARGS

$ KUBELET_NETWORK_ARGS ์ œ๊ฑฐ

๊ทธ๋Ÿฐ ๋‹ค์Œ bebeadm init๊ฐ€ ์ž‘๋™ํ•ด์•ผ kubelet์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•œ ์ผ์ด๋‹ค

kubeadm ์žฌ์„ค์ •

๋‹ค์Œ์—์„œ ENV ํ•ญ๋ชฉ ์ œ๊ฑฐ:

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

systemd ๋ฐ kube ์„œ๋น„์Šค ๋‹ค์‹œ ๋กœ๋“œ

systemctl ๋ฐ๋ชฌ ๋‹ค์‹œ ๋กœ๋“œ
systemctl kubelet.service ์žฌ์‹œ์ž‘

์ดˆ๊ธฐํ™” ๋‹ค์‹œ ์‹คํ–‰

kubeadm ์ดˆ๊ธฐํ™”

๋ชจ๋‘ ๋งž์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์— ์žˆ๋Š” ๋™์•ˆ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
kubelet: ์˜ค๋ฅ˜: Kubelet ์‹คํ–‰ ์‹คํŒจ: kubelet ์ƒ์„ฑ ์‹คํŒจ: ์ž˜๋ชป๋œ ๊ตฌ์„ฑ: kubelet cgroup ๋“œ๋ผ์ด๋ฒ„: "cgroupfs"๊ฐ€ docker cgroup ๋“œ๋ผ์ด๋ฒ„์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค: "systemd"

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  --cgroup-driver="systemd" ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด

kuebadm ์žฌ์„ค์ •
systemctl ๋ฐ๋ชฌ ๋‹ค์‹œ ๋กœ๋“œ
systemctl kubelet.service ์žฌ์‹œ์ž‘
kubeadm ์ดˆ๊ธฐํ™”.

kubelet CLI ํ”Œ๋ž˜๊ทธ์—์„œ --network-plugin=cni ๋ฅผ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์ œ๊ฑฐํ•˜๋ฉด kubelet์ด ๊ธฐ๋ณธ์ ์œผ๋กœ no_op ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค... calico/weave์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ด ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•œ๋‹ค๋ฉด ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์•„๋ž˜์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‚˜์˜ ์ดํ•ด๊ฐ€ ์•ฝ๊ฐ„ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.)

@kensimon ํ , ๋‚ด ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. canal cni ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ฐฐํฌํ–ˆ๋Š”๋ฐ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@sbezverk ํ˜ธ์ŠคํŠธ ๊ฐ„ ๋„คํŠธ์›Œํ‚น๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

@resouer ๋Š” ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋ฉฐ

@resouer @sbezverk ๋จธ์‹ ์— ์„ฑ๊ณต์ ์œผ๋กœ ํ•ฉ๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

 [root@deploy-01 x86_64]# kubectl get nodes
 NAME        STATUS    AGE       VERSION
 deploy-01   Ready     51m       v1.6.0
 master-01   Ready     4m        v1.6.0

``` [ root@deploy-01 x86_64]# kubectl ํฌ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ -n kube-system
์ด๋ฆ„ ์ค€๋น„ ์ƒํƒœ ๋‹ค์‹œ ์‹œ์ž‘ ์—ฐ๋ น
etcd-deploy-01 1/1 ์‹คํ–‰ 0 50m
kube-apiserver-deploy-01 1/1 ์‹คํ–‰ 0 51m
kube-controller-manager-deploy-01 1/1 ์‹คํ–‰ 0 50m
kube-dns-3913472980-6plgh 3/3 ์‹คํ–‰ 0 51m
kube-proxy-mbvdh 1/1 ์‹คํ–‰ 0 4m
kube-proxy-rmp36 1/1 ์‹คํ–‰ 0 51m
kube-scheduler-deploy-01 1/1 ์‹คํ–‰ 0 50m
kubernetes-dashboard-2396447444-fm8cz 1/1 ์‹คํ–‰ 0 24m
weave-net-3t487 2/2 ๋Ÿฌ๋‹ 0 44m
weave-net-hhcqp 2/2 ์‹คํ–‰ 0 4m

```

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜์ง€๋งŒ ํ”Œ๋ž€๋„ฌ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

@stevenbower ์ตœ์•…์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์ด ์„ค์ •์„ ๋˜๋Œ๋ฆฌ๊ณ  kubeadm ๋น„์ฆˆ๋‹ˆ์Šค๊ฐ€ ๋๋‚˜๋ฉด kubelet์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค..

weave ์ž‘๋™ํ•˜๋Š” 3๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•ดํ‚น์œผ๋กœ ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์•ˆ์ •์ ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์–ด์จŒ๋“  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! : ์Šค๋งˆ์ผ :

๋งˆ์Šคํ„ฐ์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ํ†ต๊ณผํ•œ ํ›„ ์‚ฌ์ด๋“œ ๋…ธ๋“œ์—์„œ $KUBELET_NETWORK_ARGS๋ฅผ ๋‹ค์‹œ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๊ฐ€์ž…ํ•œ ์ปดํ“จํ„ฐ์—์„œ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  cgroup-driver๋งŒ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด kubelet๊ณผ docker๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ kubeadm์„ ์žฌ์„ค์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. /etc/systemd/system/kubelet.service.d/10-kubeadm.conf๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  systemctl ๋Œ„์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

systemctl ๋ฐ๋ชฌ ๋‹ค์‹œ ๋กœ๋“œ
systemctl kubelet.service ์žฌ์‹œ์ž‘

KUBELET_NETWORK_ARGS๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ณด๊ณ ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ:

์ œ ๊ฒฝ์šฐ์—๋Š” 2๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” https://github.com/kubernetes/kubernetes/pull/43824 ์—์„œ ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜๊ณ  kubeadm์ด ์ดˆ๊ธฐํ™” ์‹œ ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” KUBELET_NETWORK_ARGS๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. KUBELET_NETWORK_ARGS๊ฐ€ ์ œ๊ฑฐ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํฌ๋“œ ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

KUBELET_NETWORK_ARGS๊ฐ€ ์ œ๊ฑฐ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ:

$ kubectl run nginx --image=nginx
deployment "nginx" created
$ kubectl expose deployment nginx --port 80
service "nginx" exposed
$ kubectl run --rm -i -t ephemeral --image=busybox -- /bin/sh -l
If you don't see a command prompt, try pressing enter.
/ # wget nginx.default.svc.cluster.local
wget: bad address 'nginx.default.svc.cluster.local'

์ผ๋ฐ˜ KUBELET_NETWORK_ARGS๊ฐ€ ์žˆ์ง€๋งŒ ํŒจ์น˜๋œ kubeadm์ด ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ:

$ kubectl run nginx --image=nginx          
deployment "nginx" created
$ kubectl expose deployment nginx --port 80
service "nginx" exposed
$ kubectl run --rm -i -t ephemeral --image=busybox -- /bin/sh -l
If you don't see a command prompt, try pressing enter.
/ # wget nginx.default.svc.cluster.local
Connecting to nginx.default.svc.cluster.local (10.109.159.41:80)
index.html           100% |********************************************************************************************|   612   0:00:00 ETA

KUBELET_NETWORK_ARGS๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ์‚ฌ์šฉ์ž ์ค‘ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ ์œ„์˜ ๋‚ด์šฉ์ด ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋…ธ๋“œ ์ค€๋น„์™€ ๋”๋ฏธ ๋ฐฐํฌ ํ™•์ธ์„ ๋ชจ๋‘ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋ชจ๋‘ 1.6์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  1.7์šฉ์œผ๋กœ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

2017๋…„ 3์›” 29์ผ ์˜ค์ „ 10์‹œ 13๋ถ„์— "Dan Williams" [email protected]์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@jbeda https://github.com/jbeda ์˜ˆ, DaemonSet์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
์ปจํŠธ๋กค๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ์™„์ „ํžˆ ๋ฌด์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ๋Œ€๊ธฐ์—ด์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
๋„คํŠธ์›Œํฌ์„ฑ. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ ์žˆ๋‹ˆ?
kube์—์„œ ์ฆ‰์‹œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ์€ ๋ชจ๋‘ kubeadm์— ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290158416 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABtFIUw8GIJVfHrecB3qpTLT8Q4AyLVjks5rqpFKgaJpZM4MtMRe
.

Ubuntu 16.04๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? systemd ์„œ๋น„์Šค์—์„œ KUBELET_NETWORK_ARGS ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  systemd ๋ฐ๋ชฌ์„ ๋‹ค์‹œ ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋…ธ๋“œ์— ์ฐธ์—ฌํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. The requested resource is unavailable ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

KUBELET_NETWORK_ARGS๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ํฌ๋“œ ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

KUBELET_NETWORK_ARGS๊ฐ€ kubelet์— ์‚ฌ์šฉํ•  ํ”Œ๋Ÿฌ๊ทธ์ธ, ๊ตฌ์„ฑ ๋ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ฐพ์„ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ๋“ค์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” #43835(๋ฐ 1.6 ์ฒด๋ฆฌ ์„ ํƒ #43837)๋ฅผ 1.6์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‘˜ ๋‹ค ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ๊ทธ๋“ค์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” @jbeda ์™€ @luxas ๊ฐ€ ๊นจ์–ด๋‚ฌ์„ ๋•Œ ๊ฒ€ํ† ํ•˜๋„๋ก ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘ PR ๋ชจ๋‘ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€์‹  https://github.com/kubernetes/kubernetes/pull/43824๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜์ง€๋งŒ Daemonset์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  CNI๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค(์ €๋Š” https://github.com/jbeda/kubeadm-gce-tf์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์ง€๋งŒ 1.6์œผ๋กœ ์—…๋ฐ์ดํŠธ) ์—ฌ์ „ํžˆ ๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๋ณด๋„ˆ์Šค๋กœ, ์ด๊ฒƒ์€ @kensimon ์˜ Kubernetes์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ PR์ด๋ฉฐ ๊ทธ๋Š” ์ด ํ•ญ๋ชฉ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์ง€๋ฅผ ๊บผ๋ƒˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†”์งํžˆ ๋งํ•ด์„œ, ๋‘˜ ๋‹ค ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ์ €๋Š” ์ •๋ง ๊ณ ์ณ์กŒ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. :)

https://github.com/kubernetes/kubernetes/pull/43824๋ฅผ ๋†“์ณ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

๋‘˜ ๋‹ค ์ž‘๋™ํ•˜๋ฉด ๋‚˜๋„ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

@kensimon KUBELET_NETWORK_ARGS ๋™์•ˆ kubadm init KUBELET_NETWORK_ARGS ๋งŒ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ง€์‹œ ๋•๋ถ„์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

KUBELET_NETWORK_ARGS ๋™์•ˆ kubadm init KUBELET_NETWORK_ARGS ๋น„ํ™œ์„ฑํ™”ํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•˜๋Š” @webwurst ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด kube-dns๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. @kensimon ์˜ ๊ฒ€์‚ฌ๊ฐ€ ์ž‘๋™ํ•˜๊ณ  dns๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋”์ฐํ•œ ํ•ดํ‚น์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์Šฌ๋ž™ ์ฑ„๋„์„ ๋ณด๋ฉด์„œ ๋”ฐ๋ผํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋”์ฐํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

@kensimon ๋˜๋Š” @mikedanese์˜ ํŒจ์น˜๊ฐ€ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

@coeki ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ kube-dns๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์…จ์Šต๋‹ˆ๊นŒ? kubectl delete pod kube-dns-3913472980-l771x --namespace=kube-system ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์ด์ œ kube-dns๊ฐ€ kube-system kube-dns-3913472980-7jrwm 0/3 Pending 0 4m ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
KUBELET_NETWORK_ARGS , sudo systemctl daemon-reload && sudo systemctl restart kubelet.service , kubeadm init , KUBELET_NETWORK_ARGS , ๋‹ค์‹œ sudo systemctl daemon-reload && sudo systemctl restart kubelet.service
ํ•˜์ง€๋งŒ ๋‚ด ์ฃผ์ธ์€ NotReady ๋จธ๋ฌผ๋Ÿฌ ์žˆ์Šต๋‹ˆ๋‹ค. describe ๋‚˜๋Š”

Conditions:
  Type          Status  LastHeartbeatTime           LastTransitionTime          Reason              Message
  ----          ------  -----------------           ------------------          ------              -------
...
KubeletNotReady         runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ kube-dns ๋‹ค์‹œ ์‹œ์ž‘์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„? ์ด๋ฒˆ morging์—์„œ 1.6.0 ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‹คํŒจํ•œ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.

@patte ๊ทธ๋ž˜์„œ ๋‚œ ๊ทธ๋ƒฅ delete pods kube-dns-3913472980-3ljfx -n kube-system ๊ทธ๋ฆฌ๊ณ  kube-dns๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

kubeadm ์ดˆ๊ธฐํ™” ํ›„์— KUBELET_NETWORK_ARGS ํ•˜๊ณ  ๋‹ค์‹œ sudo systemctl daemon-reload && sudo systemctl restart kubelet.service weave ๋˜๋Š” calico์™€ ๊ฐ™์€ ํฌ๋“œ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋จผ์ € ์ถ”๊ฐ€ํ•˜๋ฉด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” centos7์—์„œ ์‹œ๋„ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์šฐ๋ถ„ํˆฌ/xenial์—์„œ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ•œ ์ผ์„ ์š”์•ฝํ•˜์ž๋ฉด:

KUBELET_NETWORK_ARGS ์ œ๊ฑฐ
sudo systemctl daemon-reload && sudo systemctl restart kubelet.service

kubeadm init --token=$TOKEN --apiserver-advertise-address=$(your apiserver ip address)

KUBELET_NETWORK_ARGS ๋‹ค์‹œ ์ถ”๊ฐ€
sudo systemctl daemon-reload && sudo systemctl restart kubelet.service

kubectl apply -f https://git.io/weave-kube-1.6

์‹œ์Šคํ…œ์— ๊ฐ€์ž…ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฉ๋ž‘์ž์— ์žˆ์œผ๋ฏ€๋กœ 10.96.0.0(ํด๋Ÿฌ์Šคํ„ฐ IP)์— ๊ณ ์ • ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
$TOKEN๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด ๋‹จ๊ณ„๋Š” ์ถ”๊ฐ€ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ์—:

delete pods kube-dns-3913472980-3ljfx -n kube-system

์ข€ ๊ธฐ๋‹ค๋ ค

kubectl run nginx --image=nginx
kubectl expose deployment nginx --port 80
kubectl run --rm -i -t ephemeral --image=busybox -- /bin/sh -l
/ # wget nginx.default.svc.cluster.local Connecting to nginx.default.svc.cluster.local (10.101.169.36:80) index.html 100% |***********************************************************************| 612 0:00:00 ETA

๋”์ฐํ•œ ํ•ดํ‚น์ด์ง€๋งŒ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•ฉ๋‹ˆ๋‹ค.)

kubernetes ๊ฐœ๋ฐœ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๊ณต์‹ ์ˆ˜์ •์„ ์œ„ํ•œ ETA๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์— ์ •๋ง ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ ์ค‘์— ์‰ฝ๊ฒŒ ์žก์•„์•ผ ํ•˜๋Š” ๋”์ฐํ•œ ๋ฒ„๊ทธ๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ 1.6.1์€ ์ˆ˜์ •๊ณผ ํ•จ๊ป˜ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ํ‘ธ์‹œ๋˜์–ด ์‚ฌ๋žŒ๋“ค์ด ํด๋Ÿฌ์Šคํ„ฐ ํ•ดํ‚น์„ ์ค‘๋‹จํ•˜๊ณ  ์ƒ์‚ฐ์ ์ธ ์ผ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ;). ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ํ‹€๋ ธ์–ด?

๋ชจ๋‘ ์•ˆ๋…•,

์ด๋ฒˆ ์ฃผ์— ์กฐ๊ธˆ ์ •์‹ ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์œผ๋กœ ๊ฐ€๋“ ์ฐฌ ๊ธด ์Šค๋ ˆ๋“œ์ž…๋‹ˆ๋‹ค.
kubeadm ๋ฌผ๊ฑด์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ์š”์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? NS
๋ฒ„๊ทธ์˜ ์š”์ ์€ ์•Œ์ง€๋งŒ ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์€ ๋ฌด์—‡์ด๋ฉฐ
๋ฌด์—‡์ด ๊ทธ๋“ค์„ ๋”์ฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”๊ฐ€?

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 8:13 Serguei Bezverkhi < ์•Œ๋ฆผ @github.com

์ผ๋‹ค:

kubernetes ๊ฐœ๋ฐœ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€
๊ณต์‹ ์ˆ˜์ •์„ ์œ„ํ•ด ETA๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋”์ฐํ•œ ๋ฒ„๊ทธ๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ํ…Œ์ŠคํŠธ ์ค‘์— ์‰ฝ๊ฒŒ ์žก์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—,
์ตœ์†Œํ•œ 1.6.1์€ ์ˆ˜์ • ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ํ‘ธ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํด๋Ÿฌ์Šคํ„ฐ ํ•ดํ‚น์„ ์ค‘๋‹จํ•˜๊ณ  ์ƒ์‚ฐ์ ์ธ ์ผ์„ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค ;). ๋‚˜๋Š”?
์—ฌ๊ธฐ ์ž˜๋ชป?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290442315 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVEoKuUf28VazmUApsnyfGhuAhZIqks5rq8aLgaJpZM4MtMRe
.

kubelet์˜ ๋ณ€๊ฒฝ(#43474)์œผ๋กœ ์ธํ•ด kubelet์ด cni ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ดˆ๊ธฐํ™”๋˜๊ธฐ ์ „์— ๋„คํŠธ์›Œํฌ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณด๊ณ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ๋˜ ์ผ๋ถ€ ์ˆœ์„œ๋ฅผ ๊นจ๊ณ  kubeadm ๋งˆ์Šคํ„ฐ ์ดˆ๊ธฐํ™”์—์„œ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์— ์•ž์„œ ๋ฉฐ์น  ๋™์•ˆ kubeadm e2e ํ…Œ์ŠคํŠธ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ํฌ์ฐฉํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ œ์•ˆ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์€ #43824 ๋ฐ #43835์ž…๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ์ดํ•ด ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ„ ์—ฐ๋™
ํ˜„์žฌ ๋…ธ๋“œ ์ค€๋น„ ์ƒํƒœ๊ฐ€ ์•ฝ๊ฐ„ ๋”์ฐํ•ฉ๋‹ˆ๋‹ค.

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 8์‹œ 28๋ถ„, Mike Danese [email protected]
์ผ๋‹ค:

kubelet์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ(#43474
https://github.com/kubernetes/kubernetes/pull/43474 ) kubelet์ด
cni ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜๊ธฐ ์ „์— ๋„คํŠธ์›Œํฌ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜์Œ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณด๊ณ ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
์ดˆ๊ธฐํ™”. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ๋˜ ์ผ๋ถ€ ์ฃผ๋ฌธ์„ ๊นจ๋œจ๋ ธ๊ณ 
kubeadm ๋งˆ์Šคํ„ฐ ์ดˆ๊ธฐํ™”์˜ ๊ต์ฐฉ ์ƒํƒœ. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์žก์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
kubeadm e2e ํ…Œ์ŠคํŠธ๋Š” ์ด ๋ณ€๊ฒฝ์— ์•ž์„œ ๋ฉฐ์น  ๋™์•ˆ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ œ์•ˆ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์€ #43824์ž…๋‹ˆ๋‹ค.
https://github.com/kubernetes/kubernetes/pull/43824 ๋ฐ #43835
https://github.com/kubernetes/kubernetes/pull/43835 .

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290447309 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVLzQLxeV6qp1Rw1fNALDDaf-Sktyks5rq8o2gaJpZM4MtMRe
.

๋‚˜๋Š” ์—ฌ์ „ํžˆ #43835๋ฅผ ์„ ํ˜ธํ•œ๋‹ค. ๋” ๊ฐ„๋‹จํ•œ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค. e2e ๊ฒ€์‚ฌ๊ฐ€ ์žˆ๋Š” ๊ณณ์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์œผ๋ฉฐ #43824๊ฐ€ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ณด๊ณ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ€์–ด๋ถ™์ด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์˜ ๋‹ด๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋งŽ์€ ๋…ธ๋ ฅ์ด ๋‚ญ๋น„๋˜๋ฏ€๋กœ ์˜ค๋Š˜ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด +1์ž…๋‹ˆ๋‹ค.

1.6.0์ด ์ถœ์‹œ๋˜๊ธฐ ์ „์— ์•„๋ฌด๋„ kubeadm 1.6.0์„ ์‹œ๋„ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค....

๊ทธ๋ฆฌ๊ณ  kubelet 1.5.6 + kubeadm 1.5.6๋„ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. /etc/systemd/system/kubelet.service.d/10-kubeadm.conf๋Š” /etc/kubernetes/pki/ca.crt๋ฅผ ์ฐธ์กฐํ•˜์ง€๋งŒ kubeadm์€ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ca.crt์—๋„ ca.pem์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ 1.6.0 ๋ฐ 1.5.6์€ k8s apt ์ €์žฅ์†Œ์˜ ์œ ์ผํ•œ ์™ผ์ชฝ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค...

"์ƒ์ž์—์„œ ๋‚˜์˜จ ๊ฒƒ", ์˜ค๋Š˜ ๋ฐฐ์šด ๋‹จ์–ด.

๋‚˜๋Š” ์—ฌ์ „ํžˆ #43835๋ฅผ ์„ ํ˜ธํ•œ๋‹ค. ๋” ๊ฐ„๋‹จํ•œ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค. e2e ๊ฒ€์‚ฌ๊ฐ€ ์žˆ๋Š” ๊ณณ์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์œผ๋ฉฐ #43824๊ฐ€ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ณด๊ณ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ€์–ด๋ถ™์ด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•ด Mike์™€ ๋™์˜ํ•˜์‹ญ์‹œ์˜ค. #43835๋Š” ๋” ๊ฐ„๋‹จํ•œ ๋ณ€๊ฒฝ์ด๋ฉฐ ๊ฒ€์ฆ(ํ•„์š”ํ•œ ๊ฒฝ์šฐ)์€ ๋ณ„๋„์˜ ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@thockin ์šฐ๋ฆฌ๋Š” ํŠนํžˆ ho stNetwork:true์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•œ ๋ณด๋‹ค ์„ธ๋ถ„ํ™”๋œ ์กฐ๊ฑด๊ณผ ์ƒํƒœ๊ฐ€ ํ•„์š”

nodeNetworkUnavailable์€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์—๊ฒŒ๋งŒ ํ•ด๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Net workReady:false ๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ์—์„œ hostNetwork:true ํฌ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ค€๋น„๋˜์ง€ ์•Š์€ ๋…ธ๋“œ์—์„œ

๋™์˜ํ•˜๋‹ค. ์ข‹์€ ๋‹ต๋ณ€์ด ์—†์–ด์„œ ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฃจ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ,
ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ 1.7์—์„œ ์–ป์„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 10์‹œ 2๋ถ„, Dan Williams [email protected]
์ผ๋‹ค:

@thockin https://github.com/thockin ์šฐ๋ฆฌ๋Š” ๋” ์„ธ๋ฐ€ํ•œ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํŠนํžˆ hostNetwork:true์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ์กฐ๊ฑด ๋ฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค
๋…ธ๋“œ๋Š” ์ผ๋ถ€ ํฌ๋“œ์— ๋Œ€ํ•ด ์ค€๋น„๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ํฌ๋“œ์—๋Š” ์ค€๋น„๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

nodeNetworkUnavailable์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ์—๋งŒ ํ•ด๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ณต๊ธ‰์ž. ์šฐ๋ฆฌ๋Š” ์•„๋งˆ๋„ ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€
Net workReady:false๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ์—์„œ ho stNetwork:true ํฌ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜
taint๋Š” ์ค€๋น„๋˜์ง€ ์•Š์€ ๋…ธ๋“œ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290475480 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVAaO9c76_R8me9PDo96AQ1ZrplMxks5rq-A1gaJpZM4MtMRe
.

@thockin ์„ ํ˜ธํ•˜๋Š” ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋…ธ๋“œ ์ค€๋น„ ์ƒํƒœ๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์ด๋ฏธ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ IsNodeReady()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์„ ์•Œ์•„๋‚ด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋…ธ๋“œ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ˆ„๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋น„ํŠธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

nodeNetworkUnavailable์€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์—๊ฒŒ๋งŒ ํ•ด๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Net workReady:false ๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ์—์„œ hostNetwork:true ํฌ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ค€๋น„๋˜์ง€ ์•Š์€ ๋…ธ๋“œ์—์„œ

์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ค€๋น„๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์™„์ „ํžˆ ๋ฐฐ์ œํ•˜๋Š” ๋Œ€์‹  ์˜ค์—ผ๊ณผ ํ—ˆ์šฉ ์˜ค์ฐจ๋ฅผ ์กด์ค‘ํ•˜๋„๋ก ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„๊ตฐ๊ฐ€๋Š” ho stNetwork:true ํฌ๋“œ์— ํ—ˆ์šฉ

/cc @davidopp @dchen1107

๋˜ํ•œ ๋‚ด ๋˜๋Š” michael์˜ ํŒจ์น˜๋ฅผ ์‹œ๋„ํ•˜๊ณ  ๋‹ค๊ฐ€์˜ค๋Š” ์ œ์–ด ํ”Œ๋ ˆ์ธ์— ์ „ํ™”๋ฅผ ๋Š๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” v1.6.0 ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•  ๋•Œ master ์—์„œ kubeadm์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. , kubeadm์ด ์ž˜๋ชป๋œ ์ธ์ˆ˜๋กœ kube-apiserver๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์—:

unknown flag: --proxy-client-cert-file

v1.6.0 ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ๊ด‘์‚ฐ ๋˜๋Š” ๋งˆ์ดํด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ์ง€๊ธˆ์€ ๋งˆ์Šคํ„ฐ ์œ„์— ๊ตฌ์ถ•ํ•˜๋Š” ๋Œ€์‹  v1.6.0์— ๋Œ€ํ•ด ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

@yujuhong ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์ด๋ฏธ ํฌ๋“œ์— ํ—ˆ์šฉ

๋ชจ๋“  ์˜ค์—ผ๊ณผ ์ค€๋น„ ์ƒํƒœ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๊ทธ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค.
์ด ์‹œ์ ์—์„œ ๋„คํŠธ์›Œํฌ. ๋Œ„, 30๋ถ„ ์•ˆ์— ๊ธ€์„ ์“ธ ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ?
ํ˜„์žฌ ์ƒํƒœ, ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค
๋ฒ ์ŠคํŠธ. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์„ธ๋ถ€์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ๋‹ด์š” ๋ฎ์—ˆ๋‹ค.

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 10์‹œ 22๋ถ„, Ken Simon ์•Œ๋ฆผ @github.com
์ผ๋‹ค:

@yujuhong https://github.com/yujuhong ์ด๋ฏธ ์Šค์ผ€์ค„๋Ÿฌ
ํฌ๋“œ์— ํ—ˆ์šฉ ์˜ค์ฐจ๋ฅผ ์ž๋™ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค(#41414 ์ฐธ์กฐ).
https://github.com/kubernetes/kubernetes/pull/41414 ), ์ด๊ฒƒ์€
์ถฉ๋ถ„ํžˆ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290481017 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVMas2IP5X5YA0V5626UlGbaS98jtks5rq-TCgaJpZM4MtMRe
.

@thockin ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์–ด๋””์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์š”?

๋ช‡ ๊ฐ€์ง€ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜์˜ ์ œ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ƒํƒœ ์š”์•ฝ ๋ฐ ๊ฑฐ๊ธฐ์—์„œ ์ด๋™?

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 10์‹œ 50๋ถ„, Dan Williams [email protected]
์ผ๋‹ค:

@thockin https://github.com/thockin ํ•  ์ˆ˜ ์žˆ์–ด์š” ์–ด๋””์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์š”
๊ทธ๊ฒƒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290489157 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVCXJYk9J0QmjTqQA6PPVuhzMhlLZks5rq-t-gaJpZM4MtMRe
.

์ด ์ˆ˜์ • ์‚ฌํ•ญ์ด CentOS ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด์‹๋  ์‹œ๊ธฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

1.6์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ”์–ด Kubernetes๋Š” ๋…ธ๋“œ์— ์–ด๋–ค taint๋„ ์ž๋™์œผ๋กœ ์ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šค์ผ€์ค„๋Ÿฌ๋Š” kubeadm, kops ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐฐํฌ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•œ taint๋ฅผ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  pod์— ์ถ”๊ฐ€๋˜๋Š” ํ•ด๋‹น ํ—ˆ์šฉ ์˜ค์ฐจ๋ฅผ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค).

๊ธฐ๋ณธ์ ์œผ๋กœ 1.6์—์„œ Kubernetes ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ํŠน์ • ๋…ธ๋“œ ์กฐ๊ฑด์„ ๋ณด๊ณ ํ•˜๋Š” ๊ฒฝ์šฐ ๋…ธ๋“œ๋ฅผ ๊ณ ๋ ค ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค . taint์™€๋Š” ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋…ธ๋“œ ์ƒํƒœ๋ฅผ ๋ณด๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

1.6์—์„œ๋Š” NodeReady == "False" ๋˜๋Š” NodeReady == "Unknown"์ผ ๋•Œ๋งˆ๋‹ค ์ฝ”์–ด Kubernetes(NodeController)๊ฐ€ NoExecute taint๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•˜๋Š” ์•ŒํŒŒ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํฌ๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ (์˜ค์—ผ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) ์ƒˆ ํฌ๋“œ๊ฐ€ ๋…ธ๋“œ๋กœ ์ผ์ •์„ ์žก๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค(์˜ค์—ผ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ).

์žฅ๊ธฐ ๊ณ„ํš์€ "์ฝ”์–ด Kubernetes๊ฐ€ ์ผ์ • ๋ฐ ์ œ๊ฑฐ์™€ ๊ด€๋ จํ•˜์—ฌ ๋…ธ๋“œ ์กฐ๊ฑด์— ๋ฐ˜์‘ํ•˜๋Š” ๋ฐฉ๋ฒ•" ๋…ผ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์˜ค์—ผ ๋ฐ ํ—ˆ์šฉ ์˜ค์ฐจ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: #42001). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์•„์ง ๊ฑฐ๊ธฐ์— ์žˆ์ง€ ์•Š์œผ๋ฉฐ ํ•œ๋™์•ˆ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ๊ธฐ์ ์œผ๋กœ๋Š” ํฌ๋“œ๊ฐ€ NetworkUnavailable ๋˜๋Š” ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ ์กฐ๊ฑด์„ "๊ฒฌ์ธ"ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

@davidopp์ด ๋งํ•œ ๊ฒƒ์ด

kubeadm์˜ ๊ฒฝ์šฐ NetworkUnavailable์ด ์œ ์ผํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. kubeadm์€ true๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. kubeadm ์ดˆ๊ธฐํ™” ์‹œ๊ฐ„์— ๋„คํŠธ์›Œํ‚น/cni ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ž˜ ์ดํ•ดํ•œ๋‹ค๋ฉด ์ ์–ด๋„ kubeadm์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ taint ๋ฐ toleration์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

ํ‹€ ๋ ธ์œผ๋ฉด ๊ณ ์ณ์ค˜ ;)

์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๊ณ  ์งœ์ฆ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์Šค๋ ˆ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ค€๋น„ ์ƒํƒœ๊ฐ€ ๋…ธ๋“œ์˜ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๋”ฐ๋ผ kubelet์ด ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐํ•˜๋Š” ์˜ค์—ผ์ด ๋  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋…ธ๋“œ๋Š” ๋„คํŠธ์›Œํฌ ์ค€๋น„ ์ƒํƒœ ์˜ค์—ผ(ํฌ๋“œ ๋„คํŠธ์›Œํฌ ์•ฑ)์„ ํ—ˆ์šฉํ•˜๋Š” ๋ชจ๋“  ํฌ๋“œ์— ๋Œ€ํ•ด "์ค€๋น„" ์ƒํƒœ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํฌ ํฌ๋“œ์˜ ๊ฒฝ์šฐ ์Šน์ธ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํฌ๋“œ ๋„คํŠธ์›Œํฌ ์ค€๋น„ ์ƒํƒœ ์˜ค์—ผ์— ๋Œ€ํ•œ ๋‚ด์„ฑ์„ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด davidopp์˜ ์˜๊ฒฌ์— ์žˆ๋Š” ์žฅ๊ธฐ ๊ณ„ํš๊ณผ ์ผ์น˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด davidopp์˜ ์˜๊ฒฌ์— ์žˆ๋Š” ์žฅ๊ธฐ ๊ณ„ํš๊ณผ ์ผ์น˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์žฅ๊ธฐ ๊ณ„ํš์€ ๋ชจ๋“  ๋…ธ๋“œ ์กฐ๊ฑด์— ๋Œ€ํ•œ ์˜ค์—ผ์„ ๊ฐ–๊ณ  Kubernetes ๋‚ด๋ถ€์—์„œ ๋…ธ๋“œ ์กฐ๊ฑด์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ•œ 1.6 ์•ŒํŒŒ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ. v1.6 ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์—์„œ taint๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋…ธ๋“œ ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ taint๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ๋Š” 1.6์—์„œ ์•ŒํŒŒ๋กœ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์˜์ง€ํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ๋„คํŠธ์›Œํฌ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ ์ค€๋น„ ์ƒํƒœ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค).

๋”ฐ๋ผ์„œ ์ œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ํ˜„์žฌ๋กœ์„œ๋Š” https://github.com/kubernetes/features/issues/166 ์ด ๋„คํŠธ์›Œํฌ ๊ฐ€์šฉ์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์˜ค์—ผ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://github.com/kubernetes/features/issues/166 ์œผ๋กœ ์ˆ˜์ •ํ•˜๋ผ๋Š” ์ฃผ์„๊ณผ ํ•จ๊ป˜ #43835์™€ ๊ฐ™์€ kubeadm์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋ปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@davidopp "๊ธฐ๋Œ€ ํ•˜์ง€ ์•Š์Œ "์ด๋ผ๊ณ  ๋งํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ง์ ‘์ ์œผ๋กœ kubelet ๊ฒŒ์‹œ taint์™€ ํ•จ๊ป˜ ์–ธ๊ธ‰ํ•œ taint ๋…ผ๋ฆฌ์— ๋Œ€ํ•œ ์ž๋™ ์กฐ๊ฑด ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ์—ฌ์ „ํžˆ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋„ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์˜คํƒ€์˜€๋„ค์š” ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค

์˜ˆ, Kubelet์ด taint๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kubelet์ด ์ผ๋ถ€ ๋…ธ๋“œ ์กฐ๊ฑด์— ๋Œ€ํ•œ taint๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  NodeController๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ ์กฐ๊ฑด์— ๋Œ€ํ•ด ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ ์ด์ƒ์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ›„์ž๋Š” ๋งˆ์Šคํ„ฐ๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋…ธ๋“œ๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•จ). ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๋‹จ์ง€ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ฃผ์žฅ์ผ ๋ฟ์ด๋ฉฐ ๊ทผ๋ณธ์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด ๊ณ„ํš์€ NodeController๊ฐ€ ๋ชจ๋“  ๋…ธ๋“œ ์กฐ๊ฑด์— ๋Œ€ํ•œ taint๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฐ•๋ ฅํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์—†์Šต๋‹ˆ๋‹ค.

ํ™•์ธ. ์ด ๊ฒฝ์šฐ ๋‹จ์ผ ๋…ธ๋“œ ์กฐ๊ฑด์—๋Š” ๋…ธ๋“œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ์—ฌ๋Ÿฌ ์†์„ฑ์ด ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
@mikedanese kubeadm init ์˜ ๊ธฐ์กด ๋™์ž‘์œผ๋กœ ์ธํ•ด ๋…ธ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ๋งค๋ ฅ์ ์ด๋ผ๊ณ  โ€‹โ€‹๋Š๋‚๋‹ˆ๋‹ค. validation ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ฃผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
@dcbw @thockin @yujuhong kubelet ์—์„œ ๋…ธ๋“œ ๊ตฌ์„ฑ ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ฒƒ์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ƒˆ taint๊ฐ€ ๋…ธ๋“œ์˜ ํ˜„์žฌ ์ž๋™ ํ•„ํ„ฐ๋ง์„ NetworkUnavailable๋กœ ๋Œ€์ฒดํ•˜๋ ค๋ฉด ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ๋…ธ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ์กฐ๊ฑด ์ง‘ํ•ฉ์—์„œ ์ œ๊ฑฐ). ๊ทธ ๊ธฐ๋Šฅ์€ ์Šค์ผ€์ค„๋Ÿฌ ์ด์™ธ์˜ ๋…ธ๋“œ ๋ชฉ๋ก์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ถ€์ž‘์šฉ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

Ubuntu์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” 1.5.6์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์„ค๋ช… ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

์ƒˆ taint๊ฐ€ ๋…ธ๋“œ์˜ ํ˜„์žฌ ์ž๋™ ํ•„ํ„ฐ๋ง์„ NetworkUnavailable๋กœ ๋Œ€์ฒดํ•˜๋ ค๋ฉด ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ๋…ธ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ์กฐ๊ฑด ์ง‘ํ•ฉ์—์„œ ์ œ๊ฑฐ). ๊ทธ ๊ธฐ๋Šฅ์€ ์Šค์ผ€์ค„๋Ÿฌ ์ด์™ธ์˜ ๋…ธ๋“œ ๋ชฉ๋ก์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ถ€์ž‘์šฉ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@davidopp ์šฐ๋ฆฌ๋Š” NetworkUnavailable ๋Œ€ NodeReady์— ๋Œ€ํ•ด ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ„๋„์˜ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

nodeNetworkUnavailable - ์ด๋Š” ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ์—๋งŒ ํ•ด๋‹น๋˜๋ฉฐ ๋…ธ๋“œ ๊ฐ„ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋งŒ ์ด ์กฐ๊ฑด์„ ์ง€์›๋‹ˆ๋‹ค. ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋…ธ๋“œ ๊ฐ„์— L3 ๋ผ์šฐํŒ…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ด ์กฐ๊ฑด์„ ์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์กฐ๊ฑด์€ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ•ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ GCE ๋˜๋Š” AWS๊ฐ€ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋กœ ์„ ํƒ๋  ๋•Œ kubelet์— ์˜ํ•ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์กฐ๊ฑด์ด๋ฏ€๋กœ NodeReady์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

NodeReady - ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: CNI ๋˜๋Š” kubenet ๋˜๋Š” dockershim/CRI-O์™€ ๊ฐ™์€ ์›๊ฒฉ ๋Ÿฐํƒ€์ž„)์˜ ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ๊ฐœ๋ณ„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ - ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ฐ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด(์˜ˆ: NodeNetworkUnavailable=true) ์˜ˆ์•ฝ hostNetwork=false ํฌ๋“œ๋ฅผ ์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ - ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์•„์ง ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ hostNetwork=false ํฌ๋“œ์˜ ์ผ์ •์„ ์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ์— ์˜์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Routes Controller์™€ ์ง์ ‘์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ์ด ์—†์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ NodeNetworkUnavailable๊ณผ ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, kubenet์€ ๋…ธ๋“œ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•œ ๋‹ค๋ฅธ ํ•ญ๋ชฉ(ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ, ํ”Œ๋ž€๋„ฌ ๋“ฑ)์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋…ธ๋“œ์—์„œ ๋กœ์ปฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. hostNetwork=true ํฌ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์กฐ๊ฑด์„ ๋ฌด์‹œํ•˜๊ณ  ์˜ˆ์•ฝํ•ด์•ผ ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด(๋””์Šคํฌ ๊ณต๊ฐ„ ๋“ฑ)์— ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

NodeReady๋Š” ๋„ˆ๋ฌด ํฐ ๋ง์น˜์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค€๋น„ ์ƒํƒœ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ NetworkPluginReady ์กฐ๊ฑด(ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ ์ค€๋น„ ์ƒํƒœ์™€๋Š” ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค!)์„ ์›ํ•˜๊ณ  ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฅผ ๊ด€์‹ฌ ์žˆ๋Š” ์žฅ์†Œ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฃผ๋ณ€์˜ ๋˜ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

kubeadm์ด '[apiclient] ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ์ง€๋งŒ ์•„์ง ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.'๋ฅผ ๊ณ„์† ์ถœ๋ ฅํ•˜๋Š” ๋™์•ˆ flanneld๋ฅผ ์„ค์น˜ํ•˜๋Š” 'kube-flannel.yml'์„ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

1) kubeadm ์ดˆ๊ธฐํ™” --pod-network-cidr=10.244.0.0/16 &
2) cp /etc/kubernetes/admin.conf ~/.kube/config
3) kubectl apply -f kube-flannel-rbac.yml (kubeadm 1.6์—์„œ ํ•„์š”)
4) kubectl ์ ์šฉ -f kube-flannel.yaml
https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml ์—์„œ kube-flannel.yaml ์‚ฌ์šฉ

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ 'Ready'๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ kube-dns๊ฐ€ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

Error syncing pod, skipping: failed to "CreatePodSandbox" for "kube-dns-2759646324-nppx6_kube-system(bd585951-15cb-11e7-95c3-1c98ec12245c)" with CreatePodSandboxError: "CreatePodSandbox for pod \"kube-dns-2759646324-nppx6_kube-system(bd585951-15cb-11e7-95c3-1c98ec12245c)\" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod \"kube-dns-2759646324-nppx6_kube-system\" network: \"cni0\" already has an IP address different from 10.244.0.1/24"

๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ weave-net์œผ๋กœ ๋ณ€๊ฒฝํ•œ ํ›„ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@dcbw ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค„ ๋งŒํผ ์ด ๋ฌธ์ œ์—์„œ ๋…ผ์˜๋œ ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” taint์˜ ํ˜„์žฌ ์ƒํƒœ์™€ ์—ฌ๊ธฐ์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŒจ์น˜๋œ DEBS๋ฅผ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค

kubernetes-xenial-unstable ์—๋Š” ์ด์ œ @pipejakob ์™€ ์ œ๊ฐ€ ์˜ค๋Š˜ ํ…Œ์ŠคํŠธํ•œ ํŒจ์น˜๋œ ๋นŒ๋“œ 1.6.1-beta.0.5+d8a384c1c5e35d-00 ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” ํฌ๋“œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๊นŒ์ง€ ์ค€๋น„๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค(์˜ˆ: weave/flannel ๊ตฌ์„ฑ ์ ์šฉ). ์ ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ. PTAL.

# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial-unstable main
EOF

cc @luxas @jbeda

taint๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
์กฐ๊ฑด์€ ๋ชจ๋“  ๋ฉด์—์„œ ๋” ์ข‹์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”ฐ๋ผ์„œ ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ?

๋” ์„ธ๋ถ„ํ™”๋œ ์‹ ํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์ •๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
kubelet, net ๋“œ๋ผ์ด๋ฒ„, ํด๋ผ์šฐ๋“œ ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ
hostNetwork=false ํฌ๋“œ๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜์ง€๋งŒ hostNetwork=true๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ง‰ํžŒ.

2017๋…„ 3์›” 30์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 7์‹œ 24๋ถ„, Dan Williams [email protected]
์ผ๋‹ค:

์ƒˆ taint๊ฐ€ ํ˜„์žฌ ์ž๋™์„ ๋Œ€์ฒดํ•˜๋ ค๋ฉด
NetworkUnavailable์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ๊ธฐ๋Šฅ(์ฆ‰, ์กฐ๊ฑด ์„ธํŠธ์—์„œ ์ œ๊ฑฐ
๋…ธ๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•จ). ๋˜ ์–ด๋–ค ๋ถ€์ž‘์šฉ์ด ์ƒ๊ธธ์ง€ ๋ชจ๋ฅด๋‹ˆ
๊ทธ ํ•จ์ˆ˜๋Š” ๋‹จ์ง€ ๋‹ค๋ฅธ ๋…ธ๋“œ ๋ชฉ๋ก์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
์Šค์ผ€์ค„๋Ÿฌ.

@davidopp https://github.com/davidopp ์กฐ์‹ฌํ•ด์•ผ ํ• 
NetworkUnavailable ๋Œ€ NodeReady. ๋‘ ๊ฐ€์ง€ ๋ณ„๋„์˜ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ •๋ง ์ฒญ์†Œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค :

nodeNetworkUnavailable - ์ด๋Š” ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ์—๋งŒ ํ•ด๋‹น๋˜๋ฉฐ ํด๋ผ์šฐ๋“œ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋…ธ๋“œ ๊ฐ„์˜ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์ด ์กฐ๊ฑด์„ ์ง€์›๋‹ˆ๋‹ค.
์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ L3๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ
๋…ธ๋“œ ๊ฐ„์˜ ๋ผ์šฐํŒ…์€ ์ด ์กฐ๊ฑด์„ ์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์กฐ๊ฑด์€
๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ•ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํŠนํžˆ kubelet์— ์˜ํ•ด ์ถ”๊ฐ€๋œ ๊ฒฝ์šฐ
GCE ๋˜๋Š” AWS๊ฐ€ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ NodeReady์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ณ„๋„์˜ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค.

NodeReady - ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: CNI ๋˜๋Š” kubenet
๋˜๋Š” dockershim/CRI-O์™€ ๊ฐ™์€ ์›๊ฒฉ ๋Ÿฐํƒ€์ž„).

๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ๊ฐœ๋ณ„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Cloud Routes - ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ฐ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ ๊ฒฝ์šฐ
    ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ ๋‹ค์Œ ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค(์˜ˆ:
    NodeNetworkUnavailable=true) ์˜ˆ์•ฝ์„ ์ฐจ๋‹จํ•ด์•ผ ํ•จ hostNetwork=false
    ๊ผฌํˆฌ๋ฆฌ
  2. ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ - ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์•„์ง ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
    hostNetwork=false ํฌ๋“œ์˜ ๋ธ”๋ก ์Šค์ผ€์ค„๋ง
  3. hostNetwork=true ํฌ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์กฐ๊ฑด์„ ๋ฌด์‹œํ•ด์•ผ ํ•˜๋ฉฐ
    ์˜ˆ์•ฝ๋˜์ง€๋งŒ ๋‹ค๋ฅธ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด(๋””์Šคํฌ ๊ณต๊ฐ„ ๋“ฑ)์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NodeReady๋Š” ๋„ˆ๋ฌด ํฐ ๋ง์น˜์ž…๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ์šฐ๋ฆฌ๋Š” ์•„๋งˆ๋„
๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค€๋น„๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ NetworkPluginReady ์กฐ๊ฑด
(ํด๋ผ์šฐ๋“œ ๊ฒฝ๋กœ ์ค€๋น„์™€๋Š” ๋ณ„๊ฐœ์ž…๋‹ˆ๋‹ค!) ๊ทธ๋Ÿฐ ๋‹ค์Œ
๊ด€์‹ฌ์žˆ๋Š” ๊ณณ์œผ๋กœ :(

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290597988 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AFVgVGIn0CpVkcHd2SVaoRsp2RJNEgXFks5rrGPqgaJpZM4MtMRe
.

kubelet KUBELET_NETWORK_ARGS ๊ตฌ์„ฑ ๋ผ์ธ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ž„์‹œ ์ˆ˜์ •์„ ์‹œ๋„ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด @jc1arke ๋Š” ๋” ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋งˆ์Šคํ„ฐ์— ๋Œ€ํ•ด ๋‘ ๊ฐœ์˜ ์„ธ์…˜์„ ๊ฐ–๊ณ  ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ์—์„œ ๋…ธ๋“œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜:
kubeadmin init ์‹คํ–‰ ํ›„ ์ฒซ ๋ฒˆ์งธ ์„ธ์…˜:

...
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 24.820861 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
...

๋‘ ๋ฒˆ์งธ ์„ธ์…˜(Calico ์‚ฌ์šฉ. ์„ ํƒ์€ ๋ฌผ๋ก  ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ):

root@kube-test-master-tantk:~# kubectl apply -f http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml
configmap "calico-config" created
daemonset "calico-etcd" created
service "calico-etcd" created
daemonset "calico-node" created
deployment "calico-policy-controller" created
job "configure-calico" created
root@kube-test-master-tantk:~#

์ฒซ ๋ฒˆ์งธ ์„ธ์…˜์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ:

...
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
[apiclient] First node has registered, but is not ready yet
[apiclient] First node is ready after 118.912515 seconds
[apiclient] Test deployment succeeded
[token] Using token: <to.ken>
[apiconfig] Created RBAC rules
...

taint๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.
์กฐ๊ฑด์€ ๋ชจ๋“  ๋ฉด์—์„œ ๋” ์ข‹์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”ฐ๋ผ์„œ ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ?

๊ฝค ๋งŽ์ด. ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋…ธ๋“œ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š” ๋งˆ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋…ผ๋ฆฌ(์˜ˆ: ์ผ์ • ์ฐจ๋‹จ ๋˜๋Š” ํฌ๋“œ ์ œ๊ฑฐ)๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ–‰๋™์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ ์™ธ์—๋„(์–ด๋–ค ์กฐ๊ฑด์ด ์ผ์ •์„ ์ฐจ๋‹จํ•˜๋Š”์ง€, ํ‡ด๊ฑฐ๋ฅผ ์œ ๋ฐœํ•˜๋Š”์ง€, ํ‡ด๊ฑฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„ ๋“ฑ์„ ์™ธ์šธ ํ•„์š”๊ฐ€ ์—†์Œ) ์กฐ๊ฑด์— ๋Œ€ํ•œ ๋ฐ˜์‘์€ ํฌ๋“œ๋ณ„๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@mikedanese ๋ฐ @pipejakob ์˜ debs๋ฅผ ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธ

์šฐ๋ถ„ํˆฌ/xenial์—์„œ ํ…Œ์ŠคํŠธ:

root<strong i="9">@kube1</strong>:/home/ubuntu# kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"6+", GitVersion:"v1.6.1-beta.0.5+d8a384c1c5e35d", GitCommit:"d8a384c1c5e35d5118f79808deb7bab41f3f7964", GitTreeState:"clean", BuildDate:"2017-03-31T04:20:36Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

@mikedanese ๋ฐ @pipejakob ์˜ debs๋ฅผ ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธ ์ถฅ๋‹ˆ๋‹ค .
[apiclient] Created API client, waiting for the control plane to become ready

5๋ถ„์ •๋„ ๊ธฐ๋‹ค๋ ธ๋Š”๋ฐ ๋‹ฌ๋ผ์ง„๊ฒŒ ์—†๋„ค์š”.
๊ทธ๋ฆฌ๊ณ  ์–ด์ œ ๊ณ„์† ๋ฐ˜๋ณต
[apiclient] First node has registered, but is not ready yet

TTI๋Š” ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

Ubuntu 16.04์—์„œ ํ…Œ์ŠคํŠธ:
kubeadm ๋ฒ„์ „: version.Info{์ฃผ์š”:"1", ๋ถ€:"6+", GitVersion:"v1.6.1-beta.0.5+d8a384c1c5e35d", GitCommit:"d8a384c1c5e35d5118f79808def7"babtree41" -03-31T04:20:36Z", GoVersion:"go1.7.5", ์ปดํŒŒ์ผ๋Ÿฌ:"gc", ํ”Œ๋žซํผ:"linux/amd64"}

@myqq0000 ์‚ฌ์šฉ ์ค‘์ธ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

kubeadm version

@coeki ์•„, ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ˆ˜์ •ํ–ˆ๊ณ  ์ด์ „ ๋Œ“๊ธ€์— ๋ฒ„์ „์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. :)

@mikedanese centos yum repo๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ด๋ฏธ yum repo์— ๋ฐฐํฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ 1.6.1-beta.0.5+d8a384c1c5e35d-00 ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค(https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-290616036์— ์–ธ๊ธ‰๋œ 1.6.1-beta.0.5+48c6a53cf4ff7d-00 ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค).

์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์—†์Œ: weave๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ 'default' https:/ ๋Œ€์‹  https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.6.yaml ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . /git.io/weave-kube

@mausch ์ด debs๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@mikedanese ํŒจ์น˜๋œ debs๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! :์›ƒ๋‹ค:

root@kube-test0:~# kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"6+", GitVersion:"v1.6.1-beta.0.5+d8a384c1c5e35d", GitCommit:"d8a384c1c5e35d5118f79808deb7bab41f3f7964", GitTreeState:"clean", BuildDate:"2017-03-31T04:20:36Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

@mausch ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ weave ๋„คํŠธ์›Œํฌ ๊ณต๊ธ‰์ž์™€๋„ ํ•จ๊ป˜ ์ผํ•ฉ๋‹ˆ๋‹ค.

Centos์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋นŒ๋“œํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ์˜ ๊ฒŒ์ดํŒ… ์‹œ์Šคํ…œ์€ ์ฃผ๋กœ kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋ฐ˜์— centos๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. centos ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด ๋Œ€๋žต์ ์œผ๋กœ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋กœ ํ•˜๋ฃจ์— kubeadm init๋ฅผ 100๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

@mikedanese ํŒจ์น˜๋œ debs๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. kubeadm ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Œ์„ ์•Œ๋ฆฌ์ง€๋งŒ ๋…ธ๋“œ ์ž์ฒด๋Š” ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@squall0gd ๋…ธ๋“œ๋Š” ํฌ๋“œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ ์šฉ๋  ๋•Œ ์ค€๋น„๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: kubectl apply -f https://git.io/weave-kube-1.6

๋‚ด ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ(centos/7 ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ vagrant)์—์„œ kubeadm์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. strace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์Šคํ„ฐ์˜ kubelet ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๊ณ  FUTEX_WAIT, epoll_wait ์žฌ์‹œ๋„ ๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์—์„œ ์˜ค๋Š” ์ถœ๋ ฅ์€ ํ•œ ์ค„๋„ ์—†์Šต๋‹ˆ๋‹ค.

kubelet์ด ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ทธ ์ด์œ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
(ํ•˜์ง€๋งŒ kublet์ด ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)

์ด๊ฒƒ์ด ์ด ๋ฌธ์ œ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

http://yum.kubernetes.io/repos/kubernetes-el7-x86_64 ์ €์žฅ์†Œ์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ https://storage.googleapis.com/kubernetes-release/release/v1.6.0/bin/linux/amd64/ ์—์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

==> ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ํŒจ์น˜๋œ kubeadm ๋ฒ„์ „์„ ์–ด๋””์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? <==

์ฐธ๊ณ : https://github.com/kensimon/aws-quickstart/commit/9ae07f8d9de29c6cbca4624a61e78ab4fe69ebc4 (ํŒจ์น˜๋œ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: https://heptio-aws-quickstart test.s3.amazonaws.com/heptio/kubernetes/ken-test/kubeadm), ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์ž‘์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋™์ผํ•ฉ๋‹ˆ๋‹ค(์ถœ๋ ฅ ์—†์Œ)...

@squall0gd ๋ณด๊ณ  ๊ณ„์‹  ์ •ํ™•ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์„ค๋ช…ํ•˜์‹  ๋‚ด์šฉ์— ๋”ฐ๋ฅด๋ฉด ์‹ค์ œ๋กœ ์ƒˆ .debs๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ์•„๋‹ˆ๋ฉด ์ด์ „์— ์บ์‹œ๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@thockin @davidopp ํŒ€์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ ๊ธฐ์กด ๋ฌธ์ œ๋ฅผ ์ง€ํœ˜ํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ์ค€๋น„ ์ƒํƒœ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์‹ค์ œ ์กฐ๊ฑด ๋Œ€์‹  ์ „์ฒด๋ฅผ ์˜ค์—ผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ https://github์— ๋ณต์‚ฌ

๋‹ค์Œ์€ unstable repo(๋งˆ์Šคํ„ฐ ์ž์ฒด๋งŒ ํ…Œ์ŠคํŠธ)์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"sudo apt-get update && sudo apt-get install -y apt-transport-https",
"echo 'deb http://apt.kubernetes.io/ kubernetes-xenial-unstable main' | sudo tee /etc/apt/sources.list.d/kubernetes.list",
"curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -",
"sudo apt-get update",
"sudo apt-get install -y docker.io",
"sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni",
"sudo service kubelet stop",
"sudo service kubelet start",
"sudo kubeadm init",
"sudo cp /etc/kubernetes/admin.conf $HOME/",
"sudo chown $(id -u):$(id -g) $HOME/admin.conf",
"export KUBECONFIG=$HOME/admin.conf",
"kubectl taint nodes --all dedicated-",
"kubectl apply -f https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.6.yaml",

์ด๊ฒƒ์€ ํ•œ ์ง€์ ์—์„œ error: taint "dedicated:" not found ๋ฅผ ๋ฑ‰์–ด๋‚ด์ง€

1.6 ๋ธŒ๋žœ์น˜์—์„œ ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@davidopp ๋…ธ๋“œ ์กฐ๊ฑด์€ ์ด์œ , ๋ฉ”์‹œ์ง€ ๋ฐ ์ „ํ™˜ ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์—๊ฒŒ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

kubeadm์€ ๋ฆด๋ฆฌ์Šค ๋ถ„๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
https://k8s-testgrid.appspot.com/release-1.6-all

@ bgrant0607 ๋ถ„๋ช…ํžˆ kubeadm e2e ํ…Œ์ŠคํŠธ๋Š” IIRC 1.6 ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ์•ฝ ์ผ์ฃผ์ผ ๋™์•ˆ ๋น„ํ™œ์„ฑํ™”/๋น„์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ ์กฐ๊ฑด์€ ์ด์œ , ๋ฉ”์‹œ์ง€ ๋ฐ ์ „ํ™˜ ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์—๊ฒŒ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@bgrant0607 ์ฃผ๋กœ ์ธ๊ฐ„ ์ •๋ณด๋ฅผ ์œ„ํ•œ ๊ฒƒ

๋…ธ๋“œ์— taint๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

a) ๋งˆ์Šคํ„ฐ taint์™€ ๊ฐ™์€ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ: https://github.com/kubernetes/kubernetes/pull/43537

b) ๋ฒ„์ „ ์™œ๊ณก. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ 1.6์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ kubelet์€ ํ˜ผํ•ฉ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋  ๊ฒƒ์ด๋ฉฐ ์ผ๋ถ€๋Š” 1.4๋งŒํผ ์˜ค๋ž˜๋œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ๊ตฌ๋ฌธ ๋ถ„์„ ํ•  ๋•Œ :

@dcbw ๊ธฐ๋ฐ˜

nodeNetworkUnavailable์€ kubeadm atm์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์ด๋ฏ€๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ฃจํ”„์˜ ๊ทผ๋ณธ ์›์ธ์ธ NodeReady๋Š” ๋” ์„ธ๋ถ„ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ @davidopp ์ด ํ”„๋กœ๋ธŒ/ํ™œ์„ฑ, CNI ์ค€๋น„ ๋“ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ƒ์ž๋ฅผ ์ฒดํฌ ํ‘œ์‹œํ•˜๋Š” ๋ชฉ๋ก์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์˜ค์—ผ์ด ๋˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข‹์•„, ๋‹น์‹ ์ด ๋…ผ์Ÿํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์™œ ๋ ˆ์ด๋ธ”์„ ๋ถ™์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

ํ•˜์ง€๋งŒ @dcbw ์ด ํ† ๋ก ์— ๋” ์ ํ•ฉํ•œ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฌธ์ œ์˜ ๊ทผ๋ณธ์ด ์•„๋‹ˆ๋ผ ๋ฐฐํฌ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ฒ„ํ‚ท์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹ค์ œ๋กœ ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ํ•ดํ‚น์„ ๊ฒŒ์‹œํ•˜๋Š” ์ผ๋ถ€์˜€์Šต๋‹ˆ๋‹ค. :)

๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“  ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋…ผ์˜ํ•˜๊ณ  ์ˆ˜์ •์— ๋Œ€ํ•œ ETA๊ฐ€ ์—ฌ๊ธฐ์— ๋ฐฐ์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ ๋ ตํ•˜์ง„ ์•Š์ง€๋งŒ ์ข‹์•„์š” :)

์ถ”์‹  ์˜ˆ @bgrant0607 ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋” ํ…Œ์ŠคํŠธํ–ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค
PS2 ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ์ž˜๋ชป ๋ณธ๋‹ค๋ฉด, ๋‹น์‹ ์€ ๋‚˜๋ฅผ ๋น„๋‚œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ;)

@coeki ๋˜ํ•œ N-1 ๋ฒ„์ „์ด rpm/deb

@kfox1111 ๊ฒŒ์ดํŒ…๋„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.... ๋” ๋‚˜์€ ์ „๋žต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค :)

์ด์ „ ๋ฆด๋ฆฌ์Šค๋ฅผ ์•„์˜ˆ ์‚ญ์ œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ž๋™ํ™”๋ฅผ ์‰ฝ๊ฒŒ ์ค‘๋‹จ์‹œํ‚ค๊ณ  ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์„ค์น˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ ์กฐ๊ฑด์€ ์ด์œ , ๋ฉ”์‹œ์ง€ ๋ฐ ์ „ํ™˜ ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์—๊ฒŒ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์˜. UX๋Š” ๋ถ„๋ช…ํžˆ ์šฐ๋ฆฌ๊ฐ€ ๋…ธ๋“œ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋Š” ์ฃผ์š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งˆ์Šคํ„ฐ ์ž‘์—…(์˜ˆ: ์ถ•์ถœ ๋ฐ ์ผ์ • ์ฐจ๋‹จ)์— ๋Œ€ํ•œ ํŠธ๋ฆฌ๊ฑฐ๋กœ ๋…ธ๋“œ ์กฐ๊ฑด์˜ ๋ชจ๋“  ์‚ฌ์šฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์‹  ์˜ค์—ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์žฅ๊ธฐ์ ์œผ๋กœ(์˜ˆ: v2 API ์žฅ๊ธฐ ์‹คํ–‰) ์ด์œ ์™€ ๋ฉ”์‹œ์ง€๋ฅผ taint์— ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ๋…ธ๋“œ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์šฐ๋ฆฌ๋Š” ์ด๋ฏธ TimeAdded๋ผ๋Š” ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ์˜ ์ „ํ™˜ ์‹œ๊ฐ„์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

@coeki ์•„๋‹ˆ, ๋‚ด๊ฐ€ ๋งํ•œ ๊ฒƒ์€ ๊ฒŒ์ดํŒ…๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ดํŒ…์€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒŒ์ดํŠธ๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šด์˜์ž๋Š” ์ž์‹ ์˜ ํ™˜๊ฒฝ์—์„œ ์ด์ƒํ•œ ์ผ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. :) ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๋น„์Œ‰๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ตœ์†Œํ•œ ์ฒซ ๋ฒˆ์งธ bugfix ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค๊ธฐ ์ „์— ์ด์ „ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์˜ ๊ฒฝ์šฐ 1.6.1. ์ตœ์†Œํ•œ. ๋” ๋งŽ์€ ์ด์ „ ๋ฒ„์ „์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒˆ ๋ฒ„์ „์˜ ๋ฒ„๊ทธ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๋™์•ˆ ์šด์˜์ž๊ฐ€ ๊ณ„์† ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

@kfox1111 , ๊ทธ๊ฒƒ์ด ๊ฒŒ์ดํŒ…์ด ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ๊ณผ

@davidopp ๋ ˆ์ด๋ธ”๊ณผ ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€

์–ด์จŒ๋“ , ๋‹น์‹ ์€ ๋‚˜๋ฅผ ํ† ๋ก ์œผ๋กœ ์œ ์ธํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ •๋ง๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ œ ์š”์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "kubeadm init"๊ฐ€ ์ถœ๋ ฅ ์—†์ด ๊ฑฐ๊ธฐ์— ๋งค๋‹ฌ๋ ค ์žˆ๋Š” ๊ฒฝ์šฐ(์‹œ์ž‘ํ•˜์ง€ ๋ชปํ•œ kubelet ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•จ), ์ œ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๋ฉด #43835๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๊นŒ?

์ด์ œ ์–ด๋””์„œ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  • kubeadm / kubectl / kubelet์˜ ์ด์ „(1.6.0 ์ด์ „) ๋ฒ„์ „
  • ๋˜๋Š” ํŒจ์น˜๋œ ๋ฒ„์ „์˜ kubeadm(#43835 ๋˜๋Š” ๊ธฐํƒ€ ์ˆ˜์ • ์‚ฌํ•ญ ํฌํ•จ)?

๊ฐ์‚ฌ ํ•ด์š”!

(์ฐธ๊ณ : ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ปค๋ฐ‹์—์„œ ์ฐธ์กฐ๋œ kubeadm์˜ ํŒจ์น˜ ๋ฒ„์ „์€ ์ €์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...)

@obnoxxx ๋ฆด๋ฆฌ์Šค 1.6 ๋ถ„๊ธฐ์˜ ํŒ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

$ gsutil ls gs://kubernetes-release-dev/ci/v1.6.1-beta.0.12+018a96913f57f9

https://storage.googleapis.com/kubernetes-release-dev/ci/v1.6.1-beta.0.12+018a96913f57f9/bin/linux/amd64/kubeadm

@mikedanese ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ฒฌ๋”œ ์ˆ˜ ์—†๋Š”...

os ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  kubeadm์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ cat <<EOF > /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_EXTRA_ARGS
EOF
$ systemctl daemon-reload
$ systemctl restart kubelet

https://github.com/kubernetes/release/blob/master/debian/xenial/kubeadm/channel/stable/etc/systemd/system/kubelet.service.d/10-kubeadm.conf์—์„œ

@mikedanese ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (kube repo์—์„œ) os ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ rpms์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์œ„์— ์›น URL์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค...

1.6.1-beta.0.12 ๋ฒ„์ „์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ ์Šต๋‹ˆ๋‹ค.
kubeadm๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ์—ฌ์ „ํžˆ ์ค‘๋‹จ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ. (kubelet์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ ์ค‘)

centos์ธ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ๋“œ๋ผ์ด๋ฒ„๋„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์‹œ์Šคํ…œ ๋“œ๋ผ์ด๋ฒ„?

์ด๋Ÿฐ, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ทธ๊ฒŒ ๋” ์ข‹์Šต๋‹ˆ๋‹ค! :-)

@pipejakob ์ง€๊ธˆ์€์ด ๋กœ๊ทธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด์—†๋Š”,ํ•˜์ง€๋งŒ ๋‚œ kubeadm ๋ฒ„์ „์„ ํ™•์ธํ–ˆ๊ณ  @webwurst๊ฐ€ ๊ฐ€์ง€๊ณ ๋กœ ๋™์ผํ•œ ๋ฒ„์ „์ด์—ˆ๋‹ค. ๋˜ํ•œ apt-cache policy kubeadm ๊ฐ€๋Šฅํ•œ kubeadm ๋ฒ„์ „์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  kubernetes-xenial-unstable์—์„œ ๋‹จ ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
@mikedanese ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ํ”Œ๋ž€๋„ฌ๋กœ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค ;)
ํŽธ์ง‘: ๋‚˜๋Š” ์ „์ฒด ํ”Œ๋žซํผ์„ ์žฌ๊ตฌ์ถ•ํ–ˆ๊ณ  kubadm ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :+1:

์–˜๋“ค์•„, ์ˆ˜์ •์— ๋Œ€ํ•œ ํ˜„์ƒ ์œ ์ง€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ณง ์•ˆ์ •์ ์ธ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

@mikedanese ํŒจ์น˜๋œ debs๋Š” ๋™์ผํ•œ "๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

rhel(rpm)์šฉ kubeadm์˜ ํŒจ์น˜ ๋ฒ„์ „์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@mikedanese with patched debs init์€ ์„ฑ๊ณต์„ ๋ณด๊ณ ํ•˜์ง€๋งŒ "๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค: cni config uninitialized" ๋ฉ”์‹œ์ง€๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋Š” NotReady ์žˆ์Šต๋‹ˆ๋‹ค.

weave-net (weaveworks/weave-kube:1.9.4 - https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.6.yaml)์€ 1/2 CrashLoopBackOff :

FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "weave"

kube-dns ํฌ๋“œ๋Š” 0/3 Pending ์žˆ์Šต๋‹ˆ๋‹ค.

@ChipmunkV ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋„๋ก kube-proxy๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 1.5์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

command:
  - /usr/local/bin/kube-proxy
  - --kubeconfig=/var/lib/kube-proxy/kubeconfig.conf
  # add this line:
  - --proxy-mode=userspace

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— kubernetes-xenial-unstable ๊ฐ€ ์ €์—๊ฒŒ ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค.

@pstadler , ๋‚ด๊ฐ€ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒƒ์„ ์ง€์ ํ•œ ์ฑ„ํŒ…์˜ @errordeveloper ๋•๋ถ„์— IPALLOC_RANGE ๋ฅผ ์žฌ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@thenayr ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Kubernetes ๋งˆ์Šคํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ kubeadm ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ์ž‘์—…์ž๋ฅผ ์—ฌ๊ธฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณง ๋” ๋งŽ์€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@mikedanese ์—ฌ๊ธฐ์˜ ๋ชจ๋“  ๋Œ“๊ธ€์„ ์ฝ์„ ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉํ•  ๋ฒ„์ „์„ ์ฐพ๋Š” ๋ฐ ์˜์›ํžˆ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฃผ์–ด์ง„ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์ฐพ์„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ci-cross/latest.txt ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ(์ฆ‰, v1.7.0-alpha.0.1982+70684584beeb0c )์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๊ณ  ์ƒˆ๋กœ์šด kube-apiserver ํ”Œ๋ž˜๊ทธ(์ฆ‰, --proxy-client-key-file in d8be13fee85075abfc087632b3dbc586a10897ad)๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. gcr.io/google_containers/kube-apiserver-amd64 ์˜ ์ตœ๊ทผ ํƒœ๊ทธ์™€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

๋ฒ„ํ‚ท์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฐœ์ •ํŒ์„ ์‰ฝ๊ฒŒ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ข‹๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•œ ๋งต ํŒŒ์ผ ๋˜๋Š” ์•Œ๊ฑฐ๋‚˜ ์ถ”์ธกํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@errordeveloper ์šฐ๋ฆฌ๋Š” ์•ˆ์ •์ ์ธ ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฆด๋ฆฌ์Šค๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ O(์ผ) ๋‚ด์— ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์—๋Š” ๋ถˆ์•ˆ์ •ํ•œ ์ƒํƒœ์˜ ํŒจ์น˜๋œ debs์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฆด๋ฆฌ์Šค 1.5.6์€ CentOs 7์—์„œ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” http://yum.kubernetes.io/repos/kubernetes-el7-x86_64 ์— ์žˆ๋Š” kubeadm์˜ ์œ ์ผํ•œ ๋ฒ„์ „์ด ์†์ƒ๋œ 1.6์ด๊ธฐ ๋•Œ๋ฌธ์— ๋กค๋ฐฑํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค. 0. kubeadm 1.5.6 RPM์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ œ์•ˆ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ฐธ์œผ๋กœ ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์€ ์™„์ „ํžˆ ์ œ๊ฑฐ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :-(

๋‚ด ๊ฒฐ๊ณผ๋Š” centos 7์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • kubectl์— ๋Œ€ํ•ด ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ํŒจ์น˜๋œ ์ตœ์‹  kubeadm์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ kubadm init๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ „ํ˜€ ์–ป์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • @coeki์˜ ์ง€์‹œ๋กœ kubectl์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  kubeadm๋„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ํ›„์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. kubectl ๋ผ๊ณ 
The connection to the server localhost:8080 was refused - did you specify the right host or port?

๋ฌด์Šจ ์ผ์ด์•ผ?

@obnoxxx ๊ธฐ๋ณธ์ ์œผ๋กœ apiserver๋Š” 8080์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜์ง€ ์•Š๊ณ  ๋ณด์•ˆ 6443 ํฌํŠธ์—์„œ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. netstat -tunlp๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
/etc/kubernetes์—์„œ $HOME/.kube/config๋กœ admin.conf๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
$HOME/.kube/์— ์žˆ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ kubectl์ด apiserver์— ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. HTH. ์„ธ๋ฅด๊ฒŒ์ด

@apsinha ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•ž์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์‹œ์‚ฌ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์ œํ’ˆ ์‚ฌ๋žŒ๋“ค์ด ํŒ”๋กœ์šฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์—์„œ :

  • 1.6.0์€ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค: https://github.com/kubernetes/kubernetes/issues/43815#issuecomment -290809481
  • ์ด์ „ ๋ฒ„์ „์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ/ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ์‚ฌ๋žŒ๋“ค์€ ์•ˆ์ „ํ•˜๊ฒŒ ๋กค๋ฐฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ๋ชจ๋“  ์„ค์น˜ ์ž๋™ํ™”๋ฅผ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/kubernetes/kubernetes/issues/43815#issuecomment -290861903
  • ์ด๊ฒƒ์ด ๊นจ์กŒ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•œ ๊ณต๊ฐœ ๋ฐœํ‘œ(๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ) ์—†์Œ
  • ์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ผ์ • ์—†์Œ(์ €๋Š” ๊ฐœ๋ฐœ์ž์ด๋ฏ€๋กœ "์–ธ์ œ ์ˆ˜์ •๋ ๊นŒ์š”?"๋ผ๋Š” ์งˆ๋ฌธ์ด ์–ผ๋งˆ๋‚˜ ๋ถˆ์พŒํ•œ์ง€ ์••๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์€ ์ด๋ ‡๊ฒŒ ๋ฌป์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์†Œํ•œ ์˜ˆ์ƒ ๊ธฐ๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค)
  • ๋Œ€ํ™”์— ๊ณ„์† ์ฐธ์—ฌํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ์ƒํ™ฉ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฐ ์ˆ˜์ • ์ผ์ •์— ๋Œ€ํ•ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์—ฌ์ž๋“ค ์‚ฌ์ด์˜ ๋งŽ์€ ๊ธฐ์ˆ ์  ํ† ๋ก (๋Œ€๋ถ€๋ถ„ ์žฅ๊ธฐ ์ „๋žต์— ๊ด€ํ•œ ๊ฒƒ)์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ์ƒํ™ฉ๊ณผ ์ฆ‰๊ฐ์ ์ธ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํŒŒ์•…ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์Šค๋ ˆ๋“œ์—์„œ ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค.

Kubernetes๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋งŒ๋“œ๋Š” ๋ชจ๋“  ์œ„๋Œ€ํ•œ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•œ ๋ฌด๋ก€ํ•œ ํ–‰๋™์€ ์•„๋‹™๋‹ˆ๋‹ค. Kubernetes๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ์•ˆ์ •์ ์ด๋ผ๋Š” ๋Œ€์ค‘์˜ ์ธ์‹ ์ธก๋ฉด์—์„œ ๋ณด๊ธฐ์— ์ข‹์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” "๊ฐ€๋ฅด์น  ์ˆ˜ ์žˆ๋Š” ์ˆœ๊ฐ„"์ด ์—ฌ๊ธฐ์— ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž„ ๋ฟ์ž…๋‹ˆ๋‹ค. (ํ—ˆ์šฉ๋œ kubeadm์€ ์•ŒํŒŒ/๋ฒ ํƒ€์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐ€์‹œ์„ฑ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.)

kubernetes/release.rpm์„ ์‚ฌ์šฉํ•˜์—ฌ kubeadm-1.5.6์„ ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

# rpm -Uvh kubectl-1.5.6-0.x86_64.rpm kubeadm-1.5.6-0.x86_64.rpm 
error: Failed dependencies:
        kubectl >= 1.6.0 is needed by kubeadm-1.5.6-0.x86_64
        kubelet >= 1.6.0 is needed by kubeadm-1.5.6-0.x86_64

@bostone ์—ฌ๊ธฐ ์—์„œ .spec์„ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@sbezverk ํžŒํŠธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ง€๊ธˆ์ด ๋‚ซ๋‹ค...

์ด๊ฒƒ์€ ๊ถ๊ธˆํ•˜๋‹ค:

  • ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ admin.conf๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ–ˆ๋Š”์ง€ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ „์— kubectl -s localhost:6443 ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์ด์ œ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

v1.6.1์ด ์ถœ์‹œ๋˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. EOD๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ฐธ๊ณ  ์‚ฌํ•ญ:

  1. ์ด์ „ ํŒจํ‚ค์ง€๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ๋Š” https://github.com/kubernetes/release/issues/234 ์—์„œ ์ถ”์ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค @bostone ๊ท€ํ•˜์˜ ๋ฌธ์ œ๋„ ๊ฑฐ๊ธฐ์—์„œ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค)
  2. ์—ฌ๊ธฐ์—์„œ ์ถ”์ ๋˜๋Š” PR์— ๋Œ€ํ•œ kubeadm e2e ํ…Œ์ŠคํŠธ: https://github.com/kubernetes/kubeadm/issues/190
  3. ๊ณต๊ฐœ ๋ฐœํ‘œ์— ๊ด€ํ•ด์„œ๋Š” -- ํŠธ์œ„ํ„ฐ์— ์˜ฌ๋ ธ์ง€๋งŒ ๊ณต์‹์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ฑ„๋„์ด ๋ฌด์—‡์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋“ค์€ ๋ชจ๋‘ PM์—์„œ ์ œ๊ธฐํ•˜๊ธฐ์— ์ข‹์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. @pipejakob๋‹˜ ์€ ๊ธฐ๊บผ์ด ๊ทธ ์‚ฌํ›„ ์กฐ์‚ฌ๋ฅผ ํ•จ๊ป˜

@obnoxxx 1.5์—์„œ๋Š” API ์„œ๋ฒ„๊ฐ€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํฌํŠธ๋ฅผ ๋…ธ์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— admin.conf๋ฅผ ๋ณต์‚ฌ/chownํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ด์ „์— ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. 1.6์—์„œ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ API ์„œ๋ฒ„์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#kubeadm-2 ์ฐธ์กฐ).

@mikedanese ์ข‹์€ ์†Œ๋ฆฌ, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๋‚˜๋Š” ๋”๋ฏธ๋ฅผ ์œ„ํ•ด - ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์ด ๋ฆด๋ฆฌ์Šค 1.6.1์˜ ํšจ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
kubelet์€ /etc/systemd/system/kubelet.service.d/10-kubeadm.conf ( @coeki ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•)์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์—†์ด ์‹œ์ž‘๋ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด #43835(๋‚˜์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜์Œ)์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋ฉ๋‹ˆ๊นŒ?

@jbeda ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@jbeda ๋‚˜๋Š” ํ˜ผ๋ž€์ด ๊ณต์‹ kubadm ์„ค์น˜ ๋ฌธ์„œ์—์„œ YUM repo๋ฅผ http://yum.kubernetes.io/repos/kubernetes-el7-x86_64๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์‹ค๋ง์Šค๋Ÿฝ๊ฒŒ๋„ 1.5.6 rpm์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์„ค์น˜ํ•˜๋ฉด ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. kubeadm init ์‹คํ–‰ํ•˜๋ฉด ๋ฐ”๋กœ ๊ฐ™์€ ์ค„์— ๋งค๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

# kubeadm init
Running pre-flight checks
<master/tokens> generated token: "5076be.38581a71134596d0"
<master/pki> generated Certificate Authority key and certificate:
Issuer: CN=kubernetes | Subject: CN=kubernetes | CA: true
Not before: 2017-04-03 21:28:18 +0000 UTC Not After: 2027-04-01 21:28:18 +0000 UTC
Public: /etc/kubernetes/pki/ca-pub.pem
Private: /etc/kubernetes/pki/ca-key.pem
Cert: /etc/kubernetes/pki/ca.pem
<master/pki> generated API Server key and certificate:
Issuer: CN=kubernetes | Subject: CN=kube-apiserver | CA: false
Not before: 2017-04-03 21:28:18 +0000 UTC Not After: 2018-04-03 21:28:18 +0000 UTC
Alternate Names: [10.25.47.21 10.96.0.1 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local]
Public: /etc/kubernetes/pki/apiserver-pub.pem
Private: /etc/kubernetes/pki/apiserver-key.pem
Cert: /etc/kubernetes/pki/apiserver.pem
<master/pki> generated Service Account Signing keys:
Public: /etc/kubernetes/pki/sa-pub.pem
Private: /etc/kubernetes/pki/sa-key.pem
<master/pki> created keys and certificates in "/etc/kubernetes/pki"
<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"
<util/kubeconfig> created "/etc/kubernetes/admin.conf"
<master/apiclient> created API client configuration
<master/apiclient> created API client, waiting for the control plane to become ready

1.6.1 ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ํฌ๋ง์„ ๊ฐ€์ง€๊ฒ ์Šต๋‹ˆ๋‹ค...

1.6.1์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@mikedanese ์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ๊ธฐ ์ „์— kubeadm์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ ๋‚˜๋Š” ์ด๋ฏธ 10๋ถ„ ๋™์•ˆ [apiclient] Created API client, waiting for the control plane to become ready ๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋‹ค. ์ƒˆ๋กœ์šด 1.6.1์ด ์„ค์น˜๋œ CentOS 7์—์„œ

@bostone ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #43805

ํŽธ์ง‘์„ ์‹œ๋„ /etc/systemd/system/kubelet.service.d/10-kubeadm.conf ๋ฐ ์ถ”๊ฐ€ --cgroup-driver=systemd

systemctl daemon-reload; systemctl restart kubelet ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

@gtirloni๋Š” ์šฐ๋ฆฌ์˜ ์ œ์•ˆ์— ๋‚˜๋Š”์ด ๋ง์— ๋„์ฐฉ kubeadm init ์‹คํ–‰ kubectl์— ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์‹œ๋„๋Š”์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค : The connection to the server localhost:8080 was refused - did you specify the right host or port? ์•„๋‹ˆ์—์š” ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํฌํŠธ์—์„œ ์–ด๋–ค ๊ฒƒ์„ ๋ณ€ํ™” ์ด ์ ?

์ด๊ฒƒ์ด ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค์Œ์€ systemctl status kubelet ์‹คํ–‰ํ•  ๋•Œ ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.
``` systemctl ์ƒํƒœ kubelet -l
โ— kubelet.service - kubelet: Kubernetes ๋…ธ๋“œ ์—์ด์ „ํŠธ
๋กœ๋“œ๋จ: ๋กœ๋“œ๋จ(/etc/systemd/system/kubelet.service; ํ™œ์„ฑํ™”๋จ, ๊ณต๊ธ‰์—…์ฒด ์‚ฌ์ „ ์„ค์ •: ๋น„ํ™œ์„ฑํ™”๋จ)
๋“œ๋กญ์ธ: /etc/systemd/system/kubelet.service.d
โ””โ”€10-kubeadm.conf
ํ™œ์„ฑ: ํ™œ์„ฑ(์‹คํ–‰ ์ค‘) ์ดํ›„ ์›”์š”์ผ 2017-04-03 17:31:07 PDT; 11๋ถ„ ์ „
๋ฌธ์„œ: http://kubernetes.io/docs/
๋ฉ”์ธ PID: 10382(kubelet)
C๊ทธ๋ฃน: /system.slice/kubelet.service
โ”œโ”€10382 /usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true - -network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain =cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cgroup-driver=systemd
โ””โ”€10436 ์ €๋„ctl -k -f

Apr 03 17:41:56 sdl02269 kubelet[10382]: W0403 17:41:56.645299 10382 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Apr 03 17:41:56 sdl02269 kubelet[10382]: E0403 17:41:56.645407 10382 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ์ด์œ :NetworkPluginNotReady ๋ฉ”์‹œ์ง€ ๊ฐ€ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€```

์˜ˆ, ์šฐ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. e2e ํ…Œ์ŠคํŠธ๊ฐ€ ๋ฆด๋ฆฌ์Šค ๋ถ„๊ธฐ๋ฅผ ํ†ต๊ณผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋ถ€๋”ชํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bostone kubeadm init ์ดํ›„์— ์ด ๋‹จ๊ณ„๊ฐ€ ๋ˆ„๋ฝ ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf

์—ฌ๊ธฐ์— ์„ค๋ช…๋œ 3๋‹จ๊ณ„๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ์–ป๋Š” cni ๊ตฌ์„ฑ ์˜ค๋ฅ˜์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ [apiclient] Created API ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ณด๊ณ  Ubuntu 16.04 ๋ฐ 1.6.1 ์ƒˆ๋กœ ์„ค์น˜๋กœ ์ด๋ฏธ 10๋ถ„ ๋™์•ˆ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

@pingthing Slack Kubernetes ๋ฐ kubeadm ์ฑ„๋„์— ๊ฐ€์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด ๊ฑฐ๊ธฐ์—์„œ ๋””๋ฒ„๊น…์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ centos-release-7-3.1611.el7.centos.x86_64์— Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(Docker๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •).

1) (/etc/yum.repo.d/kubernetes.repo์—์„œ) baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64-unstable
=> ์ตœ์‹  Kubernetes 1.6.1์—์„œ ๋ถˆ์•ˆ์ •ํ•œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด
2) yum install -y kubelet kubeadm kubectl kubernetes-cni
3) (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf) ๋งˆ์ง€๋ง‰ ์ค„ ๋์— "--cgroup-driver=systemd"๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
=> Docker๋Š” cgroup-driver์— systemd๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  kubelet์€ cgroup-driver์— cgroupfs๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
4) systemctl์€ kubelet์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  && systemctl์€ kubelet์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
5) kubeadm ์ดˆ๊ธฐํ™” --pod-network-cidr 10.244.0.0/16
=> --api-advertise-addresses๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด ๋Œ€์‹  --apiserver-advertise-address๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
6) cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=$HOME/admin.conf
=> ์ด ๋‹จ๊ณ„๊ฐ€ ์—†์œผ๋ฉด kubectl get์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
=> ๋‚˜๋Š” 1.5.2์—์„œ ๊ทธ๊ฒƒ์„ํ•˜์ง€ ์•Š์•˜๋‹ค
7) kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
=> 1.6.0์€ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๋„์ž…ํ•˜๋ฏ€๋กœ Flannel ๋ฐ๋ชฌ์…‹์„ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ClusterRole ๋ฐ ClusterRoleBinding์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
8) kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
=> Flannel ๋ฐ๋ชฌ์…‹ ์ƒ์„ฑ
9) (๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ์—์„œ) kubeadm join --token (๊ท€ํ•˜์˜ ํ† ํฐ) (ip):(port)
=> kubeadm init์˜ ๊ฒฐ๊ณผ์™€ ๊ฐ™์ด

์œ„์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋Š” Kubernetes-1.6.0, ํŠนํžˆ kubeadm๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์˜ ์ œ์•ˆ์„ ๊ฒฐํ•ฉํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(Ubuntu LTS, kubeadm 1.6.1).

๋จผ์ € --apiserver-advertise-address ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ "Created API ํด๋ผ์ด์–ธํŠธ, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์ค€๋น„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘"์— kubeadm์ด ๋งค๋‹ฌ๋ ค ์žˆ๋Š” ๊ฒƒ๋„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ๋กœ๊ทธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

let.go:2067] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Apr 04 12:27:04 xxx kubelet[57592]: E0404 12:27:04.352780   57592 eviction_manager.go:214] eviction manager: unexpected err: failed GetNode: node 'xxx' not found
Apr 04 12:27:05 xxx kubelet[57592]: E0404 12:27:05.326799   57592 kubelet_node_status.go:101] Unable to register node "xxx" with API server: Post https://x.x.x.x:6443/api/v1/nodes: dial tcp x.x.x.x:6443: i/o timeout
Apr 04 12:27:06 xxx kubelet[57592]: E0404 12:27:06.745674   57592 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:46: Failed to list *v1.Pod: Get https://x.x.x.x:6443/api/v1/pods?fieldSelector=spec.nodeName%3Dxxx&resourceVersion=0: dial tcp x.x.x.x:6443: i/o timeout
Apr 04 12:27:06 xxx kubelet[57592]: E0404 12:27:06.746759   57592 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:390: Failed to list *v1.Node: Get https://x.x.x.x:6443/api/v1/nodes?fieldSelector=metadata.name%3Dxxx&resourceVersion=0: dial tcp x.x.x.x:6443: i/o timeout
Apr 04 12:27:06 xxx kubelet[57592]: E0404 12:27:06.747749   57592 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:382: Failed to list *v1.Service: Get https://x.x.x.x:6443/api/v1/services?resourceVersion=0: dial tcp x.x.x.x:6443: i/o timeou

์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด kubeadm์ด ํ†ต๊ณผํ•˜์ง€๋งŒ kubelet ์‹œ์ž‘์— ๋Œ€ํ•ด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

Kubelet์ด ์ œ๋Œ€๋กœ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  ์–ด๋–ค ์‹์œผ๋กœ๋“  kubectl ๋กœ ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

1.5.x kubeadm ๋ฒ„์ „์ด centos ์ €์žฅ์†Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Ubuntu LTS์—์„œ๋„ ์ œ๊ฑฐ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages It ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ค์ œ๋กœ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.

@๋ณด์Šคํ†ค

"์ œ์–ด ํ”Œ๋ ˆ์ธ์ด ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘"์—์„œ ๋ฉˆ์ถ”๋Š” ํ˜„์ƒ์„ ํŒŒ์•…ํ•˜์…จ์Šต๋‹ˆ๊นŒ? 1.6.1์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹œ๋„ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@gtirloni @srzjulio kubeadm init ๋‹ค์Œ์— ์ด ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. kubelet ์„œ๋น„์Šค๊ฐ€ failed ์—์„œ active (running) ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ The connection to the server localhost:8080 was refused - did you specify the right host or port? ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค ๋ฆฌ์Šค๋‹์„ ๋ณด๋ฉด 8080์€ ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ kubelet์ด ๋‹ค์Œ ํฌํŠธ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

kubelet    6397  root   12u  IPv6 611842      0t0  TCP *:4194 (LISTEN)
kubelet    6397  root   15u  IPv4 611175      0t0  TCP sdl02269.labs.teradata.com:49597->sdl02269.labs.teradata.com:sun-sr-https (ESTABLISHED)
kubelet    6397  root   16u  IPv4 611890      0t0  TCP localhost:10248 (LISTEN)
kubelet    6397  root   18u  IPv6 611893      0t0  TCP *:10250 (LISTEN)
kubelet    6397  root   19u  IPv6 611895      0t0  TCP *:10255 (LISTEN)

8080์„ ์ž˜๋ชป ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž˜๋ชป๋œ(๋ณ€๊ฒฝ๋œ?) ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@bostone ํ•„์š”ํ•œ kubelet ํฌํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ kube-apiserver์ด๋ฉฐ 6443 ํฌํŠธ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@sbezverk ํฌํŠธ๊นŒ์ง€ ๊ธฐ๋ณธ๊ฐ’์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์ง€์นจ์— ์—†์Œ) 8080์—์„œ 6443์œผ๋กœ ์ „ํ™˜ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@bostone apiserver ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ 6443 ํฌํŠธ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. /etc/kubernetes/admin.conf๋ฅผ $HOME/.kube/config์— ๋ณต์‚ฌํ•˜๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ์„ค์ •์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

@sbezverk BTW - ๋ชจ๋“  ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง€๋งŒ kubeadm init ์ถœ๋ ฅ์˜ ์ด 3๊ฐœ ๋ช…๋ น์ค„์€ sudo ์‚ฌ์šฉ์ž ์‚ฌ์šฉ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ชจ๋“  ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ sudo๋กœ๋„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ข‹์•„, ๋‚˜๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๊ณ  ๋” ๋‚˜์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๋‹จ๊ณ„์ด๋ฉฐ CentOS 7์—์„œ ๋ฃจํŠธ๋กœ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
        https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# setenforce 0
# yum install -y docker kubelet kubeadm kubectl kubernetes-cni
# vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

10-kubeadm.conf์— -cgroup-driver=systemd ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

# systemctl enable docker && systemctl start docker
# systemctl enable kubelet && systemctl start kubelet
# sysctl -w net.bridge.bridge-nf-call-iptables=1
# systemctl stop firewalld; systemctl disable firewalld
# kubeadm init
# cp /etc/kubernetes/admin.conf $HOME/
# chown $(id -u):$(id -g) $HOME/admin.conf
# export KUBECONFIG=$HOME/admin.conf
# kubectl apply -f https://git.io/weave-kube

์ด ์‹œ์ ์—์„œ kubectl get nodes ์‹คํ–‰ํ•˜๊ณ  ๋ชฉ๋ก์—์„œ ๋‚ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ œ์™ธ ๋ฏธ๋‹ˆ์–ธ์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณต kubeadm init ๋Œ€์‹  ์‹คํ–‰ kubeadm join --token a21234.c7abc2f82e2219fd 12.34.567.89:6443 ์— ์˜ํ•ด ์ƒ์„ฑ ๋œ kubeadm init
์ด ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ๋งˆ์Šคํ„ฐ ๋ฐ ๋ฏธ๋‹ˆ์–ธ ๋…ธ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ - ๋ฌธ์ œ:

# kubectl get nodes
NAME       STATUS     AGE       VERSION
abc02918   NotReady   42m       v1.6.1
abc04576   NotReady   29m       v1.6.1

# kubectl describe node abc02918
Events:
  FirstSeen LastSeen    Count   From            SubObjectPath   Type        Reason          Message
  --------- --------    -----   ----            -------------   --------    ------          -------
  43m       43m     1   kubelet, sdl02918           Normal      Starting        Starting kubelet.
  43m       43m     1   kubelet, sdl02918           Warning     ImageGCFailed       unable to find data for container /
  43m       43m     29  kubelet, sdl02918           Normal      NodeHasSufficientDisk   Node sdl02918 status is now: NodeHasSufficientDisk
  43m       43m     29  kubelet, sdl02918           Normal      NodeHasSufficientMemory Node sdl02918 status is now: NodeHasSufficientMemory
  43m       43m     29  kubelet, sdl02918           Normal      NodeHasNoDiskPressure   Node sdl02918 status is now: NodeHasNoDiskPressure
  42m       42m     1   kube-proxy, sdl02918            Normal      Starting        Starting kube-proxy.

๋”ฐ๋ผ์„œ ๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

๋‚˜๋Š” ๋‹น์‹ ์ด
1.6 ์ด์ „ yaml ํŒŒ์ผ.

"kubectl apply -f https://git.io/weave-kube-1.6 "์„ ์‹œ๋„

2017๋…„ 4์›” 4์ผ ํ™”์š”์ผ ์˜คํ›„ 12์‹œ 24๋ถ„์— Bo Stone [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚˜๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๊ณ  ๋” ๋‚˜์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค
์ง€๊ธˆ๊นŒ์ง€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๋‹จ๊ณ„์ด๋ฉฐ ๋ฃจํŠธ๋กœ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

๊ณ ์–‘์ด <

[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค]
์ด๋ฆ„=์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
baseurl= http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
ํ™œ์„ฑํ™” = 1
gpgcheck=1
repo_gpgcheck=1
gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https:/ /packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

์„ธํ…ํฌ์Šค 0

yum install -y docker kubelet kubeadm kubectl kubernetes-cni

vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

10-kubeadm.conf์— -cgroup-driver=systemd๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

systemctl ๋„์ปค ํ™œ์„ฑํ™” && systemctl ๋„์ปค ์‹œ์ž‘

systemctl kubelet ํ™œ์„ฑํ™” && systemctl kubelet ์‹œ์ž‘

sysctl -w net.bridge.bridge-nf-call-iptables=1

systemctl ๋ฐฉํ™”๋ฒฝ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. systemctl ๋ฐฉํ™”๋ฒฝ ๋น„ํ™œ์„ฑํ™”

kubeadm ์ดˆ๊ธฐํ™”

cp /etc/kubernetes/admin.conf $HOME/

chown $(id -u):$(id -g) $HOME/admin.conf

๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=$HOME/admin.conf

kubectl ์ ์šฉ -f https://git.io/weave-kube

์ด ์‹œ์ ์—์„œ kubectl get nodes๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชฉ๋ก.
kubeadm ์กฐ์ธ์„ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ์ œ์™ธํ•˜๊ณ  ๋ฏธ๋‹ˆ์–ธ์— ๋Œ€ํ•ด ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
--token a21234.c7abc2f82e2219fd 12.34.567.89:6443 kubeadm์— ์˜ํ•ด ์ƒ์„ฑ๋จ
์ดˆ๊ธฐํ™”
์ด ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ๋งˆ์Šคํ„ฐ ๋ฐ ๋ฏธ๋‹ˆ์–ธ ๋…ธ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ - ๋ฌธ์ œ:

kubectl ๊ฐ€์ ธ์˜ค๊ธฐ ๋…ธ๋“œ

์ด๋ฆ„ ์ƒํƒœ ๋‚˜์ด ๋ฒ„์ „
abc02918 ์ค€๋น„ ์•ˆ ๋จ 42m v1.6.1
abc04576 ์ค€๋น„ ์•ˆ ๋จ 29m v1.6.1

kubectl์€ ๋…ธ๋“œ abc02918์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ:
SubObjectPath ์œ ํ˜• ์ด์œ  ๋ฉ”์‹œ์ง€์˜ FirstSeen LastSeen ๊ฐœ์ˆ˜
--------- -------- ----- ---- ------------- -------- --- --- -------
43m 43m 1 kubelet, sdl02918 ์ •์ƒ ์‹œ์ž‘ kubelet ์‹œ์ž‘ ์ค‘.
43m 43m 1 kubelet, sdl02918 ๊ฒฝ๊ณ  ImageGCFailed ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ/
43m 43m 29 kubelet, sdl02918 ์ผ๋ฐ˜ NodeHasSufficientDisk ๋…ธ๋“œ sdl02918 ์ƒํƒœ๋Š” ํ˜„์žฌ NodeHasSufficientDisk์ž…๋‹ˆ๋‹ค.
43m 43m 29 kubelet, sdl02918 ์ผ๋ฐ˜ NodeHasSufficientMemory ๋…ธ๋“œ sdl02918 ์ƒํƒœ๋Š” ํ˜„์žฌ NodeHasSufficientMemory์ž…๋‹ˆ๋‹ค.
43m 43m 29 kubelet, sdl02918 ์ •์ƒ NodeHasNoDiskPressure ๋…ธ๋“œ sdl02918 ์ƒํƒœ๋Š” ํ˜„์žฌ NodeHasNoDiskPressure์ž…๋‹ˆ๋‹ค.
42m 42m 1 kube-proxy, sdl02918 ์ •์ƒ ์‹œ์ž‘ kube-proxy ์‹œ์ž‘ ์ค‘.

๋”ฐ๋ผ์„œ ๋…ธ๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-291571437 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAeJQ6OFBV3s6OHmfOkUdwqQsJ1sjg23ks5rsnzMgaJpZM4MtMRe
.

CentOS ๋ฐ kubeadm 1.6.1-1 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๋™์ž‘์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ค€๋น„๋œ ๊ฒƒ์œผ๋กœ ๋ณด๊ณ ๋˜์ง€๋งŒ ๋‹ค์Œ ๋ฉ”์‹œ์ง€์—์„œ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค.

[apiclient] Temporarily unable to list nodes (will retry)

๊ทธ๋Ÿฌ๋‚˜ ๋กœ๊ทธ์—๋Š” ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Apr 04 13:30:30 csc-q-docker-1.colinx.com kubelet[108575]: E0404 13:30:30.491150  108575 pod_workers.go:182] Error syncing pod 2193220cb6f65d66c0d8762189232e64 ("kube-apiserver-csc-q-docker-1.colinx.com_kube-system(2193220cb6f65d66c0d8762189232e64)"), skipping: failed to "StartContainer" for "kube-apiserver" with CrashLoopBackOff: "Back-off 20s restarting failed container=kube-apiserver pod=kube-apiserver-csc-q-docker-1.colinx.com_kube-system(2193220cb6f65d66c0d8762189232e64)"
Apr 04 13:30:30 csc-q-docker-1.colinx.com kubelet[108575]: W0404 13:30:30.524051  108575 cni.go:157] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 04 13:30:30 csc-q-docker-1.colinx.com kubelet[108575]: E0404 13:30:30.524243  108575 kubelet.go:2067] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

@sjenning ๊ทธ๋ ‡๊ตฐ์š” ! ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•˜์ง€๋งŒ Ready ์ƒํƒœ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์—ฌ๋Ÿฌ๋ถ„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค (์ง€๊ธˆ์€)

@bostone ๋‚˜๋Š” ๋‹น์‹ ์ด ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ ˆ์‹œํ”ผ๋ฅผ ๋”ฐ๋ž์ง€๋งŒ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” kubeadm init๋ฅผ ์ง€๋‚˜์น˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋„์ปค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ๋‚ด ๊ฒฝ์šฐ์˜ ์ฐจ์ด์ ์ž…๋‹ˆ๊นŒ?

@dcowden ๋‚ด ์‹œ์Šคํ…œ Docker version 1.12.6, build 96d83a5/1.12.6 ์—์„œ yum์ด ์„ ํƒํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด์ „ ์„ค์น˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋˜ ๋ชจ๋“  VM์„ ๋‹ค์‹œ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@๋ณด์Šคํ†ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ ์„ค์ •์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด ์‹œ์Šคํ…œ์—์„œ ์ตœ์‹  ๋ฒ„์ „์€ ์ด์ƒํ•œ 17.03.1.ce ๋ฒ„์ „์ž…๋‹ˆ๋‹ค(๋ถ„๋ช…ํžˆ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์ž„)

์ผ๋ฐ˜์ ์œผ๋กœ ์œ ์šฉํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ ˆ์ด๋ถ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
CentOS 7์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/sjenning/kubeadm-playbook

YMMV์ด์ง€๋งŒ ์ตœ์†Œํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ผ์„
json ํŒŒ์ผ ๋กœ๊น… ๋ฐ ์˜ค๋ฒ„๋ ˆ์ด ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋„์ปค๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํ”Œ๋ ˆ์ด๋ถ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ฐธ๊ณ ์šฉ์œผ๋กœ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2017๋…„ 4์›” 4์ผ ํ™”์š”์ผ ์˜คํ›„ 12:55 Dave Cowden [email protected]
์ผ๋‹ค:

@bostone https://github.com/bostone ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ฒƒ์ด๋‹ค
๋‚ด๊ฐ€ ์ž‘๋™ ์„ค์ •์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฒ„์ „. ๋‚ด ์‹œ์Šคํ…œ์—์„œ ์ตœ์‹ ์€
์ด์ƒํ•œ 17.03.1.ce ๋ฒ„์ „(๋ถ„๋ช…ํžˆ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์ž„)

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/43815#issuecomment-291580822 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAeJQ7CUA4vxhF3T7nMc9wRu47rbWe-Kks5rsoQmgaJpZM4MtMRe
.

@sjenning ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋งค์šฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค!

์ž, ์—ฌ๊ธฐ์— ํ•˜๋‚˜์˜ ํ•ฉ๋ณ‘์ฆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. master ๋ฐ minion์—์„œ kubeadm reset ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  docker ๋ฐ kubelet ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ kubeadm init ๊ฐ€ ๋‹ค์‹œ Created API client, waiting for the control plane to become ready ์— ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ kubeadm ์žฌ์„ค์ •์„ ์œ„ํ•œ ์™„์ „ํ•œ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
@sjenning ํ”Œ๋ ˆ์ด๋ถ์„ ์ฒ˜์Œ ์‹คํ–‰ํ•œ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด

๋‚ด ๊ฒฝ์šฐ์—๋Š” @bostone /var/lib/etcd/ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

@autostatic ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋น„์–ด ์žˆ์—ˆ๊ณ  ์ด๋ฆ„์„ @sjenning you playbook ์ค‘๋‹จ, ๋‚ด๊ฐ€ ๋‹น์‹ ์„ ์œ„ํ•ด ํ‹ฐ์ผ“์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค

v1.6.1์—์„œ ๋Œ€์‹œ๋ณด๋“œ ์‹คํ–‰์„ ์‹œ๋„ํ•œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

'๊ธˆ์ง€(403)

์‚ฌ์šฉ์ž " system:serviceaccount :kube- system:default "๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ”์œ„์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ)
`

Flannel์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋” ๋งŽ์€ RBAC๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

@srzjulio ์ด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ

@srzjulio RBAC ๊ทœ์น™์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

API ๋ฒ„์ „: rbac.authorization.k8s.io/v1alpha1
์ข…๋ฅ˜: ClusterRoleBinding
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ:
์ด๋ฆ„: ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž
์—ญํ•  ์ฐธ์กฐ:
API ๊ทธ๋ฃน: rbac.authorization.k8s.io
์ข…๋ฅ˜: ClusterRole
์ด๋ฆ„: ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž
๊ณผ๋ชฉ:

์ฃผ์˜ -- @sbezverk ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ”์ธ๋”ฉ์€ ๋ณธ์งˆ์ ์œผ๋กœ RBAC๋ฅผ ๋•๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๋ฉด ๋งค์šฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

kind: Group
name: system:unauthenticated

์ด๊ฒƒ์€ ํŠนํžˆ ๋‚˜์ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž๊ฒฉ ์ฆ๋ช… ์—†์ด๋„ API ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž„์˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

@jbeda ๊ทธ๊ฒƒ์€ 1.5.6์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ–ˆ๋˜ ๋™์ž‘๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ณด์•ˆ ๊ทœ์น™์œผ๋กœ ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๋Œ€์‹  ๋ณด์•ˆ ๊ตฌ์„ฑ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ ์ง„์ ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ system:unauthenticated ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ 1.5.6๋ณด๋‹ค ํ›จ์”ฌ ๋‚˜์ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์›ํ•˜์ง€ ์•Š์œผ๋ฉด AlwaysAllow ๊ถŒํ•œ ๋ถ€์—ฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌํ•˜๋Š” ๋™์•ˆ ๋ชจ๋‘๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด RBAC,AlwaysAllow๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿฌ๋ฉด ์ต๋ช… ์š”์ฒญ์ด ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  API ์„œ๋ฒ„ ๋กœ๊ทธ์— RBAC ๊ฑฐ๋ถ€๊ฐ€ ๊ธฐ๋ก๋˜์ง€๋งŒ ์ธ์ฆ๋œ ๋ชจ๋“  ์š”์ฒญ์€ ๊ณ„์†ํ•ด์„œ ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์›๋ž˜ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํƒ€๋‹นํ•œ ๋ฌธ์ œ์™€ ๋ฌธ์ œ์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋Œ€ํ™”๋ฅผ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋นจ๋ฆฌ Enter ํ‚ค๋ฅผ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1 - ๋ฆด๋ฆฌ์Šค 1.6.0์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ
2 - ๋ชจ๋‘ ๊ณ ์ •๋˜์ง€ ์•Š์Œ
3 - RBAC๋กœ ์ด๋™(๋‚ด ์˜๊ฒฌ์œผ๋กœ๋Š” ์ข‹์Œ)ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 4๋ฒˆ ํ•ญ๋ชฉ ์ฐธ์กฐ
4 - ์ด๊ฒƒ์€ ์ž˜ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ฌธ์„œ/๋ธ”๋กœ๊ทธ ๋˜๋Š” ์„ค๋ช…ํ•  ๋ฌธ์„œ๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
5 - ๋‚˜๋Š” ๊ตฌ์กฐ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋ชจ๋“  ppl์—๊ฒŒ ์ ˆํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

https://kubernetes.io/docs/admin/authorization/rbac/#service -account-permissions๋Š” ๊ถŒํ•œ์„ ์—ฌ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์„ธ๋ถ€ ์˜ต์…˜์— ๋Œ€ํ•œ ์ข‹์€ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

kublet ์— "

Apr 12 14:23:25 machine01 kubelet[3026]: W0412 14:23:25.542322    3026 docker_service.go:196] No cgroup driver is set in Docker
Apr 12 14:23:25 machine01 kubelet[3026]: W0412 14:23:25.542343    3026 docker_service.go:197] Falling back to use the default driver: "cgroupfs"
Apr 12 14:23:25 machine01 kubelet[3026]: error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"

native.cgroupdriver=systemd ๊ฐ€ docker ๋ฐ๋ชฌ์— ์„ค์ •๋˜์–ด ์žˆ์Œ์„ ๋ถ„๋ช…ํžˆ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 ps -ef|grep -i docker
root      4365     1  3 14:30 ?        00:00:33 /usr/bin/docker-current daemon --authorization-plugin=rhel-push-plugin --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald --insecure-registry 172.30.0.0/16 --storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/vg.docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true

@ReSearchITEng ๋„์ปค๋ฅผ 1.12.6์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ๋ฒ„์ „์—์„œ๋Š” ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@sbezverk : ๋ฐฉ๊ธˆ 1.12.5๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ์ด์ œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ ํ”Œ๋ž€๋„ฌ์ด ์žˆ๋Š” k8s 1.6.1์ด ์™„์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ํ”Œ๋ ˆ์ด๋ถ์— ์žˆ์Šต๋‹ˆ๋‹ค.
Centos/RHEL์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Debian ๊ธฐ๋ฐ˜(์˜ˆ: Ubuntu)์— ๋Œ€ํ•œ ์ค€๋น„๋„ ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ์•ฝ๊ฐ„์˜ ๊ฐœ์„ ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/ReSearchITEng/kubeadm-playbook/blob/master/README.md

์ถ”์‹ : sjenning/kubeadm-playbook ๊ธฐ๋ฐ˜ ์ž‘์—… - @sjenning์— ๊ฐ์‚ฌ

@sjenning @ReSearchITEng
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ท€ํ•˜๊ฐ€ ๋งŒ๋“  ๊ฒƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ vagrant+ansible ํ”Œ๋ ˆ์ด๋ถ [0]์ด ์žˆ์ง€๋งŒ ๋„คํŠธ์›Œํ‚น ์„ค์ •์—์„œ ์‹คํŒจํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์˜ฅ์–‘๋ชฉ, ์ง์กฐ ๋ฐ ํ”Œ๋ž€๋„ฌ๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ธ ๊ฐ€์ง€ ๋ชจ๋‘ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์ฆ์ƒ์ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ).

๋‹ค์Œ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
[ vagrant@master ~]$ docker --version
Docker ๋ฒ„์ „ 1.12.6, ๋นŒ๋“œ 3a094bd/1.12.6
[ vagrant @master ~]$ kubelet --version
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค v1.6.1
[ vagrant @master ~]$ kubeadm ๋ฒ„์ „
kubeadm ๋ฒ„์ „: version.Info{์ฃผ์š”:"1", ๋ถ€:"6", GitVersion:"v1.6.1", GitCommit:"b0b7a323cc5a4a2019b2e9520c21c7830b7f708e", GitTreeState:-"clean"20, BuildDate:2 27Z", GoVersion:"go1.7.5", ์ปดํŒŒ์ผ๋Ÿฌ:"gc", ํ”Œ๋žซํผ:"linux/amd64"}

์˜ค๋ฅ˜:

[vagrant<strong i="19">@master</strong> ~]$ kubectl get all --all-namespaces
NAMESPACE     NAME                                           READY     STATUS             RESTARTS   AGE
kube-system   po/calico-etcd-gvrhd                           1/1       Running            0          47m
kube-system   po/calico-node-7jvs8                           1/2       CrashLoopBackOff   12         45m
kube-system   po/calico-node-7ljpn                           2/2       Running            0          47m
kube-system   po/calico-node-w15z3                           1/2       CrashLoopBackOff   12         45m
kube-system   po/calico-node-zq3zx                           1/2       CrashLoopBackOff   12         45m
kube-system   po/calico-policy-controller-1777954159-13x01   1/1       Running            0          47m
kube-system   po/etcd-master                                 1/1       Running            0          46m
kube-system   po/kube-apiserver-master                       1/1       Running            0          46m
kube-system   po/kube-controller-manager-master              1/1       Running            0          46m
kube-system   po/kube-dns-3913472980-16m01                   3/3       Running            0          47m
kube-system   po/kube-proxy-70bmf                            1/1       Running            0          45m
kube-system   po/kube-proxy-9642h                            1/1       Running            0          45m
kube-system   po/kube-proxy-jhtvm                            1/1       Running            0          45m
kube-system   po/kube-proxy-nb7q5                            1/1       Running            0          47m
kube-system   po/kube-scheduler-master                       1/1       Running            0          46m

NAMESPACE     NAME              CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
default       svc/kubernetes    10.96.0.1       <none>        443/TCP         47m
kube-system   svc/calico-etcd   10.96.232.136   <none>        6666/TCP        47m
kube-system   svc/kube-dns      10.96.0.10      <none>        53/UDP,53/TCP   47m

NAMESPACE     NAME                              DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kube-system   deploy/calico-policy-controller   1         1         1            1           47m
kube-system   deploy/kube-dns                   1         1         1            1           47m

NAMESPACE     NAME                                     DESIRED   CURRENT   READY     AGE
kube-system   rs/calico-policy-controller-1777954159   1         1         1         47m
kube-system   rs/kube-dns-3913472980                   1         1         1         47m
[vagrant<strong i="5">@master</strong> ~]$ kubectl -n kube-system describe po/calico-node-zq3zx
Name:       calico-node-zq3zx
Namespace:  kube-system
Node:       node1/192.168.10.101
Start Time: Wed, 26 Apr 2017 19:37:35 +0000
Labels:     k8s-app=calico-node
        pod-template-generation=1
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"DaemonSet","namespace":"kube-system","name":"calico-node","uid":"844cd287-2ab7-11e7-b184-5254008815b6","ap...
        scheduler.alpha.kubernetes.io/critical-pod=
Status:     Running
IP:     192.168.10.101
Controllers:    DaemonSet/calico-node
Containers:
  calico-node:
    Container ID:   docker://ca00b0a73a073a2d2e39cb0cc315b8366eaa20e2e479002dd16134b0d1e94f0b
    Image:      quay.io/calico/node:v1.1.3
    Image ID:       docker-pullable://quay.io/calico/node<strong i="6">@sha256</strong>:8e62eee18612a6ac7bcae90afaba0ed95265baba7bf3c0ab632b7b40ddfaf603
    Port:       
    State:      Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Wed, 26 Apr 2017 20:21:09 +0000
    Ready:      False
    Restart Count:  12
    Requests:
      cpu:  250m
    Environment:
      ETCD_ENDPOINTS:               <set to the key 'etcd_endpoints' of config map 'calico-config'> Optional: false
      CALICO_NETWORKING_BACKEND:        <set to the key 'calico_backend' of config map 'calico-config'> Optional: false
      CALICO_DISABLE_FILE_LOGGING:      true
      FELIX_DEFAULTENDPOINTTOHOSTACTION:    ACCEPT
      CALICO_IPV4POOL_CIDR:         192.168.0.0/16
      CALICO_IPV4POOL_IPIP:         always
      FELIX_IPV6SUPPORT:            false
      FELIX_LOGSEVERITYSCREEN:          info
      IP:                   
    Mounts:
      /lib/modules from lib-modules (ro)
      /var/run/calico from var-run-calico (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from calico-cni-plugin-token-5wnmg (ro)
  install-cni:
    Container ID:   docker://442c3adfa908f76654bb54070ef5ff638e4b68e0331ea0555ae877ce583ce858
    Image:      quay.io/calico/cni:v1.7.0
    Image ID:       docker-pullable://quay.io/calico/cni<strong i="7">@sha256</strong>:3612ffb0bff609d65311b45f4bae57fa80a05d25e1580ceb83ba4162e2ceef9f
    Port:       
    Command:
      /install-cni.sh
    State:      Running
      Started:      Wed, 26 Apr 2017 19:38:29 +0000
    Ready:      True
    Restart Count:  0
    Environment:
      ETCD_ENDPOINTS:       <set to the key 'etcd_endpoints' of config map 'calico-config'>     Optional: false
      CNI_NETWORK_CONFIG:   <set to the key 'cni_network_config' of config map 'calico-config'> Optional: false
    Mounts:
      /host/etc/cni/net.d from cni-net-dir (rw)
      /host/opt/cni/bin from cni-bin-dir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from calico-cni-plugin-token-5wnmg (ro)
Conditions:
  Type      Status
  Initialized   True 
  Ready     False 
  PodScheduled  True 
Volumes:
  lib-modules:
    Type:   HostPath (bare host directory volume)
    Path:   /lib/modules
  var-run-calico:
    Type:   HostPath (bare host directory volume)
    Path:   /var/run/calico
  cni-bin-dir:
    Type:   HostPath (bare host directory volume)
    Path:   /opt/cni/bin
  cni-net-dir:
    Type:   HostPath (bare host directory volume)
    Path:   /etc/cni/net.d
  calico-cni-plugin-token-5wnmg:
    Type:   Secret (a volume populated by a Secret)
    SecretName: calico-cni-plugin-token-5wnmg
    Optional:   false
QoS Class:  Burstable
Node-Selectors: <none>
Tolerations:    CriticalAddonsOnly=:Exists
        node-role.kubernetes.io/master=:NoSchedule
        node.alpha.kubernetes.io/notReady=:Exists:NoExecute for 300s
        node.alpha.kubernetes.io/unreachable=:Exists:NoExecute for 300s
Events:
  FirstSeen LastSeen    Count   From        SubObjectPath           Type        Reason      Message
  --------- --------    -----   ----        -------------           --------    ------      -------
  46m       46m     1   kubelet, node1  spec.containers{calico-node}    Normal      Pulling     pulling image "quay.io/calico/node:v1.1.3"
  45m       45m     1   kubelet, node1  spec.containers{calico-node}    Normal      Pulled      Successfully pulled image "quay.io/calico/node:v1.1.3"
  45m       45m     1   kubelet, node1  spec.containers{calico-node}    Normal      Created     Created container with id e035a82202b2c8490e879cb9647773158ff05def6c60b31a001e23e6d288a977
  45m       45m     1   kubelet, node1  spec.containers{calico-node}    Normal      Started     Started container with id e035a82202b2c8490e879cb9647773158ff05def6c60b31a001e23e6d288a977
  45m       45m     1   kubelet, node1  spec.containers{install-cni}    Normal      Pulling     pulling image "quay.io/calico/cni:v1.7.0"
  45m       45m     1   kubelet, node1  spec.containers{install-cni}    Normal      Pulled      Successfully pulled image "quay.io/calico/cni:v1.7.0"
  45m       45m     1   kubelet, node1  spec.containers{install-cni}    Normal      Created     Created container with id 442c3adfa908f76654bb54070ef5ff638e4b68e0331ea0555ae877ce583ce858
  45m       45m     1   kubelet, node1  spec.containers{install-cni}    Normal      Started     Started container with id 442c3adfa908f76654bb54070ef5ff638e4b68e0331ea0555ae877ce583ce858
  44m       44m     1   kubelet, node1  spec.containers{calico-node}    Normal      Created     Created container with id 163a9073070aa52ce7ee98c798ffe130a581e4fdbbc503540ed5d3b79651c549
  44m       44m     1   kubelet, node1  spec.containers{calico-node}    Normal      Started     Started container with id 163a9073070aa52ce7ee98c798ffe130a581e4fdbbc503540ed5d3b79651c549
  44m       44m     1   kubelet, node1                  Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 10s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  44m   44m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id 07453d944dfb9a4ebae57c83158e4b51f8870bcab94b4f706239f6c0b93bb62d
  44m   44m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id 07453d944dfb9a4ebae57c83158e4b51f8870bcab94b4f706239f6c0b93bb62d
  43m   43m 2   kubelet, node1                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 20s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  43m   43m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id 00f363848c16ff66743d54b87948133a87a97bfd32fbde2338622904d0990601
  43m   43m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id 00f363848c16ff66743d54b87948133a87a97bfd32fbde2338622904d0990601
  42m   42m 3   kubelet, node1                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 40s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  41m   41m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id a5aad1f1a57a361fafcaa2ee6aba244bf19925f56c5b46771cfd45e5e7fd884e
  41m   41m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id a5aad1f1a57a361fafcaa2ee6aba244bf19925f56c5b46771cfd45e5e7fd884e
  41m   40m 6   kubelet, node1                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 1m20s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  40m   40m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id 520ee97fe986fd726a0347cab6de5b2a8fba91f73df2d601e8b7625531ed2117
  40m   40m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id 520ee97fe986fd726a0347cab6de5b2a8fba91f73df2d601e8b7625531ed2117
  39m   36m 12  kubelet, node1                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 2m40s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  36m   36m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id 90be4da6fd2e8c111c3e2a91256d60656db80316c1497c29c4155b8f009f241f
  36m   36m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id 90be4da6fd2e8c111c3e2a91256d60656db80316c1497c29c4155b8f009f241f
  31m   31m 1   kubelet, node1  spec.containers{calico-node}    Normal  Created     Created container with id bf0d93f45d5ffa2d2c42487851f80048757da5c767491f673bfecfa37fe76e48
  31m   31m 1   kubelet, node1  spec.containers{calico-node}    Normal  Started     Started container with id bf0d93f45d5ffa2d2c42487851f80048757da5c767491f673bfecfa37fe76e48
  44m   3m  12  kubelet, node1  spec.containers{calico-node}    Normal  Pulled      Container image "quay.io/calico/node:v1.1.3" already present on machine
  25m   3m  5   kubelet, node1  spec.containers{calico-node}    Normal  Started     (events with common reason combined)
  25m   3m  5   kubelet, node1  spec.containers{calico-node}    Normal  Created     (events with common reason combined)
  36m   15s 149 kubelet, node1                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "calico-node" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=calico-node pod=calico-node-zq3zx_kube-system(c983e5d0-2ab7-11e7-b184-5254008815b6)"

  44m   15s 173 kubelet, node1  spec.containers{calico-node}    Warning BackOff Back-off restarting failed container

์ด๊ฒƒ์€ ํ•ต์‹ฌ ์ •๋ณด์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

[vagrant<strong i="6">@master</strong> ~]$ kubectl -n kube-system logs calico-node-zq3zx calico-node
Skipping datastore connection test
time="2017-04-26T20:20:39Z" level=info msg="NODENAME environment not specified - check HOSTNAME" 
time="2017-04-26T20:20:39Z" level=info msg="Loading config from environment" 
ERROR: Unable to access datastore to query node configuration
Terminating
time="2017-04-26T20:21:09Z" level=info msg="Unhandled error: client: etcd cluster is unavailable or misconfigured; error #0: client: endpoint http://10.96.232.136:6666 exceeded header timeout
" 
time="2017-04-26T20:21:09Z" level=info msg="Unable to query node configuration" Name=node1 error="client: etcd cluster is unavailable or misconfigured; error #0: client: endpoint http://10.96.232.136:6666 exceeded header timeout
" 
Calico node failed to start

์–ด๋–ค ๋„์›€์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ...

[0]- https://github.com/thiagodasilva/kubernetes-swift/tree/master/roles

๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
https://github.com/ReSearchITEng/kubeadm-playbook ์—์„œ ํ”Œ๋ ˆ์ด๋ถ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ์„ค์น˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ถ”์‹ : ๋‚ด ๋งˆ์ง€๋ง‰ ํ…Œ์ŠคํŠธ๋Š” 1.6.2 , kube* ๋ฐ ์ด๋ฏธ์ง€ ๋ชจ๋‘์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@kelseyhightower

@ReSearchITEng ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์ž‘๋™ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด vagrant+ansible ํŒŒ์ผ์€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/thiagodasilva/kubernetes-swift

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ cni ๊ตฌ์„ฑ์„ ์ž‘์—…์ž ๋…ธ๋“œ์˜ ํ•ด๋‹น ์œ„์น˜์— ๋ณต์‚ฌํ•˜๋ฉด OK๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

systemctl ์ƒํƒœ kubelet.service -l

โ— kubelet.service - kubelet: Kubernetes ๋…ธ๋“œ ์—์ด์ „ํŠธ
๋กœ๋“œ๋จ: ๋กœ๋“œ๋จ(/etc/systemd/system/kubelet.service; ํ™œ์„ฑํ™”๋จ, ๊ณต๊ธ‰์—…์ฒด ์‚ฌ์ „ ์„ค์ •: ๋น„ํ™œ์„ฑํ™”๋จ)
๋“œ๋กญ์ธ: /etc/systemd/system/kubelet.service.d
โ””โ”€10-kubeadm.conf
ํ™œ์„ฑ: ํ™œ์„ฑ(์‹คํ–‰ ์ค‘) ์ดํ›„ ํ™”์š”์ผ 2017-06-06 10:42:00 CST; 18๋ถ„ ์ „
๋ฌธ์„œ: http://kubernetes.io/docs/
๋ฉ”์ธ PID: 4414(kubelet)
๋ฉ”๋ชจ๋ฆฌ: 43.0M
C๊ทธ๋ฃน: /system.slice/kubelet.service
โ”œโ”€4414 /usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --network-plugin=cni - -cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --๊ถŒํ•œ ๋ถ€์—ฌ -ca-file=/etc/kubernetes/pki/ca.crt --cgroup-driver=cgroupfs
โ””โ”€4493 ์ €๋„ctl -k -f

Jun 06 10:59:46 contiv1.com kubelet[4414]: W0606 10:59:46.215827 4414 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Jun 06 10:59:46 contiv1.com kubelet[4414]: E0606 10:59:46.215972 4414 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ready message:docker : ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์Œ: cni ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€
Jun 06 10:59:51 contiv1.com kubelet[4414]: W0606 10:59:51.216843 4414 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Jun 06 10:59:51 contiv1.com kubelet[4414]: E0606 10:59:51.216942 4414 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ready message:docker : ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์Œ: cni ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€
Jun 06 10:59:56 contiv1.com kubelet[4414]: W0606 10:59:56.217923 4414 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Jun 06 10:59:56 contiv1.com kubelet[4414]: E0606 10:59:56.218113 4414 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ready message:docker : ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์Œ: cni ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€
Jun 06 11:00:01 contiv1.com kubelet[4414]: W0606 11:00:01.219251 4414 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Jun 06 11:00:01 contiv1.com kubelet[4414]: E0606 11:00:01.219382 4414 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ready message:docker : ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์Œ: cni ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€
Jun 06 11:00:06 contiv1.com kubelet[4414]: W0606 11:00:06.220396 4414 cni.go:157] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
Jun 06 11:00:06 contiv1.com kubelet[4414]: E0606 11:00:06.220575 4414 kubelet.go:2067] Container runtime network not ready: NetworkReady=false ready message:docker : ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค€๋น„๋˜์ง€ ์•Š์Œ: cni ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€

๋ชจ๋“  ๋…ธ๋“œ์˜ ์ƒํƒœ:
[ root@swarm net.d]# kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์ด๋ฆ„ ์ƒํƒœ ๋‚˜์ด ๋ฒ„์ „
contiv1.com ์ค€๋น„ 1์‹œ๊ฐ„ v1.6.4
contiv2.com ์ค€๋น„ 1์‹œ๊ฐ„ v1.6.4
swarm.com ์ค€๋น„ 1h v1.6.4

์ด๊ฒƒ์— ๋Œ€ํ•œ ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…? ์–ธ๊ธ‰ ๋œ ๋ชจ๋“  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•œ ํ›„์—๋„์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes ์„ค์ •์ด ์ฒ˜์Œ์ด์–ด์„œ ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ์— weave-kube๋ฅผ ์‚ฌ์šฉํ•˜๋Š” https://medium.com/@SystemMining/setup -kubenetes-cluster-on-ubuntu-16-04-with-kubeadm-336f4061d929๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. . ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
Ready False Mon, 12 Jun 2017 16:55:16 +0200 Mon, 12 Jun 2017 12:22:45 +0200 KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Ubuntu 16.04/CentOS 7.3(์ตœ์‹  ์—…๋ฐ์ดํŠธ ํฌํ•จ) 1.6.4์˜ ๊ณต์‹ k8s ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. https://kubernetes.io/docs/setup/independent/install-kubeadm/
Jun 13 09:57:21 tme-lnx1-centos kubelet: W0613 09:57:21.871413 10321 cni.go:157] Unable to update cni config: No networks found in /etc/cni/net.d
Jun 13 09:57:21 tme-lnx1-centos kubelet: E0613 09:57:21.871788 10321 kubelet.go:2067] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

@drajen ์•„๋‹ˆ์š”, ์ด๋Š” _v1.6.0_์—๋งŒ ์˜ํ–ฅ์„

kubectl apply -f https://git.io/weave-kube-1.6

Weave Net์„ ์„ค์น˜ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. Flannel, Calico, Canal ๋˜๋Š” ์›ํ•˜๋Š” ๊ฒฝ์šฐ CNI ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์น˜ํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@luxas ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜์ง€๋งŒ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์—ฐ๊ฒฐํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

@drajen @luxas ' ์š”์ ์€ ์ด๊ฒƒ์ด ์„ค์ •์— ๋Œ€ํ•ด ๋ฌป๋Š” ์ž˜๋ชป๋œ ์žฅ์†Œ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ์„ค์ • ๊ฐ€์ด๋“œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์—์„œ luxas๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์–ธ๊ธ‰ํ•œ ์ด์ „ ๊ฐ€์ด๋“œ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ˆ„๋ฝ๋œ ๋‹จ๊ณ„์ธ ์ด ์‹œ์ ์„ ์ง€๋‚˜๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ๋ถ„๋ช…ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์— ํ•˜๋‚˜์˜ ๊ณต๊ธ‰์ž ์ด๋ฆ„๋„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Slack์—์„œ @drajen ๊ณผ ์ฑ„ํŒ…ํ–ˆ๊ณ  ๋ฌธ์ œ๋Š” cgroup๊ณผ ๊ด€๋ จ์ด ์žˆ์—ˆ๊ณ  kubelet์€ ๋น„์ •์ƒ์ ์ด์—ˆ๊ณ  Pod๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์—ˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‚ด ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ค€ @luxas ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค: https://github.com/kubernetes/kubeadm/issues/302

์—ฌ์ „ํžˆ 1.7์˜ ์•„์น˜์—์„œ ์ด๊ฒƒ์„ ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋””์—์„œ๋‚˜ ๋น ๋ฅธ ์ˆ˜์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?


ํŽธ์ง‘ํ•˜๋‹ค:

kubectl apply -f https://git.io/weave-kube-1.6

ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. CNI ์‹คํ–‰์ด ํ•„์š”ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ ์–ด๋„ CentOS/RHEL์˜ ๊ฒฝ์šฐ /etc/systemd/system/kubelet.service.d/10-kubeadm.conf๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  --cgroup-driver="systemd" ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ์ปดํ“จํ„ฐ์— ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์™„์ „ํžˆ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
https://github.com/ReSearchITEng/kubeadm-playbook/blob/master/reset.yml
(์ด๊ฒƒ์€ ํŠนํžˆ ํ”Œ๋ž€๋„ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค)
๋ชจ๋“  ๊ฒƒ์„ ํ•˜๋‚˜๋กœ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ „์ฒด ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค: https://github.com/ReSearchITEng/kubeadm-playbook/

๋‚˜๋Š”์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๊ณ  ์œ„์—์„œ ์ฝ์€ ๊ฒƒ์€ ์ „ํ˜€ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ถ„ํˆฌ์—์„œ ์ตœ์‹  CoreOS๋กœ ์ „ํ™˜ํ•˜๊ณ , ์ด์ „ ๋ฒ„์ „์˜ k8s๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ VM์— ์„ค์น˜๋œ ๋ชจ๋“  ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๋งค์šฐ ๋ถ„์„์ ์ธ ์„ค์ •์œผ๋กœ ํ›จ์”ฌ ๋” ์ œ์–ด๋œ ์„ค์ •์œผ๋กœ ๋‹ค์‹œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” kubeadm์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  vagrant์™€ asible์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

(์™œ? ๋‚˜๋Š” kubeadm์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ „ํ˜€ ๋ชฐ๋ž๊ณ , ์ตœ์†Œํ•œ ๋‚ด๊ฐ€ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ณ  ์ง€๋‚˜์น˜๊ฒŒ ์—ด์„ฑ์ ์ธ ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋งŽ์€ ์ž๋™ํ™” ์ œ์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์€ ๋งํ•  ๊ฒƒ๋„ ์—†๊ณ , ๋˜ํ•œ do-not-apply-alpha-software-in-production์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.)

์ด์ „(1.4.3) ๋ฒ„์ „์˜ k8์—์„œ ์ด ์„ค์ •์„ ์‹œ๋„ํ–ˆ์„ ๋•Œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์™„๋ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ 1.71๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ, kubeadm์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ์™€ ์„ธ ๋ช…์˜ ์ž ์žฌ์  ์ž‘์—…์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ์—์„œ ์˜ฅ์–‘๋ชฉ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ NotReady๋กœ ๋ณด๊ณ ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ weave(๋˜๋Š” ๋‹ค๋ฅธ ๋ฌด์—‡์ด๋“ )๋ฅผ ์ ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์€ ์น˜ํ‚จ/๋‹ฌ๊ฑ€์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค... ๋„คํŠธ์›Œํ‚น์ด ์‹คํŒจํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํฌ๋“œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์—†์ง€๋งŒ ํฌ๋“œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด /etc/cni/net.d์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํ‚น์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ, ์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ช‡ ์‹œ๊ฐ„ ์ „์— k8s 1.4.3์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งค์šฐ ์‹ค๋ง!

๋ˆ„๊ตฌ๋“ ์ง€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์ฐฐ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


๊ฐ์ฃผ:

๋งˆ์Šคํ„ฐ์—์„œ: journalctl -r -u kubelet์ด ๋‚˜์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Jul 24 00:48:16 rogue-kube-master-01 kubelet-wrapper[7647]: E0724 00:48:16.592274 7647 kubelet.go:2136] ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์Œ: NetworkReady=false ๋ฉ”์‹œ์ง€ ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์Œ :NetworkPlugin: Ready message: NetworkPlugin ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—†์Šต๋‹ˆ๋‹ค
Jul 24 00:48:16 rogue-kube-master-01 kubelet-wrapper[7647]: W0724 00:48:16.590588 7647 cni.go:189] cni ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Œ: /etc/cni/net์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ .NS

๋„์ปค ์ถ”์‹  | ๊ทธ๋ ™ ์˜ฅ์–‘๋ชฉ

(๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์ž˜๋ฆผ)
CDE ... quay.io/calico/์˜ ์„ ๋‘ ์ฃผ์ž - ์„ ๊ฑฐ์ธ @ SHA256 ... "/run.sh --election = C"8์‹œ๊ฐ„๊นŒ์ง€ ์ „ 8์‹œ๊ฐ„
f72... calico/ kube-policy-controller@sha256 :... "/dist/controller" 8์‹œ๊ฐ„ ์ „ Up 8์‹œ๊ฐ„
c47... gcr.io/google_containers/pause-amd64:3.0 "/pause" 8์‹œ๊ฐ„ ์ „ ์ตœ๋Œ€ 8์‹œ๊ฐ„

/etc/cni/net.d๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด kubectl ์ƒ์ž์—์„œ:
kubectl ๊ฐ€์ ธ์˜ค๊ธฐ ๋…ธ๋“œ
10.0.0.111 ์ค€๋น„ ์•ˆ ๋จ, ์˜ˆ์•ฝ ๋น„ํ™œ์„ฑํ™”๋จ 8h v1.7.1+coreos.0
10.0.0.121 ์ค€๋น„ ์•ˆ ๋จ 8h v1.7.1+coreos.0
10.0.0.122 ์ค€๋น„ ์•ˆ ๋จ 8h v1.7.1+coreos.0
10.0.0.123 ์ค€๋น„ ์•ˆ ๋จ 8h v1.7.1+coreos.0


kubectl ์ ์šฉ -f https://git.io/weave-kube-1.6

์•„๋ฌด๊ฒƒ๋„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์‹ค์ œ๋กœ๋Š” ๋” ๋งŽ์€ ๋ฌธ์ œ๋งŒ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

bill@rogue :~/vagrant_rogue/rogue-cluster$ kubectl ์ ์šฉ -f https://git.io/weave-kube-1.6
serviceaccount "wea-net" ์ƒ์„ฑ๋จ
clusterrolebinding "weave-net" ์ƒ์„ฑ๋จ
๋ฐ๋ชฌ์…‹ "weave-net" ์ƒ์„ฑ
์„œ๋ฒ„ ์˜ค๋ฅ˜(๊ธˆ์ง€๋จ): clusterroles.rbac.authorization.k8s.io "weave-net"์ด ๊ธˆ์ง€๋จ: ์ถ”๊ฐ€ ๊ถŒํ•œ ๋ถ€์—ฌ ์‹œ๋„: [PolicyRule{Resources:["pods"], APIGroups:[""], ๋™์‚ฌ: ["get"]} PolicyRule{Resources:["pods"], APIGroups:[""], Verbs:["list"]} PolicyRule{Resources:["pods"], APIGroups:[""], Verbs: ["watch"]} PolicyRule{Resources:["namespaces"], APIGroups:[""], Verbs:["get"]} PolicyRule{Resources:["namespaces"], APIGroups:[""], Verbs: ["list"]} PolicyRule{Resources:["namespaces"], APIGroups:[""], Verbs:["watch"]} PolicyRule{Resources:["nodes"], APIGroups:[""], Verbs: ["get"]} PolicyRule{Resources:["nodes"], APIGroups:[""], Verbs:["list"]} PolicyRule{Resources:["nodes"], APIGroups:[""], Verbs: ["watch"]} PolicyRule{Resources:["networkpolicies"], APIGroups:["extensions"], Verbs:["get"]} PolicyRule{Resources:["networkpolicies"], APIGroups:["extensions"], ๋™์‚ฌ:["list"]} PolicyRule{Resources:["networkpolicies"], APIGroups:["extensions"], ๋™์‚ฌ:["watch"]}] user=&{kube-admin [์‹œ์Šคํ…œ:a ์ธ์ฆ๋จ] ์ง€๋„[]} ownerrules=[] ๊ทœ์น™ResolutionErrors=[]

bill@rogue :~/vagrant_rogue/rogue-cluster$ kubectl ํฌ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ --namespace=kube-system
์ด๋ฆ„ ์ค€๋น„ ์ƒํƒœ ๋‹ค์‹œ ์‹œ์ž‘ ์—ฐ๋ น
kube-apiserver-10.0.0.111 1/1 1 8์‹œ๊ฐ„ ์‹คํ–‰
kube-controller-manager-10.0.0.111 1/1 1 8์‹œ๊ฐ„ ์‹คํ–‰
kube-dns-v20-fcl01 0/3 ๋ณด๋ฅ˜ ์ค‘ 0 8h
kube-proxy-10.0.0.111 1/1 ์‹คํ–‰ 1 8์‹œ๊ฐ„
kube-proxy-10.0.0.121 1/1 ์‹คํ–‰ 1 8์‹œ๊ฐ„
kube-proxy-10.0.0.122 1/1 ์‹คํ–‰ 1 8์‹œ๊ฐ„
kube-proxy-10.0.0.123 1/1 ์‹คํ–‰ 1 8์‹œ๊ฐ„
kube-scheduler-10.0.0.111 1/1 ์‹คํ–‰ 1 8์‹œ๊ฐ„
kubernetes-dashboard-v1.4.1-29zzk 0/1 ๋ณด๋ฅ˜ ์ค‘ 0 8h
weave-net-2lplj 1/2 CrashLoopBackOff 3 3m
weave-net-2nbgd 1/2 CrashLoopBackOff 3 3m
weave-net-fdr1v 2/2 ์‹คํ–‰ 0 3m
weave-net-jzv50 1/2 CrashLoopBackOff 3 3m

weave ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์‹ฌ์ธต ์กฐ์‚ฌ๋Š” (a) apiserver์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ (b) "์‹คํ–‰ ์ค‘"์œผ๋กœ ํ‘œ์‹œ๋œ ์˜ค๋ฅ˜๊ฐ€ ์ž์ฒด์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ถˆํ‰ํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

@billmilligan ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ๋ช‡ ๋ถ„ ์•ˆ์— DNS๊ฐ€ ์ž‘๋™์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค.

@Paxa @billmilligan ๋„์›€์„ ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋Œ€์‹ , ์š”์ฒญ๋œ ์ถฉ๋ถ„ํ•œ ์„ธ๋ถ€ ์ •๋ณด์™€ ํ•จ๊ป˜ kubeadm ์ €์žฅ์†Œ์—์„œ ์ƒˆ ์ €์žฅ์†Œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

@luxas ๊ฐ์‚ฌ kubeadm์™€ ํ•จ๊ป˜ ์ ์ ๋กœ kubeadm์—†์ด K8S์„ ์„ค์ •ํ•˜๋Š” ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—,์ด ๋ฌธ์ œ์˜ ์›์ธ์œผ๋กœ kubeadm์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋งˆ๋„ ์ด ๋ฌธ์ œ์˜ ์ด๋ฆ„์„ ์ ์ ˆํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@billmilligan ์ •์ค‘ํ•˜๊ฒŒ, ๋ฌธ์ œ๋Š” kubeadm์— ๊ด€ํ•œ ๊ฒƒ์ด๊ณ  kubeadm ์—†์ด ์žฌ์ƒ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํŒŒ์ผ์„ ์ œ์ถœํ•˜๋Š” ์žฅ์†Œ๊ฐ€ ์ž˜๋ชป๋œ ๊ฑด๊ฐ€์š”? ์ด ์Šค๋ ˆ๋“œ๊ฐ€ kubeadm ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด์Šˆ๋กœ ์ฃผ๋ชฉ์„ ๋ฐ›์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ด ์Šค๋ ˆ๋“œ์˜ ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋ฌด์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” kubeadm์„ ์‚ฌ์šฉํ•˜๊ณ  ์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•˜๊ณ  1.6.1๋ถ€ํ„ฐ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ดํ›„๋กœ k8์˜ ๋ถ„์‹ค๋ฌผ์„ ๋ฐฐ์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์—๊ฒŒ ๋ณ„๋„์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@kfox1111 ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•  ๊ฒƒ์ด์ง€๋งŒ, ์—ฌ์ „ํžˆ 1.7.x์˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ ๊ทธ๊ฒƒ์„ ์ง๋ฉดํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜๋Š” ์—ฌ์ „ํžˆ ๋‚˜๋ฅผ ์˜์•„ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

TL;DR;

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€

runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

๋ฐ˜๋“œ์‹œ ๋‚˜์œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค .

ํ•ด๋‹น ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ํƒ€์‚ฌ CNI ์‚ฌ์–‘ ๊ตฌํ˜„ ๊ณต๊ธ‰์ž ์— ํ”Œ๋Ÿฌ๊ทธ์ธํ•ด์•ผ ํ•จ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

CNI๋ž€ ๋ฌด์—‡์ด๋ฉฐ Kubernetes์™€ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๊นŒ?

CNI๋Š” Container Network Interface์˜ ์•ฝ์ž์ด๋ฉฐ kubelet์ด ํด๋Ÿฌ์Šคํ„ฐ์šฉ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ•˜๋Š” ์‚ฌ์–‘ ์„ ์ด ํŽ˜์ด์ง€ ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Kubernetes ๋Š” CNI ์‚ฌ์–‘์„ ์ถฉ์กฑ ํ•˜๋Š” ํ•œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

kubelet ๋Š” ์ƒˆ Pod๋ฅผ ๋„คํŠธ์›Œํฌ ์—
kubelet ๋Š” CNI ๋„คํŠธ์›Œํฌ๊ฐ€ ์‚ฌ์šฉํ•  ๊ตฌ์„ฑ ๋””๋ ‰ํ† ๋ฆฌ(์ข…์ข… /etc/cni/net.d )๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.
์ƒˆ ํŒŒ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด kubelet์€ ๊ตฌ์„ฑ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ์ฝ๊ณ  exec ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ง€์ •๋œ CNI ๋ฐ”์ด๋„ˆ๋ฆฌ(๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” /opt/cni/bin ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ)๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋  ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ์ œ3์ž(์˜ˆ: Weave, Flannel, Calico ๋“ฑ)์— ์†ํ•˜๋ฉฐ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

kubeadm ๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์Šคํ•€์—…ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋„๊ตฌ ์ด๋ฉฐ ์›ํ•˜๋Š” ๋„คํŠธ์›Œํ‚น ์†”๋ฃจ์…˜์„ ์•Œ์ง€ ๋ชปํ•˜๋ฉฐ ํŠน์ • ์‚ฌ์šฉ์ž๋ฅผ ์„ ํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. kubeadm init ๊ฐ€ ์‹คํ–‰๋œ ํ›„์— ๋Š” ์ด๋Ÿฌํ•œ CNI ๋ฐ”์ด๋„ˆ๋ฆฌ๋‚˜ ๊ตฌ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค . ์ด๊ฒƒ์€ kubeadm init ๊ฐ€ ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, kubeadm init ๋‹ค์Œ์— kubelet ๋กœ๊ทธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

์ด๊ฒƒ์€ ๋งค์šฐ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์•˜๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ํŠน์ • ๋„คํŠธ์›Œํฌ ์ œ๊ณต์ž๋ฅผ ์„ ํ˜ธํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์˜ค๋ฅ˜๋ฅผ ์–ด๋–ป๊ฒŒ "์ˆ˜์ •"ํ•ฉ๋‹ˆ๊นŒ?
kubeadm ์‹œ์ž‘ํ•˜๊ธฐ ๊ฐ€์ด๋“œ์˜ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” "Pod ๋„คํŠธ์›Œํฌ ์„ค์น˜"์ž…๋‹ˆ๋‹ค.
์ฆ‰, ์„ ํ˜ธํ•˜๋Š” CNI ๋„คํŠธ์›Œํฌ ๊ณต๊ธ‰์ž์˜ kubectl apply ๋งค๋‹ˆํŽ˜์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

DaemonSet์€ /opt/cni/bin ํ•„์š”ํ•œ CNI ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ /etc/cni/net.d/ ํ•„์š”ํ•œ ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋…ธ๋“œ ๊ฐ„์— ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ์‹ค์ œ ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: iptables ๊ทœ์น™ ์ž‘์„ฑ).

CNI ๊ณต๊ธ‰์ž๊ฐ€ ์„ค์น˜๋œ ํ›„ kubelet์€ "์˜ค ๋„คํŠธ์›Œํฌ ์„ค์ • ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํƒ€์‚ฌ ๊ตฌ์„ฑ ๋ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ๊ฐ€ ์ œ3์ž ์ œ๊ณต์ž์— ์˜ํ•ด ์„ค์ •๋˜๋ฉด(kubelet์ด ์ด๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ) ๋…ธ๋“œ๋Š” ์Šค์Šค๋กœ๋ฅผ Ready ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” kubeadm๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

v1.6 ์ฃผ๊ธฐ ํ›„๋ฐ˜์— kubelet์ด Ready/NotReady ์ƒํƒœ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•œ PR์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ kubelet ๋Š” CNI ๋„คํŠธ์›Œํฌ ์„ค์ • ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ Ready ์ƒํƒœ๋ฅผ ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ผ์ข…์˜ ์ž˜๋ชป๋œ ๊ฒƒ์ด๋ฉฐ CNI ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ์กด์ค‘ํ•˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, NotReady CNI๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋•Œ์™€ Ready ์ดˆ๊ธฐํ™” ํ•  ๋•Œ.

v1.6.0์˜ kubeadm์€ ๋‚˜๋จธ์ง€ kubeadm init ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ Ready ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์ž˜๋ชป ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค. CNI๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜์„ ๋•Œ kubelet ๋™์ž‘์ด NotReady ๋ฅผ ๋ณด๊ณ ํ•˜๋„๋ก ๋ณ€๊ฒฝ๋˜๋ฉด kubeadm์€ ๋…ธ๋“œ๊ฐ€ Ready ๋ฅผ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์˜์›ํžˆ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

KUBEADM ์ธก์—์„œ ์ž˜๋ชป๋œ ๊ฐœ๋…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์€ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ v1.6.1์—์„œ ํšŒ๊ท€๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ  v1.6.0 ์ดํ›„ ๋ฉฐ์น  ํ›„์— ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ด ๊ฒฐํ•จ์ด ํฌํ•จ๋œ v1.6.0์ด ์ถœ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ์ด์œ ์— ๋Œ€ํ•ด์„œ๋Š” ํšŒ๊ณ ์ „ ์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

๊ทธ๋ ‡๋‹ค๋ฉด kubeadm v1.6.1+์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ธ€์Ž„์š”, ๋‹น์‹ ์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” kubeadm init ๊ฐ€ ๊ต์ฐฉ ์ƒํƒœ์— ์žˆ๋Š” ๊ฒฝ์šฐ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
v1.6.1+์—์„œ ์ด๋ฅผ ๋ณธ ์‚ฌ์šฉ์ž๋‚˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๋น„๋ก ๋ณผ ๊ฒƒ์€

runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

v1.6 ์ด์ƒ์˜ ๋ชจ๋“  ๋ฒ„์ „ ์—์„œ kubeadm init ๋’ค์— ์žˆ์ง€๋งŒ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  kubeadm์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ƒˆ๋กœ์šด ์ด์Šˆ๋ฅผ ์—ด์–ด์ฃผ์„ธ์š”.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ์ด์ƒ ์–ธ๊ธ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋Œ€์‹  ์ƒˆ ๊ฒƒ์„ ์—ฌ์‹ญ์‹œ์˜ค.

@billmilligan ๋”ฐ๋ผ์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด CNI ๊ณต๊ธ‰์ž์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ kubectl apply ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์œ„์—์„œ ๋งํ•œ ๊ฒƒ์„ ๊ฑฐ์˜ ์š”์•ฝํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋” ๋ช…ํ™•ํ•˜๊ณ  ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์„ ๋ฐ”๋ž๋‹ˆ๋‹ค.
CNI ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด StackOverflow, ๋ฌธ์ œ ๋˜๋Š” Slack๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜ ์ง€์› ์ฑ„๋„์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

(๋งˆ์ง€๋ง‰์œผ๋กœ ๋„ˆ๋ฌด ๊ตต๊ฒŒ ์จ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์‚ฌ๋žŒ๋“ค์˜ ๊ด€์‹ฌ์„ ๋Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„์š”ํ•˜๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.)

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