講完了log收集後, 我們來介紹在K8s你可以利用哪些工具,讓你在部署應用的過程中更省力
首先介紹一個K8s的應用管理工具 -- Helm
Helm之於K8s就如同RHEL的yum, Ubuntu的apt-get, 是K8s部署不可少的神兵利器。
在Helm的世界裡有兩個Term:
由這張架構圖可以很清楚的看到Helm, tiller以及K8s的關係
Helm 就是 Client, 負責幫你抓你要的檔案(chart)下來
而Tiller則是擔任server, 幫你呼叫K8s API把抓下來的檔案部署上K8s
稍微對K8s有研究的人就會知道,一個完整的應用不只需要Deployment, 還會需要Service, Ingress, ServiceAccount, ...等等的部署文件。而其中又可能有相依性,這時候如果有整套的部署文件幫你船便便那該有多好! 當然如果你寫好了部署文件想要打包起來上傳分享也可以。
於是乎神器Helm就這樣降臨了!
要使用Helm也非常簡單
brew install kubernetes-helm
沒錯使用Mac就是一鍵安裝, 其他的OS安裝方式請看這裡
裝完之後我們還需要在K8s上裝一個叫tiller的server, tiller可以監聽來自helm client(Cli)的請求, 幫我們在K8s上安裝好想要的chart。
首先初始化
helm init
helm init 完之後可以看到tiller component已經跑起來了
更新chart repo
試著安裝一個chart
失敗了?
根據這個已經被公開的Issue表示原因出自於K8s RBAC的權限問題,詳細文件請看這
照著issue裡面的workaround添加相應的角色,權限問題就解決了
重新裝一遍mysql chart
OK成功!
helm 在安裝的同時也會有說明講解要如何確認你的chart是否裝好了
要解除安裝也很方便, 下del指令即可
helm del --purge ${helm release name}
如果還想找更多的charts, 可以到這裡來
或是可以下command搜尋(如果不給關鍵字就會有全部的charts)
helm search ${chart name}
Helm v3出來囉!看這裡
這次拿掉惱人的tiller,也修改了一些指令,有興趣的人可以看一下
打完收工。
下篇來講講K8s的Service