Kubernetes(K8S)叢集管理Docker容器(部署篇)
今天這篇文章教給大家如何快速部署一套Kubernetes叢集。K8S叢集部署有幾種方式:kubeadm、minikube和二進位制包。前兩者屬於自動部署,簡化部署操作,我們這裡強烈推薦初學者使用二進位制包部署,因為自動部署遮蔽了很多細節,使得對各個模組感知很少,非常不利用學習。
所以,這篇文章也是使用二進位制包部署Kubernetes叢集。
本章目錄
一、架構拓撲圖
二、環境規劃
角色 |
IP |
元件 |
master |
192.168.0.211 |
etcd kube-apiserver kube-controller-manager kube-scheduler |
node01 |
192.168.0.212 |
kubelet kube-proxy docker |
node02 |
192.168.0.213 |
kubelet kube-proxy docker |
環境說明:
作業系統:Ubuntu16.04 or CentOS7
Kubernetes版本:v1.8.3
Docker版本:v17.09-ce
均採用當前最新穩定版本。
關閉selinux。
三、部署叢集
3.1 下載二進位制包
開啟下面網址,下載下面兩個紅色框框的包。
下載完成後,上傳到伺服器:
kubernetes-server-linux-amd64.tar.gz上傳到master節點。
kubernetes-node-linux-amd64.tar.gz 上傳到node節點。
3.2 安裝etcd3
1 2 3 4 5 6 7 8 |
|
注意:Ubuntu系統etcd配置檔案在/etc/default/etcd。
3.3 執行Master節點元件
1 2 3 |
|
3.3.1 apiserver
建立配置檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
建立systemd服務檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
啟動服務,並設定開機啟動:
1 2 3 |
|
注意:apiserver預設支援etcd3,如果是etcd2,需啟動時指定版本選項--storage-backend=etcd2
3.3.2 scheduler
建立配置檔案:
1 2 3 4 5 |
|
建立systemd服務檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
啟動服務,並設定開機啟動:
1 2 3 |
|
3.3.3 controller-manager
建立配置檔案:
1 2 3 4 |
|
建立systemd服務檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
啟動服務,並設定開機啟動:
1 2 3 |
|
3.3.4 小結
Master節點元件就全部啟動了,需要注意的是服務啟動順序有依賴,先啟動etcd,再啟動apiserver,其他元件無順序要求。
檢視Master節點元件程序狀態:
說明元件都在執行。
如果啟動失敗,請檢視啟動日誌,例如:
#journalctl -u kube-apiserver
3.4 執行Node節點元件
1 2 3 |
|
3.4.1 kubelet
建立kubeconfig配置檔案:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
kubeconfig檔案用於kubelet連線master apiserver。
建立配置檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
建立systemd服務檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
啟動服務,並設定開機啟動:
1 2 3 |
|
3.4.2 proxy
建立配置檔案:
1 2 3 4 5 6 7 8 9 |
|
建立systemd服務檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
啟動服務,並設定開機啟動:
1 2 3 |
|
3.4.3 小結
其他節點加入叢集與node01方式相同,但需修改kubelet的--address和--hostname-override選項為本機IP。
檢視Node節點元件程序狀態:
說明元件都在執行。
如果啟動失敗,請檢視啟動日誌,例如:
#journalctl -u kubelet
3.5 驗證叢集是否部署成功
設定可執行檔案到系統變數,方便使用:
1 2 |
|
檢視叢集節點狀態:
兩個節點都加入到了kubernetes叢集,就此部署完成。
另外,近期錄製了<<Docker高階應用實戰課程>>,包括Swarm和Kubernetes叢集管理系統,叢集也是Docker技術應用精髓所在!有需要的不妨看看。
QQ技術群,有需要的朋友可以加下: