本文主要讲述的是如何使用 Helm Charts 将 SkyWalking 部署到 Kubernetes 集群中,相关文档能够参考skywalking-kubernetes 和 backend-k8s 文档 。git
目前推荐的四种方式:github
注意:目前 skywalking 的 chart 尚未提交到官方仓库,请先参照前两种方式进行部署docker
1.配置 helm 环境,参考 Helm 环境配置 ,若是你要部署helm2 相关chart 能够直接配置 helm2 的相关环境apache
2.克隆/下载ZIP skywalking-kubernetes 这个仓库,仓库关于chart的目录结构以下api
helm-chartapp
- helm2curl
- 6.0.0-GAelasticsearch
- 6.1.0google
- helm3url
- 6.3.0
- 6.4.0
克隆/下载ZIP 完成后进入指定目录打包对应版本的chart
cd skywalking-kubernetes/helm-chart/<helm-version>/<skywalking-version>复制代码
注意:helm-version 为对应的helm版本目录,skywalking-version 为对应的 skywalking 版本目录,下面以helm3 和 skywalking 6.3.0 为例
cd skywalking-kubernetes/helm-chart/helm3/6.3.0复制代码
3.因为skywalking 依赖 elasticsearch 做为存储库,执行如下命令更新依赖,默认会从官方repo进行拉取
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 charts
若是官方 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:codeinnerpeacez_githubskywalking-kuberneteshelm-charthelm36.3.0skywalking-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复制代码
- 日拱一卒,不期速成
四种方式均可以进行部署,若是你想要自定义chart ,须要使用上述两种本地方法及harbor 存储的方式来进行部署.