既然是Kubernetes新手,自然要找個網路的k8s模擬Lab來實戰一下K8S的操作。於是我來到了labs.play-with-k8s.com這個lab,這是免費的,可以用你的GiHub/Docker Account登入,然後就可以建立自己的K8S Lab環境了。
一開始進來當然什麼都沒有,第一個任務就是Add New Instance,點下 +ADD NEW INSTANCE之後,系統就自動幫我create 一個空 node,IP是192.168.0.18。
接下來第一個任務是讓K8S第一個Cluster起來,首先要初始化把這個node成Cluster Master Node,利用下面這個指令:
$ kubeadm init --apiserver-advertise-address $(hostname -i)
然後你就會看到下面跑了一堆密密麻麻的東西,這是在初始化Cluster Master Node的一個過程。
可是最後我還是看到一個Fail :
意思是說 有一個timeout發生,可能是kubelet沒有跑起來,也可能是Kubelet有錯誤配置在Node上面。而很貼心的,系統告訴我們有兩個方法可以troubleshoot:
- 利用指令 $ systemctl status kubelet 查看可能原因
- 利用指令 $ journalctl –xeu kubelet 查看可能原因
我採用了第一個systemctl指令查出了可能原因:
大概是指不夠空間可以建立重要的中繼檔案,所以失敗。
而還有另外一種利用docker指令查看docker內k8s 相關container的運行log來troubleshoot,指令過程如下:
Step 1. $ docker ps –a | grep kube | grep –v pause
Step 2.在結果中找出可能有問題的pod得container id,這邊我選擇第一個被列出來的pod,因為只有它是exited:b65003a587e5
Step 3. $ docker logs <有問題的pod的Container ID>
$ docker logs b65003a587e5
得到的結果與systemctl幾乎一致: no space left on device
看來問題就是系統容量不足啦!
2019年12月10日星期二