背景

之前介绍了AWS云上面的EKS的集中日志方案。这次主要介绍调用链监控了,这里我们用的是Skywalking。监控三王者(EFK+Prometheus+Skywalking)之一。之前AWS云上面使用fluent bit替代EFK方案,其实,AWS云在调用链方面,也有X-ray来替代Skywalking,但是,Skywalking与k8s契合度挺好,这里我们继续使用Skywalking进行调用链监控方案。

前提

假设你已经有k8s集群了。并且本地kubectl能够连上集群正常使用,而且,已经熟悉了helm chart的使用。假设我们已经在AWS云上面已经有一个ES数据库作为Skywalking的存储。

skywalking的一下概念

  • oap:全称Observability Analysis Platform,这个是skywalking的后台服务。
  • ui:这个skywalking的ui界面。
    简单架构如下:
    skywalking架构

helm chart部署skywalking

这种方式,会顺便部署一个es数据库在集群中。具体情况,让我们一步步试试看吧。

export SKYWALKING_RELEASE_VERSION=4.5.0  # skywalking的helm chart项目版本
export SKYWALKING_RELEASE_NAME=skywalking  # helm chart发布skywalking的发布名称
export SKYWALKING_RELEASE_NAMESPACE=skywalking  # 名字空间

开始安装:

helm install "${SKYWALKING_RELEASE_NAME}" \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version "${SKYWALKING_RELEASE_VERSION}" \
  -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=9.7.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=9.7.0 \
  --set oap.replicas=1 \
  --set elasticsearch.enabled=false \
  --set elasticsearch.config.host=xxx.xxx.xxx.xxxx \
  --set elasticsearch.config.port.http=9200 \
  --set elasticsearch.config.user="" \
  --set elasticsearch.config.password="" \
  --create-namespace

这里我选择的skywalking版本是9.7.0版本,这个版本也可以去官网或者docker hub上面翻一翻。

检查

使用如下命令:

# 检查pod
kubectl get pod -n skywalking

得到如下效果:

NAME                                              READY   STATUS      RESTARTS   AGE
skywalking-skywalking-helm-oap-86cc5d8645-dx2bh   1/1     Running     0          154m
skywalking-skywalking-helm-oap-init-2jklz         0/1     Completed   0          154m
skywalking-skywalking-helm-ui-6ff86cbb54-k7bd8    1/1     Running     0          154m

检查svc命令:

kubectl get svc -n skywalking

结果如下:

NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)               AGE
skywalking-skywalking-helm-oap   ClusterIP   10.100.2.192     <none>        11800/TCP,12800/TCP   155m
skywalking-skywalking-helm-ui    ClusterIP   10.100.156.114   <none>        80/TCP                155m

使用如下命令,打开skywalking-ui页面:

kubectl port-forward svc/skywalking-skywalking-helm-ui 8080:80 --namespace skywalking

打开SkyWalking页面,如下链接:

http://127.0.0.1:8080

具体效果如下:
Skywalking-UI页面

总结

这就是Skywalking在k8s上面的部署方式。前提是我们有ES作为Skywalking的存储。下一次,我们通过自己制作一个边车镜像作为spring boot的skywalking的agent,把调用链监控使用起来。

参考

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐