天天看點

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

0、前言

 整體架構目錄:ASP.NET Core分布式項目實戰-目錄

k8s架構目錄:Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列目錄

1、部署master元件

master 伺服器的元件有:kube-apiserver、kube-controller-manager、kube-scheduler

是以需要下載下傳k8s master,下載下傳位址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md ,當然大家可以下載下傳更高版本的。

這邊需要準備這幾個檔案

kubectl(用于運作叢集指令的管理工具):具體可參考:http://docs.kubernetes.org.cn/61.html   中文文檔。

kubeconfig.sh(用來生成适用于node節點的配置檔案以及證書的)、master伺服器的k8s元件

第一步:解壓縮包 unzip master.zip

把裡面的kube-apiserver、 kube-controller-manager、 kube-scheduler   複制到 /opt/kubernetes/bin 裡面,并且把bin檔案夾下面的檔案設定為可執行權限,chmod +x /ops/kubernetes/bin/*

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

第二步:已把各個元件放到對應的目錄後,進入我剛才的解壓出來的檔案夾中,把字尾為.sh的檔案設定為可執行權限因為我們要開始啟動master元件

chmod +x *.sh

第三步:

把上面說到的 kubectl 管理工具放到 /ops/kubernetes/bin,一樣的也設定可執行權限。

然後把kubeconfig.sh 放到  之前文章介紹中的 /home/ssl  目錄下,然後執行以下裡面的内容,會生成如下的檔案及證書,主要用于node元件

token.csv、bootstrap.kubeconfig、kube-proxy-key.pem、kube-proxy.kubeconfig kube-proxy.pem

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

第四步:把生成的token.csv 檔案複制到 /opt/kubernetes/cfg/  ,因為在運作 master元件sh檔案需要用到。

第五步:終于可以了運作啦

./apiserver.sh 192.168.161.151 https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379

./scheduler.sh 127.0.0.1

./controller-manager.sh 127.0.0.1

然後運作以檢視一下運作狀态   ps -ef |grep kube ,可以看到 都在運作,至此master元件已經全部運作了。

運作以下檢視叢集etcd的健康狀态啦 kubectl get cs

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

2、部署node元件

 第一步:把上面的ssl中建立的檔案

bootstrap.kubeconfig、kube-proxy.kubeconfig 

copy 到node節點上

scp -r *kubeconfig [email protected]:/opt/kubernetes/cfg

scp -r *kubeconfig [email protected]:/opt/kubernetes/cfg

第二步:在下載下傳的k8s中找到node伺服器需要的k8s檔案元件複制到伺服器上。

然後進入到 檔案夾中,然後把字尾為 sh 的檔案添加可執行權限 chmod +x  *sh

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

把kubelet、kube-proxy都加上可執行權限,然後把這兩個檔案copy到/ops/kubernetes/bin 中

cp kubelet kube-proxy /opt/kubernetes/bin/

chmod +x /opt/kubernetes/bin/*

第三步:運作kubelet.sh  kube-proxy.sh(節點node2也按照相同的部署)

./kubelet.sh 192.168.161.152 10.10.10.2

./proxy.sh 192.168.161.152

第四步:運作kubelet 和kube-proxy 

發現運作報錯,好吧,發現沒有權限

解決方案:需要在 master節點裡面為 請求的使用者即bootstrap.kubeconfig  裡面的 user 使用者建立角色(kubelet-bootstrap)

切換到master 上,執行以下指令即可。

kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

第五步:在node伺服器上啟動kubelet,在master 上面即可以檢視 csr 證書

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

證書生成後,就需允許 證書

kubectl certificate approve 證書名(即上面截圖的name值)

然後就可以檢視 叢集狀态了

kubectl get node

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

至此,k8s叢集部署結束。

接下來就要測試一下部署webUI啦。

看下圖

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

3、部署webUI

需要三個檔案

dashboard-rbac.yaml :rbac 權限

dashboard-deployment.yaml :部署pod

dashboard-service.yaml :釋出服務

分别執行:

kubectl create -f dashboard-rbac.yaml

kubectl create -f dashboard-deployment.yaml

kubectl create -f dashboard-service.yaml

執行完後,我們來看一下pod,發現dashboard已經部署成功。

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

接下來我們看一下釋出服務的端口

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

 大公告成。

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

github:fork me

asp.net Core 交流群:787464275 歡迎加群交流

如果您認為這篇文章還不錯或者有所收獲,您可以點選右下角的【推薦】按鈕精神支援,因為這種支援是我繼續寫作,分享的最大動力!

作者:LouieGuo

聲明:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格位址,如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設定打賞功能,如有特殊需求請與本人聯系! 

微信公衆号:歡迎關注                                                 QQ技術交流群: 歡迎加群

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)
Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之部署master/node節點元件(四)

LouieGuo

繼續閱讀