天天看點

使用kubeadm部署kubernetes叢集使用kubeadm部署kubernetes叢集參考資料如有疑問,歡迎交流

通過docker,我們可以在單個主機上快速部署各個應用,但是實際的生産環境裡,不會單單存在一台主機,這就需要用到docker叢集管理工具了,本文将簡單介紹使用docker叢集管理工具kubernetes進行叢集部署。

本次搭建使用了三台主機,其環境資訊如下:

| 節點功能 | 主機名 | IP |

| ——————|:—————-:|——————-:|

| master | master |192.168.1.11 |

| slave1 | slave1 |192.168.1.12 |

| slave2 | slave2 |192.168.1.13 |

在三台主機的/etc/hosts檔案中添加以下内容

再把/etc/fstab檔案中帶有swap的行注釋。

官方推薦安裝docker版本為1.12

驗證docker版本

常用yum源均沒有這幾個安裝包,需要添加專門的yum源

查詢kubelet的狀态

初次安裝的情況下kubelet應未啟動成功,我們會按下面的步驟初始化叢集後會自動啟動的。

根據官方文檔進行初始化:

出現如下錯誤:

需要指定kubernetes-version。

首先查詢版本

版本為1.7.5,然後啟動參數中加入版本:

執行過程中會卡在如下步驟:

因為kubenetes初始化啟動會依賴某些鏡像,而這些鏡像預設會到google下載下傳,我們需要手動下載下傳下來這些鏡像後再進行初始化。

使用CTRL+C結束目前程序,然後到/etc/kubernetes/manifests/目錄下檢視各個yaml檔案,還有其他需要的鏡像檔案,彙總後如下:

因直接下載下傳這些google鏡像,下載下傳不下來,我們通過下載下傳dockerHUB/阿裡雲上的鏡像,然後更改tag。

master節點初始化成功,結果如下:

需要記住kubeadm join --token這句,後面會用到

安裝完network之後,你可以通過kubectl get pods --all-namespaces來檢視kube-dns是否在running來判斷network是否安裝成功。

如果以上STATUS中存在不是Running的需要再進行解決。

由于安全原因,預設情況下pod不會被schedule到master節點上,可以通過下面指令解除這種限制:

slave節點需要以下鏡像:

在msater節點上導出鏡像

複制到slave主機/opt目錄下,再導入即可:

在兩個slave節點上執行:

執行成功标志:

在mster節點上執行kubectl get nodes檢視是否成功:

可以看到,kubernetes叢集已經部署成功,可以使用了。

Installing kubeadm,https://kubernetes.io/docs/setup/independent/install-kubeadm/

使用kubeadm在Red Hat 7/CentOS 7快速部署Kubernetes 1.7叢集,http://dockone.io/article/2514

CentOS7.3利用kubeadm安裝kubernetes1.7.3完整版(官方文檔填坑篇),https://www.cnblogs.com/liangDream/p/7358847.html

How to execute “kubeadm init” v1.6.4 behind firewall,https://stackoverflow.com/questions/44432328/how-to-execute-kubeadm-init-v1-6-4-behind-firewall

使用 kubeadm 建立 kubernetes 1.9 叢集,https://www.kubernetes.org.cn/3357.html

 本文轉自 sjfbjs 51CTO部落格,原文連結:http://blog.51cto.com/11886896/2072527