Elasticsearch 部署
Skywalking OAP Server 会将数据存储到 Elasticsearch 中,并通过 Elasticsearch 进行数据查询和分析。Elasticsearch 安装请参考 https://www.jianshu.com/p/d038540736bc
设置环境变量
# 配置安装helm软件的名称
export SKYWALKING_RELEASE_NAME=skywalking
# 配置skywalking安装到k8s的命名空间
export SKYWALKING_RELEASE_NAMESPACE=kube-ops
# 配置helm仓库名称
export REPO=skywalking
helm添加仓库
$ helm repo add ${REPO} https://apache.jfrog.io/artifactory/skywalking-helm
把skywalking安装包拉取下来
helm pull ${REPO}/skywalking --untar
修改values.yaml
镜像地址可以改成https://hub.docker.com上的地址
cp values.yaml{,.bak}
vim values.yaml
elasticsearch:
...
config:
host: elasticsearch-master-headless.kube-ops #es地址
password:
port:
http: 9200
user:
enabled: false #前面部署es了,所以这里就不部署了
...
oap:
antiAffinity: soft
dynamicConfigEnabled: false
env: null
envoy:
als:
enabled: false
image:
pullPolicy: IfNotPresent
repository: apache/skywalking-oap-server
tag: 9.7.0
storageType: elasticsearch
....
ui:
image:
pullPolicy: IfNotPresent
repository: apache/skywalking-ui
tag: 9.7.0
部署&&升级
## 安装部署
$ helm install skywalking skywalking -n kube-ops --values ./skywalking/values.yaml
## 更新
$ helm upgrade skywalking skywalking -n kube-ops --values ./skywalking/values.yaml
## 卸载
$ helm uninstall skywalking -n kube-ops
查看部署情况
$ kubectl get all -n kube-ops
NAME READY STATUS RESTARTS AGE
pod/elasticsearch-master-0 1/1 Running 0 7d3h
pod/elasticsearch-master-1 1/1 Running 0 7d3h
pod/elasticsearch-master-2 1/1 Running 0 7d3h
pod/skywalking-es-init-spc6l 0/1 Completed 0 89m
pod/skywalking-oap-6bcf66dccc-flrnm 1/1 Running 2 (87m ago) 89m
pod/skywalking-oap-6bcf66dccc-hxzwm 1/1 Running 3 (85m ago) 89m
pod/skywalking-ui-554cfb47f8-5zr46 1/1 Running 0 89m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/elasticsearch-master NodePort 192.168.246.116 <none> 9200:32222/TCP,9300:32754/TCP 7d3h
service/elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 7d3h
service/skywalking-oap ClusterIP 192.168.238.69 <none> 11800/TCP,12800/TCP 89m
service/skywalking-ui ClusterIP 192.168.60.142 <none> 80/TCP 89m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/skywalking-oap 2/2 2 2 89m
deployment.apps/skywalking-ui 1/1 1 1 89m
NAME DESIRED CURRENT READY AGE
replicaset.apps/skywalking-oap-6bcf66dccc 2 2 2 89m
replicaset.apps/skywalking-ui-554cfb47f8 1 1 1 89m
NAME READY AGE
statefulset.apps/elasticsearch-master 3/3 7d3h
NAME STATUS COMPLETIONS DURATION AGE
job.batch/skywalking-es-init Complete 1/1 3m34s 89m
配置ingress访问web
vim skywalking-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: skywalking-ui
namespace: kube-ops
spec:
rules:
- host: dev-skywalking.test.com
http:
paths:
- backend:
service:
name: skywalking-ui
port:
number: 80
path: /
pathType: ImplementationSpecific
skywalking数据删除策略
默认为3天
cat /skywalking/config/application.yml |grep recordDataTTL
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
可以在deployment.yaml中通过env修改为30天
{{- end }}
env:
- name: JAVA_OPTS
value: "-Dmode=no-init {{ .Values.oap.javaOpts }}"
- name: SW_CLUSTER
value: kubernetes
- name: SW_CLUSTER_K8S_NAMESPACE
value: "{{ .Release.Namespace }}"
- name: SW_CORE_RECORD_DATA_TTL
value: "30"
然后更新helm
helm upgrade skywalking -n kube-ops ./skywalking
查看是否生效
进入pod 执行 echo $SW_CORE_RECORD_DATA_TTL