环境信息

  • Skywalking server version:9.2.0
  • Skywalking UI version: 9.2.0
  • Kubernetes version: 1.22.10
  • Chart version: 4.3.0
  • Elasticsearch version: 6.8.6

部署步骤

环境准备

创建命名空间

#  kubectl create ns devops

下载chart包并解压

# wget https://github.com/apache/skywalking-helm/archive/refs/tags/v4.3.0.zip
# unzip v4.3.0.zip

修改配置

进入到解压后的目录并查看目录结构

# cd skywalking-helm-4.3.0/chart/skywalking
# tree . -L 1
.
├── Chart.yaml
├── OWNERS
├── README.md
├── files
├── templates
├── values-es6.yaml
├── values-es7.yaml
├── values-my-es.yaml
└── values.yaml

3 directories, 7 files

以下所有配置都基于对values.yaml文件的编辑实现

# vim values.yaml

Skywalking-oap-server

指定镜像tag
oap:
......
  image:
    repository: apache/skywalking-oap-server
    tag: 9.2.0  # Must be set explicitly
    pullPolicy: IfNotPresent
指定存储类型
oap:
......
  storageType: elasticsearch
不初始化es

因为我使用的是一个已经存在的es集群,所以关闭了此项

oap:
......
  initEs: false # Whether need to initial ES

Skywalking ui

指定镜像tag
ui:
......
  image:
    repository: apache/skywalking-ui
    tag: 9.2.0  # Must be set explicitly
    pullPolicy: Always
配置ingress

因为需要通过浏览器访问,所以需要配置ingress,以供外部访问。

ui:
......
  ingress:
    enabled: true
    annotations:
      kubernetes.io/ingress.class: nginx-internal
      # kubernetes.io/tls-acme: "true"
    path: /
    hosts:
      - xxx.xxx.com

elasticsearch

不为skywalking启动新的 elasticsearch 集群

我使用的是已有的es集群,所以这里配置为false

elasticsearch:
  enabled: false
配置elasticsearch主机等信息
elasticsearch:
  enabled: false
  config:               # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false
    port:
      http: 9200
    host: elasticsearch-client # es service on kubernetes or host
    user: ""         # [optional]
    password: ""     # [optional]
  clusterName: "elasticsearch"
  nodeGroup: "master"

这里使用的是同namespace下elasticsearch-client的servicename作为主机地址,完整的FQDN格式应该是elasticsearch-client.devops.svc.cluster.local

不通过子chart安装elasticsearch

在Chart.yaml文件中,将以下内容添加注释。

#dependencies:
#  - name: elasticsearch
#    version: ~7.5.1
#    repository: https://helm.elastic.co/
#    condition: elasticsearch.enabled

执行安装

部署chart

在devops命名空间中,为chart安装名为skywalking的release

# helm install skywalking -ndevops -f values.yaml .

查看相关pod

# kubectl get pods -ndevops | grep skywalking
skywalking-oap-648b79fb79-5952r                             1/1     Running   0              33m
skywalking-oap-648b79fb79-82ntc                             1/1     Running   0              33m
skywalking-ui-7cb59cc66d-ttqs9                              1/1     Running   0              33m

浏览器访问

使用helm在kubernetes集群上部署skywalking_elasticsearch

参考资料