使用kubeadm部署kubernetes集群
每天讀一篇一線開發者原創好文
使用kubeadm部署kubernetes集群
通過docker,我們可以在單個主機上快速部署各個應用,但是實際的生產環境里,不會單單存在一台主機,這就需要用到docker集群管理工具了,本文將簡單介紹使用docker集群管理工具kubernetes進行集群部署。
1 環境規劃與準備
本次搭建使用了三台主機,其環境信息如下:
| 節點功能 | 主機名 | IP |
| ——————|:—————-:|——————-:|
| master | master |192.168.1.11 |
| slave1 | slave1 |192.168.1.12 |
| slave2 | slave2 |192.168.1.13 |
在三台主機的/etc/hosts文件中添加以下內容
關閉swap
再把/etc/fstab文件中帶有swap的行注釋。
關閉SELinux
設置iptables
安裝socat等工具
2 kubernetes安裝
2.1 安裝docker
官方推薦安裝docker版本為1.12
驗證docker版本
2.2 安裝kubectl、kubelet、kubeadm
2.2.1 添加yum源
常用yum源均沒有這幾個安裝包,需要添加專門的yum源
2.2.2 安裝kubectl、kubelet、kubeadm
2.2.3 啟動kubelet
查詢kubelet的狀態
初次安裝的情況下kubelet應未啟動成功,我們會按下面的步驟初始化集群後會自動啟動的。
3 kubernetes集群配置
3.1 master節點配置
3.1.1 初始化master
根據官方文檔進行初始化:
出現如下錯誤:
需要指定kubernetes-version。
首先查詢版本
版本為1.7.5,然後啟動參數中加入版本:
3.1.2 master節點依賴鏡像
執行過程中會卡在如下步驟:
因為kubenetes初始化啟動會依賴某些鏡像,而這些鏡像默認會到google下載,我們需要手動下載下來這些鏡像後再進行初始化。
使用CTRL+C結束當前進程,然後到/etc/kubernetes/manifests/目錄下查看各個yaml文件,還有其他需要的鏡像文件,匯總後如下:
因直接下載這些google鏡像,下載不下來,我們通過下載dockerHUB/阿里雲上的鏡像,然後更改tag。
master節點初始化成功,結果如下:
需要記住kubeadm join —token這句,後面會用到
3.1.3 kubectl配置
3.1.4 pod network配置
安裝完network之後,你可以通過kubectl get pods —all-namespaces來查看kube-dns是否在running來判斷network是否安裝成功。
如果以上STATUS中存在不是Running的需要再進行解決。
由於安全原因,默認情況下pod不會被schedule到master節點上,可以通過下面命令解除這種限制:
3.2 slave節點配置
3.2.1 slave節點依賴鏡像
slave節點需要以下鏡像:
在msater節點上導出鏡像
複製到slave主機/opt目錄下,再導入即可:
3.2.2 slave節點加入集群
在兩個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
如有疑問,歡迎交流
※Linux進程函數棧列印工具gstack源碼解讀、運用及擴展編程
TAG:中興開發者社區 |