環境node
伴隨着k8s1.10版本的發佈,前天先在一臺機器上搭建了k8s單機版集羣,即既是master,也是node,按照經驗,將 kubeadm init
提示的 kubeadm join
記錄下來,方便將來新增集羣集工做節點(機器)時,能夠直接複用,緊接着就部署dashboard、heapster、ElasticSearch、Redis、dotnet
微服務等等,一鼓作氣,集羣狀態良好,由於以前測試環境搞過k8s,呵呵 ...... 。過了兩天公司購買的第二胎服務器到了,那麼就順其天然的在上面執行以前記錄的 kubeadm join
腳本,結果以下:git
看到這個提示信息,我徹底100%地相信,node 已經加入集羣,而且只要等一下子,經過 kubectl get nodes
就能夠看到 node is ready
,嘿嘿
過一下子,又過一會,再過一下子 ...... ,但是
程序員
而後,開啓重試模式,發揚程序員不掘不撓的傳統精神:github
kubectl reset
kubectl join ......
kubectl get nodes
進入重試死循環N次,耐性真好,哈哈。明明提示 This node has joined the cluster
,爲何實際狀況是這樣呢,難道這就是理想和現實的差距,其實這就是 坑,out了吧。我想了又想,看了又看,沒有一點點錯誤、警告之類的信息,無從下手啊,腫麼辦呢,最後仍是把關注點放在了kubelet(誰叫你是 node agent
,確定拿你開刀啊,呵呵)上,因而開始查看kuberlet的日誌:docker
看到了吧centos
error: failed to run Kubelet: failed to create kubelet:
misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
原來這個小問題啊,哎。。。。。。,我又再一次相信了這個k8s的提示信息,而後開始修正bug了服務器
信了你的邪哦,爲何 kubelet cgroup driver
和 docker cgroup driver
如出一轍,剛剛,kubelet
日誌裏面不是。。。明明。。。卻。。。,淡定,這多是幻覺,好吧。到底什麼是真的,什麼是假的,能不能給一個準確的提示信息,既然也不是kubelet的問題,又是最新的版本,也沒有資料可查,當下實在沒轍了,那就去 kubernets#62776 提 Issues
吧,因而乎,就這樣下班了。。。。微服務
次日,第一件事情就是查看昨天提的問題是否有人回答了,結果看到被一個印度阿三給關閉了學習
哎,和昨天預料的結果一眼,好像有點諸葛了吧,嘿嘿,那仍是靠本身吧,又想了又想,看了又看,真的是沒有一點點防備啊,期間檢查了 kubeadm
、kubectl
、kubelet
,也查看來了各類配置;也想過是否是master提早安裝的一些東西影響了,由於之前都是 kubeadm init
後,而後就立刻 ·kubeadm join
;還想過是否是環境的問題,由於以前的測試環境一直是Ubuntu 16.4
,如今的主機環境是 CentOS 7
。本想着今天上午,搞不定,就按照測試環境的步驟,重來來過,而後,仍是不願放棄(天生就是當程序員的料子啊,就是頭有點冷,呵呵),因而從另外的角度去思考,懷疑是否是記錄的 'kube join token=.... ',有問題啊(以前爲何沒懷疑,是由於我是直接複製 kubeadm init
打印出來的原生腳本,並且測試環境一點問題都沒有。),因而開始順藤摸瓜,排查第一個參數 token
,執行命令 kubeadm token list
:測試
真是拋開雲霧見天明,不容易啊,衆裏尋她千百度,原來她在燈火闌珊處。。。。。哎,不去搞文學,惋惜了,呵呵。
因而乎,經過 kubeadm create token
從新建立了一個 token
,而後,從新執行 kubeadm join
,再次查看 kubectl get nodes
:
成功了,終於成功了,這是搞 kubernetes
以來,踩的最迷糊的一次坑,最後本身回答了本身的 kubernets#62776 ,順便也給kubernetes
提了一下建議,但願提示信息可以準確些,他們的一小步,就是咱們的一大步啊。。。。。
默認狀況下,經過 kubeadm create token
建立的 token
,過時時間是24小時,這就是爲何過了一天沒法再次使用以前記錄的 kube join
原生腳本的緣由,也能夠運行 kubeadm token create --ttl 0
生成一個永不過時的 token
,詳情請參考:kubeadm-token,瞭解了緣由纔可以觸類旁通,帶着思考學習k8s,纔不會以爲乏味,但願把這個坑分享給你們,更但願把整個思考過程分享給你們,每每結果很簡單,過程確如同西天取經,只要是程序員,都有同感吧。若是有什麼疑問,或者想要交流的東西歡迎評論區留言,樓主會一一回復的哦。