skywalking-kubernetes使用mysql存储

本文档介绍了如何在Kubernetes (k8s) 上部署SkyWalking 6.1.0,并使用MySQL作为存储。详细步骤包括创建namespace,配置00-init.yaml以初始化环境,修改YAML文件以匹配自定义的Persistent Volume Claim (PVC) 名称,以及构建包含Apm-Agent的基础镜像,确保微服务启动时能与SkyWalking server端通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

skywalking-kubernetes

该项目可以迅速将skywalking 6.1.0部署进kubernetes(k8s)

描述

网上找不到在k8s上部署skywalking利用mysql存储的实例.所以自己研究!


安装server端

先自己创建一个namespace或者使用现有项目的namespace:

在6.1.0目录下创建00-init.yaml内容如下:

---
apiVersion: v1
kind: Namespace
metadata:
  name: {
  {your_namespace}}

然后下载yaml,所有的文件里{ {your_namespace}}都改成你自己所需的namespace。mysql的pvc也改成自己所创建的pvc名称,用于数据的持久化存储!

git地址
shigaowu/skywalking-kubernetes

	  clone下来后按需修改,并增加00-init.yaml

              cd 6.1.0
              
              kubectl apply -f 00-init.yaml
              kubectl apply -f mysql
              kubectl apply -f oap
              kubectl apply -f ui

注意c

### Kubernetes使用 MySQL 作为存储后端安装 SkyWalking 8.9.1 #### 准备工作 为了在 Kubernetes 中配置 SkyWalking使用 MySQL 存储数据,需先准备必要的资源文件和服务定义。这包括 MySQL 实例的设置以及 SkyWalking 各组件之间的通信。 #### 创建 MySQL 服务和持久卷声明 (PVC) ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: root-password volumeMounts: - mountPath: /var/lib/mysql name: mysql-persistent-storage ports: - containerPort: 3306 --- apiVersion: v1 kind: Service metadata: name: mysql-service spec: ports: - port: 3306 selector: app: mysql --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi ``` 上述 YAML 文件描述了 MySQL 的部署方式及其对应的 PVC 和服务暴露[^1]。 #### 配置 SkyWalking OAP Server 使用 MySQL 编辑 `application.yml` 或者通过环境变量指定 MySQL 连接参数: ```yaml storage: selector: $STORAGE mysql: datasource: url: jdbc:mysql://mysql-service:3306/sw?useSSL=false&serverTimezone=UTC username: root password: ${MYSQL_ROOT_PASSWORD} ``` 此部分配置告知 SkyWalking 如何连接至 MySQL 数据库实例并保存追踪记录和其他性能指标信息。 #### 构建 SkyWalking 组件的 K8S 资源清单 对于 SkyWalking 自身,在 Kubernetes 环境下的资源配置如下所示: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: skywalking-oap-server spec: replicas: 1 selector: matchLabels: app: skywalking-oap-server template: metadata: labels: app: skywalking-oap-server spec: containers: - name: oap-server image: apache/skywalking-oap-server:8.9.1 args: ["--spring.datasource.url=jdbc:mysql://mysql-service:3306/sw", "--spring.datasource.username=root"] env: - name: STORAGE value: "mysql" - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: root-password readinessProbe: tcpSocket: port: 12800 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: tcpSocket: port: 12800 initialDelaySeconds: 15 periodSeconds: 20 --- apiVersion: v1 kind: Service metadata: name: skywalking-ui spec: type: LoadBalancer ports: - port: 80 targetPort: 12800 selector: app: skywalking-oap-server ``` 这段代码片段展示了如何创建 SkyWalking OAP server 及其 UI 接口的服务,并指定了与之前提到的 MySQL 数据库交互所需的必要参数[^2]。 #### 应用程序接入 SkyWalking Java Agent 为了让应用程序能够被监控,需要引入 SkyWalking 提供的 Java agent jar 包,并按照官方文档指导将其附加到 JVM 参数中去启动应用容器。通常情况下是在 Dockerfile 或者 kubernetes deployment yaml 文件里添加 `-javaagent:/path/to/your-agent.jar` 形式的命令行选项[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值