Apache SkyWalking Helm Chart 使用教程
1. 项目的目录结构及介绍
Apache SkyWalking Helm Chart 的目录结构如下:
skywalking-helm/
├── chart
│ ├── skywalking
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ ├── templates
│ │ │ ├── _helpers.tpl
│ │ │ ├── deployment.yaml
│ │ │ ├── service.yaml
│ │ │ └── ...
│ │ └── README.md
│ └── ...
├── LICENSE
├── README.md
└── ...
目录结构介绍
-
chart/skywalking/
: 包含 SkyWalking 的 Helm Chart 文件。Chart.yaml
: 描述 Helm Chart 的元数据,如名称、版本等。values.yaml
: 包含 Helm Chart 的默认配置值。templates/
: 包含 Kubernetes 资源文件的模板。_helpers.tpl
: 包含模板助手函数。deployment.yaml
: 定义 SkyWalking OAP 和 UI 的部署。service.yaml
: 定义 SkyWalking 服务的配置。...
: 其他 Kubernetes 资源文件。
README.md
: 提供 Helm Chart 的使用说明。
-
LICENSE
: 项目的许可证文件。 -
README.md
: 项目的总体介绍。
2. 项目的启动文件介绍
SkyWalking Helm Chart 的启动文件主要位于 templates/
目录下,其中最重要的文件是 deployment.yaml
。
deployment.yaml
deployment.yaml
文件定义了 SkyWalking OAP 和 UI 的部署配置。以下是该文件的部分内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "skywalking.fullname" . }}-oap
labels:
app: {{ template "skywalking.name" . }}
chart: {{ template "skywalking.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.oap.replicas }}
selector:
matchLabels:
app: {{ template "skywalking.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "skywalking.name" . }}
release: {{ .Release.Name }}
spec:
containers:
- name: oap
image: "{{ .Values.oap.image.repository }}:{{ .Values.oap.image.tag }}"
ports:
- containerPort: 11800
name: grpc
- containerPort: 12800
name: rest
env:
- name: SW_CLUSTER
value: "kubernetes"
- name: SW_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
resources:
{{ toYaml .Values.oap.resources | indent 10 }}
该文件通过模板变量(如 {{ .Values.oap.replicas }}
)引用了 values.yaml
中的配置值,从而实现动态配置。
3. 项目的配置文件介绍
SkyWalking Helm Chart 的主要配置文件是 values.yaml
。
values.yaml
values.yaml
文件包含了 SkyWalking 部署的所有默认配置值。以下是该文件的部分内容:
oap:
image:
repository: apache/skywalking-oap-server
tag: 8.5.0
pullPolicy: IfNotPresent
replicas: 2
resources:
requests:
memory: "2048Mi"
cpu: "1000m"
limits:
memory: "4096Mi"
cpu: "2000m"
ui:
image:
repository: apache/skywalking-ui
tag: 8.5.0
pullPolicy: IfNotPresent
replicas: 1
resources:
requests:
memory: "512Mi"
cpu: "200m"
limits: