https://github.com/kubernetes/kubeadm/issues/212์ ์ด๊ธฐ ๋ณด๊ณ ์
๋๋ ์ด๊ฒ์ด https://github.com/kubernetes/kubernetes/pull/43474 ์ ๋์ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง(๋จ์ผ ๋ง์คํฐ์์ ๋ชจ๋):
๋ ธ๋์ ์กฐ๊ฑด ๋ชฉ๋ก์์:
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๋ฅผ ๋ถํธ์คํธ๋ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
/ ์ฐธ์กฐ @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 / ์๋ช ๋คํธ์ํฌ ๋ฒ๊ทธ
์ฐธ์กฐ: https://github.com/kubernetes/kubernetes/issues/43397#issuecomment -289978351
@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 ์ฌ์ค์
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
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 ์ฌ์์
์ ๊ฒฝ์ฐ์๋ 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์ ๊ฐ์ ์๊ฒฉ ๋ฐํ์)์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฐ์ต๋๋ค.
๊ณ ๋ คํด์ผ ํ ์ธ ๊ฐ์ง ๊ฐ๋ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
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์ ํ์ฌ ์ํ์ ์ฌ๊ธฐ์ ์ด๋ป๊ฒ ์ ์ฉ๋ ์ ์๋์ง ์ค๋ช ํ๊ณ ์ถ์์ต๋๋ค.
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์ ๊ฐ์ ์๊ฒฉ ๋ฐํ์).๊ณ ๋ คํด์ผ ํ ์ธ ๊ฐ์ง ๊ฐ๋ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
- Cloud Routes - ํด๋ผ์ฐ๋ ์ธํ๋ผ ๋ฐ ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ์ธ ๊ฒฝ์ฐ
ํด๋ผ์ฐ๋ ๊ฒฝ๋ก๊ฐ ํ์ํ ๋ค์ ํด๋ผ์ฐ๋ ๊ฒฝ๋ก๊ฐ ๋ถ์กฑํฉ๋๋ค(์:
NodeNetworkUnavailable=true) ์์ฝ์ ์ฐจ๋จํด์ผ ํจ hostNetwork=false
๊ผฌํฌ๋ฆฌ- ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ - ํ๋ฌ๊ทธ์ธ์ด ์์ง ์ค๋น๋์ง ์์ ๊ฒฝ์ฐ
hostNetwork=false ํฌ๋์ ๋ธ๋ก ์ค์ผ์ค๋ง- 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๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
@srinat999 https://github.com/kubernetes/kubernetes/issues/43815#issuecomment -290616036
@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์ ํจ์น ๋ฒ์ ์ ์ ์๊ฒ ์ ํฉํ์ง ์์ต๋๋ค ...)
@obnoxxx ๋ฆด๋ฆฌ์ค 1.6 ๋ถ๊ธฐ์ ํ์ ์๋ํ์ญ์์ค.
$ gsutil ls gs://kubernetes-release-dev/ci/v1.6.1-beta.0.12+018a96913f57f9
@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
@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์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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 ์ด ์ค๋ ๋๋ฅผ ์๊ณ ์์ต๋๊น? ์์ผ๋ก ๋ช ๊ฐ์ง ์ค์ํ ์์ฌ์ ์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์ ํ ์ฌ๋๋ค์ด ํ๋ก์ฐํ๋ ๊ฒ์ด ์ข์ ์ ์์ต๋๋ค.
๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์ :
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 ํํธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ง๊ธ์ด ๋ซ๋ค...
์ด๊ฒ์ ๊ถ๊ธํ๋ค:
kubectl -s localhost:6443
์๋ํ์ง๋ง ์ถฉ๋ถํ์ง ์์์ต๋๋ค.์ด์จ๋ ์ด์ ๊ณ์ํ ์ ์์ต๋๋ค. ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค
v1.6.1์ด ์ถ์๋๋ ์ค์ ๋๋ค. EOD๋ก ์งํ๋ฉ๋๋ค.
๋ช ๊ฐ์ง ์ฐธ๊ณ ์ฌํญ:
์ด๊ฒ๋ค์ ๋ชจ๋ 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.1kubectl์ ๋ ธ๋ 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๊ฐ๋์์ต๋๋ค.
โ 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์ ๋ค๋ฅธ ๊ณณ์์ ๊ทธ๊ฒ์ ์ง๋ฉดํ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ฌ๋๋ค์ ์๋ ์ฌ์ ํ ๋๋ฅผ ์์ํ๊ฒ ๋ง๋ ๋ค.
์ค๋ฅ ๋ฉ์์ง
runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
๋ฐ๋์ ๋์ ๊ฒ์ ์๋๋๋ค .
ํด๋น ์ค๋ฅ ๋ฉ์์ง๋ ํ์ฌ CNI ์ฌ์ ๊ตฌํ ๊ณต๊ธ์ ์ ํ๋ฌ๊ทธ์ธํด์ผ ํจ์ ์๋ ค์ค๋๋ค.
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
ํฉ๋๋ค.
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 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
๋ค์ ์์ง๋ง ๋์์ง ์์ต๋๋ค.
@billmilligan ๋ฐ๋ผ์ ํด๋ฌ์คํฐ๋ฅผ ์์ํ๊ณ ์คํํ๋ ค๋ฉด CNI ๊ณต๊ธ์์ ๋งค๋ํ์คํธ kubectl apply
๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
๋๋ ์์์ ๋งํ ๊ฒ์ ๊ฑฐ์ ์์ฝํ๊ณ ์์ง๋ง ๋ ๋ช
ํํ๊ณ ์์ธํ ๋ฐฉ๋ฒ์ ๋ฐ๋๋๋ค.
CNI ์๋ ๋ฐฉ์์ ๋ํด ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด StackOverflow, ๋ฌธ์ ๋๋ Slack๊ณผ ๊ฐ์ ์ผ๋ฐ ์ง์ ์ฑ๋์ ์ฐธ์กฐํ์ญ์์ค.
(๋ง์ง๋ง์ผ๋ก ๋๋ฌด ๊ตต๊ฒ ์จ์ ์ฃ์กํฉ๋๋ค๋ง, ์ฌ๋๋ค์ ๊ด์ฌ์ ๋๊ธฐ ์ํด์๋ ํ์ํ๋ค๊ณ ๋๊ผ์ต๋๋ค.)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Ubuntu 16.04์ kubeadm์ ์ฌ์ฉํ์ฌ kubernetes๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค. ์ด์ ๋ํ ๋น ๋ฅธ ์์ ์ด ์์ต๋๊น?