添加helm仓库 skywalking

取别名 sw 名称可以任意写

helm repo add sw https://apache.jfrog.io/artifactory/skywalking-helm
helm repo list

在这里插入图片描述

这里 sw 要与上面的 sw 名称 一样
从 Helm 仓库下载 SkyWalking 的 Chart 包,–untar 并自动解压到当前目录

helm pull sw/skywalking --untar

在这里插入图片描述

进目录

cd skywalking/

测试环境用的配置

vim sky.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: ""

生产环境用的配置

vim sky.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

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段参数

      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
        - 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 -Dskywalking.agent.sample_n_per_3_secs=100"
        volumeMounts:
        - name: skywalking-agent
          mountPath: /skywalking
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐