本文主要講述的是如何使用 Helm Charts 將 SkyWalking 部署到 Kubernetes 集羣中,相關文檔能夠參考skywalking-kubernetes 和 backend-k8s 文檔 。git
目前推薦的四種方式:github
注意:目前 skywalking 的 chart 尚未提交到官方倉庫,請先參照前兩種方式進行部署docker
1.配置 helm 環境,參考 Helm 環境配置 ,若是你要部署helm2 相關chart 能夠直接配置 helm2 的相關環境shell
2.克隆/下載ZIP skywalking-kubernetes 這個倉庫,倉庫關於chart的目錄結構以下apache
> helm-chart > > - helm2 > - 6.0.0-GA > - 6.1.0 > - helm3 > - 6.3.0 > - 6.4.0api
克隆/下載ZIP 完成後進入指定目錄打包對應版本的chartapp
cd skywalking-kubernetes/helm-chart/<helm-version>/<skywalking-version>
注意:helm-version 爲對應的helm版本目錄,skywalking-version 爲對應的 skywalking 版本目錄,下面以helm3 和 skywalking 6.3.0 爲例curl
cd skywalking-kubernetes/helm-chart/helm3/6.3.0
3.因爲skywalking 依賴 elasticsearch 做爲存儲庫,執行如下命令更新依賴,默認會從官方repo進行拉取elasticsearch
helm dep up skywalking
> Hang tight while we grab the latest from your chart repositories... > ...Successfully got an update from the "stable" chart repository > Update Complete. ⎈Happy Helming!⎈ > Saving 1 charts > Downloading elasticsearch from repo https://kubernetes-charts.storage.googleapis.com/ > Deleting outdated chartsgoogle
若是官方 repo 不存在,請先添加官方倉庫
helm repo add stable https://kubernetes-charts.storage.googleapis.com
> "stable" has been added to your repositories
4.打包 skywalking , 執行如下命令
helm package skywalking/
> Successfully packaged chart and saved it to: C:\code\innerpeacez_github\skywalking-kubernetes\helm-chart\helm3\6.3.0\skywalking-0.1.0.tgz
打包完成後會在當前目錄的同級目錄生成 .tgz 文件
ls
> skywalking/ skywalking-0.1.0.tgz
因爲上文配置的 helm 爲 helm3 ,可是helm 3中移除了 helm serve 的相關命令,因此須要另一個環境配置helm2 的相關環境,下載 helm 2.14.3 的二進制文件,配置基本上沒有大的差異,不在贅述
初始化 helm
helm init
將上文生成的 skywalking-0.1.0.tgz 文件複製到 helm 相關目錄 /root/.helm/repository/local
,啓動 serve
helm serve --address <ip>:8879 --repo-path /root/.helm/repository/local
注意: ip 爲要可以被上文配置 helm 3 環境的機器訪問到
能夠訪問一下看看服務 serve 是否啓動成功
curl ip:8879
1.在helm3 環境中添加啓動的本地 repo
helm repo add local http://<ip>:8879
2.查看 skywalking chart 是否存在於本地倉庫中
helm search skywalking
> NAME CHART VERSION APP VERSION DESCRIPTION
> local/skywalking 0.1.5 6.3.0 Apache SkyWalking APM System
3.部署
helm -n test install skywalking local/skywalking
這樣 skywalking 就部署到了 k8s 集羣中的 test 命名空間了,至此本地安裝skywalking 就完成了。
若是你不想存儲到 chart 到倉庫中也能夠直接使用本地文件部署 skywalking,按照上面的步驟將skywalking chart 打包完成以後,直接使用如下命令進行部署
helm -n test install skywalking skywalking-0.1.0.tgz
harbor 目前已經提供了,charts repo 的能力,這樣就能夠將 docker 鏡像和 chart 存儲在一個倉庫中了,方便維護,具體harbor 的部署方法參考 Harbor 做爲存儲倉庫存儲 chart
目前沒有發佈到官方 repo 中,後續發佈完成後,只須要執行下面命令便可
helm install -n test stable/skywalking
> - 點擊查看個人Github > - 點擊查看個人我的Blog > - 日拱一卒,不期速成
四種方式均可以進行部署,若是你想要自定義chart ,須要使用上述兩種本地方法及harbor 存儲的方式來進行部署.</ip></ip></skywalking-version></helm-version>