使用kubeadm方式安裝kubernetes 1.10.0
環境準備
docker安裝部署
所需docker安裝包,請點選17.03自行下載下傳使用。
基礎鏡像準備
本次示範 kubernetes 所依賴的各個鏡像清單如下:
所需鏡像,請點選images自行下載下傳。
系統配置
根據官方文檔中limitations小節中的内容,對各節點系統做如下設定:
安裝kubeadm和kubelet
下面在各節點安裝kubeadm和kubelet
初始化master準備
#說明:
(1)kubeadm 等相關 rpm 安裝後會生成 /etc/kubernetes 目錄,而 kubeadm init 時候又會檢測這些目錄是否存在,如果存在則停止初始化,是以要先清理一下。
參考官網tear down部分内容。
(2)初始化以前記得一定要啟動 kubelet。
(3)安裝ebtables包
新版本直接 init 會提示 ebtables not found in system path 錯誤,是以還得先安裝一下這個包在初始化
(4)修改kubelet配置檔案
(5)關閉系統Swap
Kubernetes 1.8開始要求關閉系統的Swap,如果不關閉,預設配置下kubelet将無法啟動。可以通過kubelet的啟動參數--fail-swap-on=false更改這個限制。
說明:因為這裡本次用于測試的主機上還運作其他服務,關閉swap可能會對其他服務産生影響,是以這裡修改kubelet的啟動參數--fail-swap-on=false去掉這個限制。
注意⚠️如果碰到一下錯誤:
解決方法:
使用kubeadm init初始化叢集
#使用kubeadm初始化叢集,在Master Node上執行下面的指令:
#說明
我們選擇flannel作為Pod網絡插件,是以上面的指令指定–pod-network-cidr=10.244.0.0/16
#執行時的WARNING
#執行時如有:
#整個初始化流程
#關鍵内容說明
如果你需要重新做 kubeadm init ,那麼我們最好把上次初始化和容器服務全部清理掉,具體步驟:
master節點驗證
#檢視一下叢集狀态
#解決方法:
#再次檢視叢集狀态
#檢視叢集節點
#指令行驗證
檢視目前Network
kubeadm init成功之後,此時的master node上k8s的核心元件均正常啟動,而且是多以container的形式啟動。
不過這些核心元件并不是跑在pod network中的(沒錯,此時的pod network還沒有建立),而是采用了host network。以kube-apiserver的pod資訊為例:
#檢視kube-apiserver的容器id
#檢視對應的pause容器的network屬性
安裝flannel pod網絡
檢視master中所有pod的狀态
向Kubernetes叢集添加/删除Node
關于這部分操作,請點選參考Node操作
參考文檔
centos7使用kubeadm安裝kubernetes 1.11版本多主高可用