这个展示库包括一个示例音乐应用程序和其他清单,以展示 SkyWalking 的主要功能。音乐应用程序由几个用不同编程语言编写的微服务组成。这是架构:

在这里插入图片描述

用法

展示使用GNU Make和 Docker 容器来运行命令,因此请确保您已make安装并运行 Docker 守护程序。

前提条件

要部署此展示应用程序的全部功能,您可能需要最多 4 个 CPU 内核和 4 GB 内存,如果您发现容器/Pod 无法启动,请增加 Docker 守护进程资源或 Kubernetes 集群资源。或者,如果您不想增加资源,也可以只部署您感兴趣的部分功能,通过定制指南。

快速开始

确保您有一个正在运行的 Kubernetes 集群并且kubectl可以访问该集群。

git clone https://github.com/apache/skywalking-showcase.git
cd skywalking-showcase
make deploy.kubernetes

这将安装 SkyWalking 组件,包括具有 2 个节点的集群模式 OAP、SkyWalking RocketBot UI、具有 SkyWalking 代理的微服务、没有 SkyWalking 代理但由 Istio 管理的微服务、2 个 Pod 来模拟虚拟机并将指标导出到 SkyWalking,并启用 kubernetes 集群监控以及 SkyWalking 的自我观察性。

如需更高级的部署,请查看官方的自定义文档。

请注意,当在本地运行此展示(例如 KinD)时,图像会在 KinD 中下载,这可能需要 10 分钟以上(取决于本地网络)。make deploy.kubernetes如果某些超时错误中断进程,请重新运行。

定制

Makefile.in通过指定具有相同名称的环境变量,可以覆盖中定义的变量以自定义展示,例如:

export ES_VERSION=7.14.0
make <target>

或直接在make命令中指定,例如:make <target> ES_VERSION=7.14.0.

运行make help以获取更多信息。

特征

FEATURE_FLAGS该展示由一组带有功能标志的场景组成,您可以通过覆盖定义的变量来部署其中一些您感兴趣的场景,Makefile.inCustomization中所述,例如:

make deploy.kubernetes FEATURE_FLAGS=single-node,agent

不同平台(KubernetesDocker Compose)的功能标志不一定相同,因此请确保指定正确的功能标志。

目前,支持的功能有:

姓名描述笔记
java-agent-injector使用 java 代理注入器注入 Skywalking Java 代理并在启用其他 SkyWalking 代理的情况下部署微服务。微服务包括 Java、NodeJS 服务器、浏览器、Python 的代理。
cluster以集群方式部署 SkyWalking OAP,2 个节点,SkyWalking RocketBot UI,ElasticSearch 作为存储。只能启用cluster或之一。single-node
single-node只部署一个 SkyWalking OAP 单节点,以及 SkyWalking RocketBot UI、ElasticSearch 作为存储。只能启用cluster或之一。single-node
so11y启用 SkyWalking 自我可观察性。这默认为平台Docker Compose启用。
vm启动 2 个虚拟机并将其指标导出到 SkyWalking。“虚拟机”由 Docker 容器或 Pod 模仿。
als在未启用 SkyWalking 代理的情况下启动微服务,并配置 SkyWalking 以分析其访问日志中的拓扑和指标。istioctl运行此功能需要命令。无代理微服务将在命名空间运行${NAMESPACE}-agentless
kubernetes-monitor部署 OpenTelemetry 并将 Kubernetes 监控指标导出到 SkyWalking 进行分析并在 UI 上显示。
istiod-monitor部署 OpenTelemetry 并将 Istio 控制平面指标导出到 SkyWalking 进行分析并在 UI 上显示。
event部署工具来触发事件,以及 SkyWalking Kubernetes 事件导出器将事件导出到 SkyWalking。

Kubernetes

要在 Kubernetes 中部署示例应用程序,请确保您有kubectl可用的命令,并且它可以成功连接到 Kubernetes 集群。

如果您没有正在运行的集群,您还可以利用KinD(Docker 中的 Kubernetes)minikube来创建集群。

运行kubectl get nodes以检查连接,然后再进行下一步。指示您kubectl无法连接到集群的典型错误消息是:

The connection to the server localhost:8080 was refused - did you specify the right host or port?
部署
# Deploy
make deploy.kubernetes
# Undeploy
make undeploy.kubernetes
# Redeploy
make redeploy.kubernetes # equivalent to make undeploy.kubernetes deploy.kubernetes

Docker Compose(构成)

部署
# Deploy
make deploy.docker
# Undeploy
make undeploy.docker
# Redeploy
make redeploy.docker # equivalent to make undeploy.docker deploy.docker
Logo

开源、云原生的融合云平台

更多推荐