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

0、前言


 總體架構目錄:ASP.NET Core分佈式項目實戰-目錄html

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

 

一、部署master組件


master 服務器的組件有:kube-apiserver、kube-controller-manager、kube-schedulergit

所以須要下載k8s master,下載地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md ,固然你們能夠下載更高版本的。github

這邊須要準備這幾個文件web

kubectl(用於運行集羣命令的管理工具):具體可參考:http://docs.kubernetes.org.cn/61.html   中文文檔。bootstrap

kubeconfig.sh(用來生成適用於node節點的配置文件以及證書的)、master服務器的k8s組件api

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

把裏面的kube-apiserver、 kube-controller-manager、 kube-scheduler   複製到 /opt/kubernetes/bin 裏面,而且把bin文件夾下面的文件設置爲可執行權限,chmod +x /ops/kubernetes/bin/*服務器

 

第二步:已把各個組件放到對應的目錄後,進入我剛纔的解壓出來的文件夾中,把後綴爲.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

  

第四步:把生成的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

 

 

二、部署node組件


 第一步:把上面的ssl中建立的文件

bootstrap.kubeconfig、kube-proxy.kubeconfig 

copy 到node節點上

scp -r *kubeconfig root@192.168.161.152:/opt/kubernetes/cfg
scp -r *kubeconfig root@192.168.161.153:/opt/kubernetes/cfg

 

第二步:在下載的k8s中找到node服務器須要的k8s文件組件複製到服務器上。

而後進入到 文件夾中,而後把後綴爲 sh 的文件添加可執行權限 chmod +x  *sh

把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 證書

 

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

 

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

而後就能夠查看 集羣狀態了
kubectl get node

 

至此,k8s集羣部署結束。

 

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

看下圖

 

三、部署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已經部署成功。

接下來咱們看一下發布服務的端口

 

 大公告成。

 

 

 

github:fork me

asp.net Core 交流羣:787464275 歡迎加羣交流
若是您認爲這篇文章還不錯或者有所收穫,您能夠點擊右下角的【推薦】按鈕精神支持,由於這種支持是我繼續寫做,分享的最大動力!

做者:LouieGuo
聲明:原創博客請在轉載時保留原文連接或者在文章開頭加上本人博客地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設置打賞功能,若有特殊需求請與本人聯繫! 

微信公衆號:歡迎關注                                                 QQ技術交流羣: 歡迎加羣

                

相關文章
相關標籤/搜索