Kubernetes(K8S)叢集管理Docker容器
一、架構拓撲圖
二、環境規劃
角色 |
IP |
元件 |
master |
172.25.77.1 |
etcd kube-apiserver kube-controller-manager kube-scheduler |
node01 |
172.25.77.2 |
kubelet kube-proxy docker |
node02 |
172.25.77.3 |
kubelet kube-proxy docker |
下載完成後,上傳到伺服器:
kubernetes-server-linux-amd64.tar.gz上傳到master節點。
kubernetes-node-linux-amd64.tar.gz 上傳到node節點。
3.2 安裝etcd3
etcd-3.2.22-1.el7.x86_64.rpm
1 2 3 4 5 6 7 8 |
# vi /etc/etcd/etcd.conf
|
3.3 執行Master節點元件
1 2 3 |
# tar zxvf kubernetes-server-linux-amd64.tar.gz
|
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叢集,就此部署完成。