- https://skywalking.apache.org/events/release-apache-skywalking-kubernetes-helm-chart-4.7.0/
- https://github.com/apache/skywalking-helm/tree/v4.7.0
- https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/
简介
skywalking 是分布式系统的 APM(Application Performance Management,应用程序性能监控)工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。skywalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,,帮助用户从各种平台收集日志、跟踪、指标和事件,并在用户界面上展示它们。
整体架构
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.
- 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
- 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
- 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
- 左部分 SkyWalking UI :负责提供控台,查看链路等等。
环境准备
安装 Helm
Helm现在有个安装脚本可以自动拉取最新的Helm版本并在 本地安装。
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
或者运行以下命令直接安装。
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
准备ES集群
安装过程请参阅:https://qiangsh.blog.csdn.net/article/details/139964647
验证ES集群状态(已安装现成的ES)
我的Elasticsearch 当前使用 7.17.3 版本
# kubectl get svc/es-quickstart-es-http -n apm
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
es-quickstart-es-http ClusterIP 10.247.193.180 <none> 9200/TCP 3d17h
# 获取elastic-internal用户密码(根据实际用户执行)
PASSWORD=$(kubectl get secret es-quickstart-es-elastic-user -n apm -o go-template='{{ index .data "elastic" | base64decode }}')# 验证集群健康状态
kubectl exec es-quickstart-es-default-0 -n apm -- curl -s -u "elastic:$PASSWORD" -k "https://es-quickstart-es-http:9200/_cluster/health?pretty"
准备docker镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn","https://docker.m.daocloud.io","https://gcr.m.daocloud.io","https://docker.laoex.link"],"experimental": true
}
EOF
重启docker(视实际情况执行)
sudo systemctl daemon-reload
#sudo systemctl restart docker
#sudo systemctl status docker
拉取镜像
docker pull apache/skywalking-ui:10.1.0
docker pull apache/skywalking-oap-server:10.1.0
镜像下载后可上传到本地镜像仓库。
部署skywalking
创建命令空间
kubectl create namespace ops-skywalking
设置环境变量
export SKYWALKING_RELEASE_NAME=skywalking # change the release name according to your scenario
export SKYWALKING_RELEASE_NAMESPACE=ops-skywalking # change the namespace to where you want to install SkyWalking
获取 Skywalking 安装包
安装包下载地址:https://download.csdn.net/download/qianghong000/90105380
下载Chart安装包
wget https://dlcdn.apache.org/skywalking/kubernetes/4.7.0/skywalking-helm-4.7.0.tgz
tar zxvf skywalking-helm-4.7.0.tgz# 备份配置
cp skywalking-helm/values.yaml{,.bak}
Helm 图表安装
使用现有ElasticSearch安装特定版本的 SkyWalking
ElasticSearch 建议使用与 ElasticSearch 版本对应的 Helm Chart 版本。
图表详细配置
Chart 详细配置可以参阅Chart Readme
在部署 SkyWalking 时,您必须明确设置必需的值。
名称 | 描述 | 例子 |
---|---|---|
oap.image.tag | OAP docker 镜像标签 | 10.1.0 |
oap.storageType | OAP 的存储类型 | elasticsearch, postgresql, banyandb, etc. |
ui.image.tag | UI docker 镜像标签 | 10.1.0 |
您可以通过命令行(例如--set oap.image.tag=10.1.0 --set oap.storageType=elasticsearch
)设置这些必需的值,或者在单独的文件中编辑它们(例如values.yaml,