一、前言
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正常