helm部署skywalking链路追踪 java

添加helm仓库 skywalking

取别名 sw 名称可以任意写

powershell 复制代码
helm repo add sw https://apache.jfrog.io/artifactory/skywalking-helm
helm repo list

这里 sw 要与上面的 sw 名称 一样

从 Helm 仓库下载 SkyWalking 的 Chart 包,--untar 并自动解压到当前目录

powershell 复制代码
helm pull sw/skywalking --untar

进目录

powershell 复制代码
cd skywalking/

测试环境用的配置

powershell 复制代码
vim sky.yaml
yaml 复制代码
# OAP 配置
oap:
  image:
    repository: apache/skywalking-oap-server
    tag: "9.7.0"          
    pullPolicy: IfNotPresent
  storageType: "elasticsearch"  
  replicas: 1              # 单副本数
  javaOpts: "-Xmx1g -Xms1g"
  initEs: true
  service:
    type: ClusterIP

# UI 配置
ui:
  image:
    repository: apache/skywalking-ui
    tag: "9.7.0"
    pullPolicy: IfNotPresent
  replicas: 1
  service:
    type: NodePort       
    externalPort: 80
    internalPort: 8080

# Elasticsearch 配置(使用内置 ES)
elasticsearch:
  enabled: true
  imageTag: "7.17.3"      # 使用 ES 7.x,SkyWalking 9.x 兼容性好
  replicas: 1              # 单节点测试
  persistence:
    enabled: false         # 环境不持久化

  # 资源配置
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 1000m
      memory: 2Gi

  # 单节点配置
  minimumMasterNodes: 1
  roles:
    master: "true"
    data: "true"
    ingest: "true"

# 禁用其他功能
satellite:
  enabled: false

elasticsearch6:
  enabled: false

fullnameOverride: ""
nameOverride: ""

生产环境用的配置

powershell 复制代码
vim sky.yaml
yaml 复制代码
# OAP 配置
oap:
  image:
    repository: apache/skywalking-oap-server
    tag: "9.7.0"
    pullPolicy: IfNotPresent
  storageType: "elasticsearch"
  replicas: 2                      # OAP 可以扩展到 2 个实例
  javaOpts: "-Xmx1g -Xms1g"
  initEs: true
  service:
    type: ClusterIP

  # 资源限制
  resources:
    requests:
      memory: 2Gi    # 给 JVM 堆外内存留空间
      cpu: 500m
    limits:
      memory: 3Gi
      cpu: 1000m

  # 存活探针(防止僵尸进程)
  livenessProbe:
    httpGet:
      path: /health
      port: 12800
    initialDelaySeconds: 60
    periodSeconds: 10

  # 就绪探针(控制流量)
  readinessProbe:
    httpGet:
      path: /health
      port: 12800
    initialDelaySeconds: 30
    periodSeconds: 5

# UI 配置
ui:
  image:
    repository: apache/skywalking-ui
    tag: "9.7.0"
    pullPolicy: IfNotPresent
  replicas: 1
  service:
    type: NodePort
    externalPort: 80
    internalPort: 8080

  # 资源限制
  resources:
    requests:
      memory: 500Mi
      cpu: 100m
    limits:
      memory: 1024Mi
      cpu: 500m

  # 探针配置
  livenessProbe:
    httpGet:
      path: /health
      port: 8080
    initialDelaySeconds: 30
    periodSeconds: 10

# Elasticsearch 3节点集群配置
elasticsearch:
  enabled: true
  imageTag: "7.17.3"
  replicas: 3

  # 持久化存储(重要!)
  persistence:
    enabled: true
  volumeClaimTemplate:
      accessModes:
        - ReadWriteOnce
      storageClassName: "csi-disk"
      resources:
        requests:
          storage: 30Gi

  # 资源配置
  resources:
    requests:
      cpu: 500m
      memory: 2Gi
    limits:
      cpu: 1000m
      memory: 3Gi

  # 集群配置
  minimumMasterNodes: 2
  roles:
    master: "true"
    data: "true"
    ingest: "true"

  # 调度策略
  antiAffinity: "soft"             # 尽量分散到不同节点
  nodeAffinity: {}                 # 可指定节点标签
  tolerations: []                  # 可添加容忍度

  # 性能优化
  esJavaOpts: "-Xmx1g -Xms1g"
  sysctlVmMaxMapCount: 262144
  sysctlInitContainer:
    enabled: true

  # 服务配置
  service:
    type: ClusterIP
    httpPort: 9200
    transportPort: 9300

# 禁用其他功能
satellite:
  enabled: false

elasticsearch6:
  enabled: false

fullnameOverride: ""
nameOverride: ""

安装 skywalking

下面示例是用的 生产的 sky.yaml 配置

直接运行会报错 先替换掉所有的 v1beta1

powershell 复制代码
grep -r v1beta1
find . -type f -exec sed -i 's/v1beta1/v1/g' {} \;
helm install skywalking . --namespace skywalking --create-namespace -f sky.yaml



就可以通过 节点ip+端口访问页面

客户端deploy yaml 的配置

要实现收集数据 需要修改 yaml 主要是改下面3段

如果配置以后启动不了 看下是否是 limit的cpu限制导致的 可以适当调大limit

下面是3段参数

yaml 复制代码
      volumes:
      - name: skywalking-agent
        emptyDir: {}
      initContainers:
      - name: sw-agent-download
        image: apache/skywalking-java-agent:9.6.0-java17
        command: ["cp", "-r", "/skywalking/agent", "/target/"]
        volumeMounts:
        - name: skywalking-agent
          mountPath: /target
yaml 复制代码
        - name: JAVA_TOOL_OPTIONS
          value: "-javaagent:/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=demo-app -Dskywalking.collector.backend_service=skywalking-oap.skywalking.svc.cluster.local:11800"
yaml 复制代码
        volumeMounts:
        - name: skywalking-agent
          mountPath: /skywalking
相关推荐
夕除2 小时前
Mysql--15
java·数据库·mysql
静心观复2 小时前
Python 虚拟环境与 pipx 详解
开发语言·python
卷心菜狗2 小时前
Re.从零开始使用Python构建本地大模型网页智慧聊天机器人
开发语言·python·机器人
smileNicky2 小时前
Linux 系列从多节点的catalina 日志中统计设备调用频次
java·linux·服务器
书到用时方恨少!2 小时前
Python NumPy 使用指南:科学计算的基石
开发语言·python·numpy
2501_933329552 小时前
技术深度拆解:Infoseek舆情系统的全链路架构与核心实现
开发语言·人工智能·分布式·架构
赵丙双2 小时前
spring boot 排除自动配置类的方式和原理
java·spring boot·自动配置
8Qi82 小时前
LeetCode热题100--45.跳跃游戏 II
java·算法·leetcode·贪心算法·编程
bilI LESS2 小时前
Spring Boot接收参数的19种方式
java·spring boot·后端