Apache SkyWalking Kubernetes Deployment Helm Chart

Clone this repo:
  1. ab5567a add .Values.oap.initEs to work with ES initial (#88) by williamyao1982 · 6 weeks ago master
  2. a97e23b Add "pods/log" to OAP so on-demand Pod log can work (#87) by kezhenxu94 · 6 weeks ago
  3. a7af8ba Use `contains` instead of `hasPrefix` so `zipkin-elasticsearch` storage can work (#86) by geffzhang · 2 months ago
  4. 1ae3f6c Prepare for release 4.2.0 (#85) by mrproliu · 8 months ago v4.2.0
  5. e6166c0 Fix the satellite could not run when exists config (#84) by mrproliu · 8 months ago

Apache SkyWalking Kubernetes

GitHub stars Twitter Follow

SkyWalking Kubernetes repository provides ways to install and configure SkyWalking in a Kubernetes cluster. The scripts are written in Helm 3.

Chart Detailed Configuration

Chart detailed configuration can be found at Chart Readme

There are required values that you must set explicitly when deploying SkyWalking.

namedescriptionexample
oap.image.tagthe OAP docker image tag9.1.0
oap.storageTypethe storage type of the OAPelasticsearch, postgresql, etc.
oap.initEsneed to initial ElasticSearchtrue, false
ui.image.tagthe UI docker image tag9.1.0

You can set these required values via command line (e.g. --set oap.image.tag=9.1.0 --set oap.storageType=elasticsearch), or edit them in a separate file(e.g. values.yaml, values-es7.yaml) and use -f <filename> or --values=<filename> to set them.

Install

Let's set some variables for convenient use later.

export SKYWALKING_RELEASE_NAME=skywalking  # change the release name according to your scenario
export SKYWALKING_RELEASE_NAMESPACE=default  # change the namespace to where you want to install SkyWalking

Install released version using Helm repository

export REPO=skywalking
helm repo add ${REPO} https://apache.jfrog.io/artifactory/skywalking-helm
helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=9.1.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=9.1.0 \
  --set elasticsearch.imageTag=6.8.6

Install development version using master branch

This is needed only when you want to install from master branch.

export REPO=chart
git clone https://github.com/apache/skywalking-kubernetes
cd skywalking-kubernetes
helm repo add elastic https://helm.elastic.co
helm dep up ${REPO}/skywalking

Install a specific version of SkyWalking & Elasticsearch

In theory, you can deploy all versions of SkyWalking that are >= 6.0.0-GA, by specifying the desired oap.image.tag/ui.image.tag.

Please note that some configurations that are added in the later versions of SkyWalking may not work in earlier versions, and thus if you specify those configurations, they may take no effect.

here are some examples.

  • Deploy SkyWalking 9.1.0 & Elasticsearch 6.8.6
helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=9.1.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=9.1.0 \
  --set elasticsearch.imageTag=6.8.6
  • Deploy SkyWalking 9.1.0 & Elasticsearch 7.5.1
helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=9.1.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=9.1.0 \
  --set elasticsearch.imageTag=7.5.1
  • Deploy SkyWalking 6.6.0 with Elasticsearch 7

Note: because SkyWalking OAP used 2 different Docker images for ElasticSearch 7 and ElasticSearch 6 in versions prior to 8.8.0, you have to set the right image tag for the corresponding ElasticSearch version.

helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=6.6.0-es7 \
  --set oap.storageType=elasticsearch7 \
  --set ui.image.tag=6.6.0
  • Deploy SkyWalking 6.5.0
helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=6.5.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=6.5.0

Install a specific version of SkyWalking with an existing Elasticsearch

Modify the connection information to the existing elasticsearch cluster in file values-my-es.yaml.

helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  -f ./skywalking/values-my-es.yaml

Install SkyWalking with Satellite

Enable the satellite as gateway, and set the satellite image tag.

helm install "${SKYWALKING_RELEASE_NAME}" ${REPO}/skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set satellite.enabled=true \
  --set satellite.image.tag=v0.4.0

After satellite have been installed, you should replace the oap address to the satellite address, the address from agent or istio, such as skywalking-satellite.istio-system:11800.

Customization

  • Use your own configuration files

Put your own configuration files according to the overridable files under the working directory, files/conf.d, they will override the counterparts in the Docker image.

  • Pass environment variables to OAP

The SkyWalking OAP exposes many configurations that can be specified by environment variables, as listed in the main repo. You can set those environment variables by --set oap.env.<ENV_NAME>=<ENV_VALUE>, such as --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh.

The environment variables take priority over the overrode configuration files.

Contact Us

  • Submit an issue
  • Mail list: dev@skywalking.apache.org. Mail to dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.
  • Join skywalking channel at Apache Slack. If the link is not working, find the latest one at Apache INFRA WIKI.
  • QQ Group: 392443393(2000/2000, not available), 901167865(available)

LICENSE

Apache 2.0