筆者平常真的愛用ubuntu,自己裝Kubernetes也好好的,突然有一天同事丟了CentOS的環境跟我說他的k8s裝不起來,他說kube-DNS跟flannel出了問題,花了一兩天,才發現原來是CentOS裡的防火牆擋掉了(號稱最穩的linux果真名不虛傳.....),多虧這個彎筆者又多認識了一層flannel(不知該笑還是該哭),總之這邊紀錄一下作法希望讓大家能再安裝時順利一點

關掉防火牆跟SELinux

首先,該關的關一關(重要),官網也建議,若真的有安全上的考慮,可以詳加了解Kubernetes會用到怎樣的port或服務再結合防火牆,這邊我們為了測試環境(懶?),先關掉吧

安裝Docker

這邊基本上網路上有超多教學,我們在這邊就先省略詳細了,筆者Docker的版本是1.12.6,記得要啟動

安裝Kubeadm與Kubelet

Kubernets的架構有興趣的人可以找找,或等筆者哪天真得很閒再來寫一篇,主要上官方現在都提供Kubeadm這樣的安裝方式,當年要一個一個部份安裝真的是想哭,而再安裝前要先加一些東西到local的repo

用Kubeadm安裝Kubernetes Master

後面是你預設的pod網段,這邊先照官網預設即可,若想要選擇k8s版本可以加上 --kubernetes-version 來選擇,若沒有選預設就會是最新的,筆者安裝是1.7.2版

完成後會像這樣

他會提示你如何去建立kubectl,照著指示去建立

使用kubectl看看版本

如下圖

加入其他Node(single)

這邊如果你目前只有一台主機,必須下以下指令,讓schedular能分配pod再Master上

若要加入其他Node就去另外一台機器上安裝kubelet 以及kubeadm, 然後用剛剛kubeadm init完成後的token加入其他的node 他會提示你如何下指令,例如 kubeadm join .....

確認flannel網路

詳細的網路架構這邊就先暫且省略,我們只需先講解安裝步驟

上面主要加入flannel進RBAC,這是kubernetes1.6後引進的一個機制,接著建立flannel的daemonset

建立完後重新啟動一下kubelet

之後我們去察看再kubernetes底下的這些重要功能的pod是否都運行起來,kube-dns可能要等一段時間,大概2分鐘左右 等超過十分鐘應該就是有問題了
最後我們察看運行狀況,如下圖

察看各node狀況

到前為止就差不多完成了

發生問題其實可以增進自己解決能力的問題,即使這問題可能之後都不會再遇到了,但培養的是解決能力的精神,手動架個N遍OpenStack與Kubernets就能體會其經隨了QQ,雖然很自虐XD

若有錯誤跟疑問都歡迎再下面留言,謝謝


8/28 補充

在使用kubeadm 安裝kubernetes v1.7.4會遇到卡在

根據/var/log/message

把在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
的KUBELET_CGROUP_ARGS改成下方

再重新啟動kubelet就行了

ref: k8s官網


OSDI 6 Cobra Command-強大的Command line開發工具

    1. 您好,謝謝您的提醒, 官方已經換了yaml的檔案url,最新安裝flannel的方式也更新到文章上了,也歡迎對任何疑問都在提出喔

Leave a Reply