添加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