๊ธฐ๋ฅ ์์ฒญ
kubeadm ์ ์ฌ์ฉํ์ฌ K8S ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ๋ด๋ถ IP ์ฃผ์๊ฐ ์ฌ์ฉ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ kubelet์ --node-ip ์ต์ ์ ์ค์ ํ๋ ์ต์ ์ ์ ๊ณตํ๋ ๊ฒ์ด (ํด๋ผ์ฐ๋ ๊ฐ ๋ฐฐํฌ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ) ์ ๋ง ์ ์ฉํฉ๋๋ค (https://kubernetes.io/docs/admin/kubelet/ ์ฐธ์กฐ).
๋ฐ๋ผ์ <public_master_ip>
๋
ธ๋์์ kubeadm init ํธ์ถ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kubeadm init --token=<token> --api-advertise-addresses=<public_master_ip> --node-ip=<public_master_ip>
<public_worker_ip>
๊ฐ์๋ ๋
ธ๋์ kubeadm ์กฐ์ธ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kubeadm join --token=<token> --node-ip=<public_worker_ip>
์ด๋ฅผ ํตํด kubeadm์ ํฌ๋ก์ค ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ๋ฐฐํฌ์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋ชจ๋ฅด๋ ๋ค๋ฅธ ์ต์ ์ด ์์ผ๋ฉด ๋ฃ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด ๊ฒ์์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค (kubeadm ์ฌ์ฉ).
์ด ๋๋ฌธ์ ํ์ฌ DigitalOcean์์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ค์ ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก kubelet์ ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด์ IP๋ฅผ ๋ฐ์ธ๋ฉํ๊ณ ๋ ธ์ถ / ๋ธ๋ก๋ ์บ์คํธํฉ๋๋ค.์ด ๊ฒฝ์ฐ์๋ ์ธํฐ๋ท ํธ๋ํฝ์ ์ง๋ฉดํ๋ ๊ณต์ฉ IP์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ Weave์ ๊ฐ์ ํฌ๋ ๋คํธ์ํน ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ค์ ํ๋ ์์ ์ ๋๋ฌํ๋ฉด ๋ง์คํฐ์ ๊ด๊ณ IP๊ฐ ๋ด๋ถ ๋คํธ์ํฌ์ IP ์ฃผ์์ด์ง๋ง ์์ ์ ๋ ธ๋๊ฐ ๊ณต์ฉ ์ฃผ์๋ฅผ ๋ ธ์ถํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ์ง์ฅ์ด ๋์จํด์ง๋๋ค.
์ด ์๋ฃจ์
์ ์๋์ ๋จ์ด ์ฅ์น ํ์ผ์ ์
๋ฐ์ดํธํ๋ ๊ฒ์
๋๋ค /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
์ถ๊ฐํ๊ธฐ --node-ip=<private_worker_ip>
์๋ํ๋๋ก, ๋ค์๋ก๋ ๋จ์ ๋ค์ ์์ kubelet์.
kubeadm
์ด ๊ธฐ๋ณธ์ ์ผ๋ก @nkratzke ์ ๊ฐ์ ์ต์
์ ์ ๋ฌํ์ฌ์ด ์์
์ ์ํ ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค!
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
ํ์ผ์ ์ค์ ์ --node-ip=<private-worker-ip>
์ต์
์ ์ถ๊ฐํด๋ ์์ ์ค๋ช
ํ ์ค์ ์์์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ ํ์ธํ๊ณ ์ถ์์ต๋๋ค. ๋
ธ๋๊ฐ์ด ์ธํฐํ์ด์ค์์ ์์ ๋๊ธฐํ๋๋ผ๋ Kubernetes๋ ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ณ์ ์ฌ์ฉํ์ฌ ๋
ธ๋๊ฐ์ ํต์ ํฉ๋๋ค.์ด ๊ฒฝ์ฐ์๋ ๊ณต์ฉ IP ์ฃผ์์
๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋๋ ๋น์ ์ ๋ฐฉ๋ฒ์ ์๋ํ์ง๋ง ๋์๊ฒ๋ ํจ๊ณผ๊ฐ ์์์ต๋๋ค. ์๋ํ๊ฒ ๋ง๋ค์์ต๋๊น?
@agsergi Private Networking ์ต์ ์ด ํ์ฑํ ๋ DigitalOcean์์ k8s ํด๋ฌ์คํฐ๋ฅผ ์ค์ ํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ฉด ๋์๊ฒ ๋์์ด๋์์ง๋ง ๊ฐ์ ๋ณดํธ์ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
์ปดํจํฐ์ ๋ ๊ฐ ์ด์์ NIC๊ฐ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด์ด ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๋ฌ๋ถ, ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
๋ด VM์ ๋ ๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค. ํ๋๋ NAT ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ hostonly-adaptor ์ฉ์
๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก kubeadmin์ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค IP (๋ด ๊ฒฝ์ฐ NAT)๋ฅผ ์ฌ์ฉํ๊ณ ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
$ sudo kubeadm init --apiserver-advertise-address =
@luxas ์ด ํ๊ทธ๊ฐ ์ข ๋ฅ / ์ง์์ผ๋ก ์ง์ ๋๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ์์ค๊ฐ ์๋ ๋ ธ๋ IP์ ํจ๊ป kubeadm์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@evocage ์๋ --apiserver-advertise-address =๊ฐ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
Scaleway์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ง์คํฐ๋ฅผ ์ด๊ธฐํ ํ ๋ --apiserver-advertise-address=<private_net_IP>
ํ์ง๋ง ๋
ธ๋ ( kubeadm join --toke=<token> <master_private_IP>:6443
)๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ ๋ kube-proxy ๋ฐ weave-net ํฌ๋๊ฐ ์์๋์ง ์์ต๋๋ค (์ค๋ฅ ๋๊ธฐํ ํฌ๋).
๊ทธ๋ฌ๋ ๊ณต๊ฐ IP๋ฅผ ๋ด ๋ ธ๋์ ์ฐ๊ฒฐํ๊ณ ์ฌ๋ถํ ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์งํ๋ฉ๋๋ค.
์ด๋ค ์๊ฐ?
์ผ๋ถ ํฌํธ๋ง VM์ผ๋ก ์ ๋ฌํ ์์๋ ๋จ์ผ IP๋ก VM ํธ์คํธ์์ kubernetes๋ฅผ ์ค์ ํ๋ ค๊ณ ํ ๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ํ๋๋กํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
+1ํ๊ณ ์ถ์์ต๋๋ค. ๋๋ ๊ทธ๋ค ๋ชจ๋์ ๊ฐ์ธ IP๋ฅผ ๊ฐ์ง Digitalocean VM ์ธํธ์์ ์คํํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ๊ณต์ฉ ์ฃผ์๋ ์ด๋ป๊ฒ ๋ ํด๋ฌ์คํฐ๋ก ๊ณ์ ์๋ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ง์คํฐ์์ ์คํํ์ฌ ๊ฐ์ธ IP๋ฅผ ์ป์ ์ ์์๋ค.
kubeadm init --apiserver-advertise-address=<private-master-ip> init
--node-ip=<private-node-ip>
์ /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
, ๋ฐ๋ชฌ์ ๋ค์๋ก๋ํ๊ณ , kubelet์ ๋ค์ ์์ํ ๋ค์ ์คํ :
kubeadm join --token <token> <private-master-ip>:6443 --discovery-token-ca-cert-hash sha256:<hash>
@mongrelion master <-> node ๊ฐ์ ์ด๋ค ์ ํ์ ํต์ ์ด ์ฌ์ ํ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๋๋ ์ด๊ฒ์ ๋ณต์ ํ ์ ์์๊ธฐ ๋๋ฌธ์ kubernetes๊ฐ ์๊ธฐ์น ์๊ฒ ์๋ํ๋์ง ์๊ณ ์ถ์ต๋๋ค.
ํด๋์ด! ๋ง์คํฐ๊ฐ ์ฌ๋ฐ๋ฅธ ์์น์์ ์์๋๋๋กํ๋ --apiserver-advertise-address
์ kubelet ๊ตฌ์ฑ์ --node-ip
์กฐํฉ์ด ๋ง๋ฒ์ ์กฐํฉ์ด์์ต๋๋ค.
์ด ์์ฒญ์ ๋ฐ๋ผ --node-ip
์ต์
์ kubeadm
์ง์ ๋๋ฉด ๊ตฌ์ฑ ํ์ผ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ด๊ธฐํ๋๋ฏ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋๋ฆฌ๋ ค๋ ์ ์ ๊ฐ์ ๋จ์์๋ ์ด๋ณด์์๊ฒ ๋์์ด ๋ ๊ฒ์
๋๋ค. :)
๊ทธ ์์ฝ์ ๋ํด @jamiehannaford ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด๊ฒ์ ๋ ๋์ ๋๊ฒ ๋ฌธ์ํํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๊น?
@luxas ์,์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ช ์ ์ ์ผ๋ก ๋ฌธ์ํํ๋ ๊ฒ์ด ์ ์ฉ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@jamiehannaford v1.9 ์ ๋ฌธ์ ๊ฐํธ์ ์ด๊ฒ์ ์ถ๊ฐํ๋ ค๋ฉด https://github.com/kubernetes/website/pull/6103 ์ ์ถ๊ฐ ํ ๋จ๋ฝ์ ๋ณด๋ด์ฃผ์ธ์.
ํธ์ ๋ด์ ๊ฐ๊ธฐ ๋๋
์๋ ํ์ธ์,
ํผ๋๋ฐฑ๋์ฃผ๊ณ ์ถ์ต๋๋ค. kubeadm์ ์ฌ์ฉํ์ฌ ์์ ํ ๋จ์ผ ๋
ธ๋ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
๋ชจ๋ kubernetes ์๋น์ค๋ฅผ localhost์ ๋ฐ์ธ๋ฉํ๊ณ ์ถ์ง๋ง ์๋ํ์ง ์์ต๋๋ค.
์ด ๋ช
๋ น์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--apiserver-advertise-address=127.0.0.1 \
--apiserver-cert-extra-sans=127.0.0.1,staging.my-server.net
๊ทธ๋ฌ๋ /etc/kubernetes/admin.conf
๋ฐ ์น๊ตฌ๋ ๋ง์คํฐ์ ๊ณต์ฉ IP ์ฃผ์๋ฅผ ํฌํจํฉ๋๋ค.
server: https://75.xx.yy.zz:6443
--node ์ ๊ทผ ๋ฐฉ์์ ์๋ํด ๋ณด ๊ฒ ์ง๋ง ์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ๋๋ก ๋์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ด ์ฌ์ฉ ์ฌ๋ก :
์คํ ์ด์ง ํ๊ฒฝ์ผ๋ก ์ฌ์ฉํ๊ณ HA์ ์ ๊ฒฝ ์ฐ์ง ์๋ ์๊ท๋ชจ ํ๋ก์ ํธ์ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๊ฐ๋ ฅํ ๋จธ์ ์ด ์์ต๋๋ค. SSH๋ฅผ ์ฌ์ฉํ๊ณ kubectl์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ์ ์ด ํ ์ ์์ต๋๋ค.
๊ฐ์ฌ,
์ฌ๊ธฐ์ @ Mosho1 ๊ณผ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ ๊ทธ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ์ต๋๋ค.
๋๋ DO์ CoreOS๋ฅผ ์ฌ์ฉํ์ง๋ง ์ด๊ฒ์ ์ค์ ๋ก ๋ ๊ฐ์ง ๋ชจ๋ ์
๋ฌด์จ ์ผ์
๋๋ค kubelet
๊ฐ ์ค์ ์ผ๋ก kubeadm
์ธํฐํ์ด์ค์์ ์ธ๋ชจ์ ์ฌ์ฉํ ์์๋ ํ ๋น ๋ IP ๋๋ ์ธํฐํ์ด์ค์ ๊ด๊ณ์์ด ๋ฏน์ค์ ์์ ์ ๊ฐ์ธ ์๋ธ๋ท์ ๊ฐ์ง๊ณ ๊ฒฐ์ ๋ฑ์ ์ํํ๊ณ ์ถ์ด "๋ฉ์ธ"์ผ๋ก ๊ฐ์ฃผํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒ์
๋๋ค (์ฒซ ๋ฒ์งธ? WAN ํ๋? ๋ชฐ๋ผ์).์ด๊ฒ์ ifconfig
๋ฅผ ํตํด ๋ณผ ์ ์์ง๋ง ip addr
๋ฅผ ํตํด ์ฝ๊ฒ ๋ณผ ์ ์์ผ๋ฉฐ ๊ฒฝ๋ก๋ ์ค์ ๋์ด ์์ง๋ง ๋
ธ๋ eth0
์ ์ฐ๊ฒฐํ๋ DO ๋คํธ์ํฌ๋ฅผ ํตํด ๋ ์๊ฐ ๊ฐ๋ฅ์ฑ์ ์์ต๋๋ค.
ํธ์ง : @klausenbusk ๋๋ถ์
ํด๊ฒฐ์ฑ ์ ์ค์ ๋ก ์ฌ์ฉํ IP๋ฅผ kubelet์๊ฒ ์๋ ค์ฃผ๋ ๊ฒ์ ๋๋ค. ์ ํ์ ๊ฐ์ธ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ณต์ฉ ๋คํธ์ํฌ ๋๋ ๊ฐ์ธ ๋คํธ์ํฌ ์ผ ์ ์์ต๋๋ค.
--node-ip
์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ KUBELET_EXTRA_ARGS
๊ฐ ๋จ์ ํ์ผ์ ์ด๋ฏธ ์ค์ ๋์ด ์์ง ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
$ DROPLET_IP_ADDRESS=$(ip addr show dev eth0 | awk 'match($0,/inet (([0-9]|\.)+).* scope global eth0$/,a) { print a[1]; exit }')
$ echo $DROPLET_IP_ADDRESS # check this, jus tin case
$ echo "Environment=\"KUBELET_EXTRA_ARGS=--node-ip=$DROPLET_IP_ADDRESS\"" >> /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
$ systemctl daemon-reload
$ systemctl restart kubelet
@lloeki ์์ฑํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. https://github.com/kubernetes/website/blob/master/docs/setup/independent/troubleshooting-kubeadm.md ์์ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ์๊ฒ ์ต๋๊น?
๋ฐ๋ผ์ WAN ํ๋ (eth0)๋ฅผ ์ ํํ๊ณ , ๊ณต์ฉ IP๋ฅผ ๋ณด๊ฑฐ๋ ๋ฌด์ํ๊ณ , ๋ ๋ฒ์งธ ๊ฐ์ธ ์๋ธ๋ท (์ ๊ฒฝ์ฐ์๋ 10.19.0.0/255)์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํฉ๋๋ค. ๊ฐ์ ๋งํฌ์์.
ํ์คํฉ๋๊น? ์ต์ปค IP ์ผ ์ ์์ต๋๋ค ( curl http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address
์ ๋น๊ต)
@klausenbusk ๋น์ ์ ์ ๋์ ์ผ๋ก ์ ํํฉ๋๋ค. ๊ทธ๊ฑด ์ ๋ถ๋ถ์์ ์ฌ๋ฏธ์๋ ์ถ์ธก์ด์์ต๋๋ค. ๋ค์์ ์ด์ --node-ip
์ฌ์ฉํ๋ ๋ง์คํฐ ๋
ธ๋์์ ๊ฐ์ ธ์จ ๊ฒ์
๋๋ค.
๊ทธ๋์ kubelet์ด ์ ์ฉํ์ง ์์ ๋ ์ ์ฉ ํ ์ ์๋ค๋ ๊ฐ์ ํ์ ํ๋๋ฅผ ์ ํํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
$ curl http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address
10.19.0.39
$ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet yyy.yyy.yyy.yyy/20 brd yyy.yyy.yyy.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.19.0.39/16 brd 10.19.255.255 scope global eth0
valid_lft forever preferred_lft forever
๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ์๊ฒ ์ต๋๊น?
@jamiehannaford ๋ด๊ฐ ํ ์์๋ ๊ฒ ๊ฐ์๋ฐ :)
/ ํ ๋น @liztio
๋๋ ์ด๊ฒ์ ๋ณด์๊ณ ์ฌ์ฉ์๊ฐ --node-ip
์ธ์๋ฅผ kubeadm์ ์ถ๊ฐํ๋๋ก ์์ฒญํ๋๋ผ๋ kubelet ๊ตฌ์ฑ์ ์์ ํ๊ณ ์ฌ๊ธฐ์ ์ ์ ๋ @jamiehannaford ์ ๊ฐ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/kubernetes/kubeadm/issues/203#issuecomment -335416377
(๋๋ kublet์ ๋ค์ ์์ํ๊ธฐ ์ ์ $ KUBELET_EXTRA_ARGS์ ์ถ๊ฐ).
kubeadm์ ์ถ๊ฐ cmd ์ธ์๋ฅผ ์ถ๊ฐํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ผ๋ฏ๋ก kubeadm MasterConfig ์ต์ ์ผ๋ก์ด๋ฅผ ํ์ฑํ ํ ๊ณํ์ด์๋ ํ์ด ๋ฌธ์ ๋ฅผ ๋ซ๋ ๊ฒ์ด ์์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค (์ด๋ป๊ฒ ๋ ?? ... ์ฌ์ฉ์๊ฐ kubelet ๊ตฌ์ฑ์ ํธ์งํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ํด์).
ํธ์ง : ๋๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋์ kubelet ๊ตฌ์ฑ์ ์ฌ์ฉํฉ๋๊น?
์์ ๋ฌธ์ ๋ณ๊ฒฝ์ ๋ํ ๋ชจ๋ ์ ์์ด ๋ณํฉ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํธ์ ๋ด์ ๊ฐ๊ธฐ
์ด๊ฑธ ๋ซ์๋ ๊ด์ฐฎ์ต๋๋ค.
Kubernetes 1.11์์ /etc/systemd/system/kubelet.service.d/20-custom.conf์ KUBELET_EXTRA_ARGS ์ค์ ์ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. / etc / sysconfig / kubelet์์ ์ค์ ํด์ผํฉ๋๋ค (์ฝ๊ฐ ๋ค๋ฅธ ๊ตฌ๋ฌธ ์ด ํ์ผ ์ค).
@stepin ๋ฐฉ๊ธ cat: /etc/sysconfig/kubelet: No such file or directory
์ป์์ต๋๋ค.
/etc/systemd/system/kubelet.service.d/20-custom.conf
๋ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ๊ทธ๊ณณ์์ ๋ฌด์์ ํ์
จ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋น์ ์ด ๋งํ ๊ฒ์ด ์ฌ์ค์ด๋ผ๋ฉด config hot potato ๊ฒ์์ด ๊ณ์๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์์ kubelet ๊ตฌ์ฑ์ ๋ํ ๋ ๋ค๋ฅธ ์์น๋ฅผ ์ฐพ์ ์์์์ต๋๋ค : /etc/default/kubelet
๋ฏธ๋์ ์ฌํ์์๊ฒ๋ (์ ์ด๋ ๋ค์ ์ฃผ ๋์) ์ด๊ฒ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
PRIVATE_IP=10.99.0.0
echo "KUBELET_EXTRA_ARGS=--node-ip=$PRIVATE_IP" > /etc/default/kubelet
systemctl daemon-reload
systemctl restart kubelet
๋ถ๋ช ํ ํน์ ๋ ธ๋์์๋ IP๋ก ๋ณ๊ฒฝํด์ผํฉ๋๋ค.
๋ฉด์ฑ
์กฐํญ : ์ ๋ Kubernetes๋ฅผ ํ์ธํ๋ ์ค์ด๋ฏ๋ก ์ด๊ฒ์ด ๋์ฐํ ์ผ์ํ์ง ์๋๋ค๊ณ ๋ณด์ฅํ์ง ์์ต๋๋ค. ํ์ง๋ง /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
๋ /etc/default/kubelet
๊ฐ๋ฆฌ ํค๋ฏ๋ก ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@jazoom- ์๊ฒฌ์ ๋ณด๋ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋๋์ด systemd ๋จ์ ํ์ผ์ ๋ ์์ธํ ์ฝ์ ์์๊ฒ๋์์ต๋๋ค. ๋๋ 1.10์์ ๋์ผํ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ฌ ์ ์์๊ธฐ ๋๋ฌธ์ ๋ฏธ์ณ ๊ฐ๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ต๋๋ค ... 1.11์์ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ค๊ณ ๋ด๊ฐ ์ค์ ํ ์ฌ์ฉ์ ์ ์ --node-ip
๋ ์ ํ ์ ์ฉํ์ง ์์์ต๋๋ค. /etc/default/kubelet
์ ์ถ๊ฐ ์ธ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์ ํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@geerlingguy ์ฒ๋ง ์์.
์ ์ด๋ "1.11 ํด๋ฌ์คํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋๋ง๋ค ์๋ํ๋ค"๋ ๊ฒฝ์ฐ๋ ์๋์๋ค. ์ด๋ฌํ ์ฌํ ๋ถ๊ฐ๋ฅํ ๋ฌธ์ ๋ ์ ๋ง ๋น์ ์ ๋ฏธ์น๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
"Kubeadm 1.13"์์์ด ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ต๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ์์ ํ์ต๋๋ค.
1) '/var/lib/kubelet/kubeadm-flags.env'์ "--node-ip"๋ฅผ ์ถ๊ฐํฉ๋๋ค.
[root@Node-18121 ~]# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1 --node-ip=10.10.10.1
2) Kubelet ๋ค์ ์์ :
systemctl daemon-reload && systemctl restart kubelet
^ NIC์ ํ์๋์ง ์๋ ์ ๋ IP๋ก ์๋ํ๋๋กํ๋ ๋ฐฉ๋ฒ์ ์๋ ์ฌ๋์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฑ๊ณตํ์ต๋๋ค.
์๋ ํ์ธ์,
https://wiki.hetzner.de/index.php/Cloud_floating_IP_persistent/en์ ์๋
Hetzner์์ ์๋ํ์ง๋ง ์ผ๋ฐ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Eugen
์ด๊ฒ์ ์๋ฒฝํ๊ฒ ์๋ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
"Kubeadm 1.13"์์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ค์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- "/var/lib/kubelet/kubeadm-flags.env"์ "--node-ip"๋ฅผ ์ถ๊ฐํฉ๋๋ค.
[root@Node-18121 ~]# cat /var/lib/kubelet/kubeadm-flags.env KUBELET_KUBEADM_ARGS=--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1 --node-ip=10.10.10.1
- Kubelet์ ๋ค์ ์์ํฉ๋๋ค.
systemctl daemon-reload && systemctl restart kubelet
๊ณ ๋ง์, ์ด์ฌ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@stepin ๋ฐฉ๊ธ
cat: /etc/sysconfig/kubelet: No such file or directory
์ป์์ต๋๋ค./etc/systemd/system/kubelet.service.d/20-custom.conf
๋ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ๊ทธ๊ณณ์์ ๋ฌด์์ ํ์ จ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.๋น์ ์ด ๋งํ ๊ฒ์ด ์ฌ์ค์ด๋ผ๋ฉด config hot potato ๊ฒ์์ด ๊ณ์๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์์ kubelet ๊ตฌ์ฑ์ ๋ํ ๋ ๋ค๋ฅธ ์์น๋ฅผ ์ฐพ์ ์์์์ต๋๋ค :
/etc/default/kubelet
๋ฏธ๋์ ์ฌํ์์๊ฒ๋ (์ ์ด๋ ๋ค์ ์ฃผ ๋์) ์ด๊ฒ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ถ๋ช ํ ํน์ ๋ ธ๋์์๋ IP๋ก ๋ณ๊ฒฝํด์ผํฉ๋๋ค.
๋ฉด์ฑ ์กฐํญ : ์ ๋ Kubernetes๋ฅผ ํ์ธํ๋ ์ค์ด๋ฏ๋ก ์ด๊ฒ์ด ๋์ฐํ ์ผ์ํ์ง ์๋๋ค๊ณ ๋ณด์ฅํ์ง ์์ต๋๋ค. ํ์ง๋ง
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
๋/etc/default/kubelet
๊ฐ๋ฆฌ ํค๋ฏ๋ก ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.