使用helm3在k8s上部署SkyWalking

 

一、前言

helm3入門:https://www.jianshu.com/p/7b34887c90c7

Apache SkyWalking Kubernetes:https://github.com/apache/skywalking-kubernetes/tree/v2.0.0

由於之前已經在k8s上部署了elasticsearch7.x集羣(參考:elasticsearch7.x在k8s中的部署),因此我們通過helm3啓動SkyWalking時,不用再啓用elasticsearch集羣,Apache官網有說明:

If not want to deploy a new elasticsearch cluster, this way can be solved.

Only need to close the elasticsearch deployed by chart default and configure the existing elasticsearch connection method.

由於Apache SkyWalking Kubernetes默認的安裝方式是採用的ClusterIP,我們需要改爲NodePort方式。

二、部署

1、下載https://github.com/apache/skywalking-kubernetes.git

2、修改ClusterIP爲NodePort

  • 在skywalking-kubernetes/chart/skywalking/templates下找到oap-svc.yaml文件,修改其中的配置,添加targetPort和nodePort
apiVersion: v1
kind: Service
metadata:
  name: {{ template "skywalking.oap.fullname" . }}
  labels:
    app: {{ template "skywalking.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version }}
    component: "{{ .Values.oap.name }}"
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
spec:
  type: {{ .Values.oap.service.type }}
  ports:
  - port: {{ .Values.oap.ports.rest }}
    targetPort: {{ .Values.oap.ports.rest }} #新添加
    nodePort: 31800  #固定端口,也可以通過helm3模板方式配置
    name: rest
  - port: {{ .Values.oap.ports.grpc }}
    targetPort: {{ .Values.oap.ports.grpc }}#新添加
    name: grpc
    nodePort: 31801 #固定端口,也可以通過helm3模板方式配置
  selector:
    app: {{ template "skywalking.name" . }}
    component: "{{ .Values.oap.name }}"
    release: {{ .Release.Name }}
  • 在skywalking-kubernetes/chart/skywalking下找到values.yaml文件(也可以不配置,而是通過命令替換)

 將oap.service.type改爲NodePort

將ui.service.type改爲NodePort

將ui.service.nodePort端口固定爲31080

  • 啓動

$ cd skywalking-kubernetes/chart

$ helm repo add elastic https://helm.elastic.co

$ helm dep up skywalking
$ helm install skywalking  skywalking -n ns-skywalking  \
        --set elasticsearch.enabled=false \
        --set elasticsearch.config.host=192.168.0.186\
        --set elasticsearch.config.port.http=32000\
        --set elasticsearch.config.user=""\
        --set elasticsearch.config.password=""\

啓動後查看服務和節點狀態

[root@vm186 skywalking]# k get svc --namespace ns-skywalking
NAME                        TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                           AGE
skywalking-skywalking-oap   NodePort   10.100.148.19    <none>        12800:31800/TCP,11800:31801/TCP   18h
skywalking-skywalking-ui    NodePort   10.111.232.168   <none>        80:31080/TCP                      18h
[root@vm186 skywalking]# k get pods  --namespace ns-skywalking
NAME                                        READY   STATUS      RESTARTS   AGE
skywalking-es-init-4nw8q                    0/1     Completed   0          18h
skywalking-es-init-cvbqq                    0/1     Error       0          18h
skywalking-skywalking-oap-5659dc888-9lrxw   1/1     Running     0          18h
skywalking-skywalking-oap-5659dc888-dc6fp   1/1     Running     1          18h
skywalking-skywalking-ui-5978c68ccc-pgv5m   1/1     Running     0          18h

其中skywalking-es-init節點可以不用關注

訪問http://192.168.0.186:31080/可以看到SkyWalking的UI正常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章