Helm部署SkyWalking

一 . 部署ElasticSearch

1.下载安装包

复制代码
helm repo add elastic https://helm.elastic.co
helm pull elastic/elasticsearch --version 7.17.3
tar zxvf elasticsearch-7.17.3.tgz
vim values.yaml #手动修改镜像地址为镜像仓库地址
helm install elasticsearch elasticsearch -n skywalking # 我是为了部署SkyWalking特意部署的es , 按需部署

2.创建PV

复制代码
# 我本人是在华为云CCE集群中创建了三个PV , 名为es-cluster-master-es-cluster-master-0 ; es-cluster-master-es-cluster-master-1 ; es-cluster-master-es-cluster-master-2
# 但是 , 需要在执行helm install elasticsearch elasticsearch -n skywalking 这条命令之前创建 , 不然无法部署ES
​
# 一般部署可以通过网友的访问 , 创建三个yaml , 内容为👇 , 需要手动修改下name
apiVersion: "v1"
kind: "PersistentVolume"
metadata:
 name: "es-cluster-master-es-cluster-master-0"
spec:
 capacity:
   storage: "100Gi"
 accessModes:
    - "ReadWriteOnce"
 persistentVolumeReclaimPolicy: Recycle
 hostPath:
   path: /data/db/es-data
复制代码
kubectl apply -f es-pv1.yaml
kubectl apply -f es-pv2.yaml
kubectl apply -f es-pv3.yaml

3.创建密码(我这里没有创建)

可以查看values.yaml文件,中有说明使用secret方式创建密码。

4.部署检测

复制代码
 curl -XGET --user http://172.16.xx.xx:9200/_cat/nodes

5.参考链接

通过helm方式安装elasticsearch 7.17.3_helm安装elasticsearch7-CSDN博客

二 . 部署SkyWalking

1.下载安装包

复制代码
git clone https://github.com/apache/skywalking-kubernetes # 不行的话 , 可以选择去github下载安装包
cd skywalking-kubernetes
helm repo add elastic https://helm.elastic.co

2.更新chart

复制代码
helm dep up chart/skywalking # 更新不了请忽略
helm repo add skywalking https://apache.jfrog.io/artifactory/skywalking-helm

3.新建NameSpace

复制代码
kubectl create namespace skywalking # 我本人的skywalking与ES在同一个namespace下部署的

4. 修改values-my-es.yaml文件

复制代码
cd /data/skywalking-kubernetes/chart/skywalking
vim values-my-es.yaml
复制代码
# 镜像包需要麻烦自己找一下传到本地的镜像仓库
initContainer:
 image: 镜像仓库地址/busybox
 tag: '1.28'
​
oap:
 image:
   repository: 镜像仓库地址/skywalking-oap-server
   tag: 10.1.0
 imagePullSecrets:
   - name: default-secret
 storageType: elasticsearch
​
ui:
 image:
   repository: 镜像仓库地址/skywalking-ui
   tag: 10.1.0
 imagePullSecrets:
   - name: default-secret
​
elasticsearch:
 enabled: false
 config:               # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false
   host: elasticsearch-master # 同一个NameSpace下ES的SVC名称 , 按需修改
   port:
     http: 9200
#   user: "xxx"         # [optional] # ES的用户名密码 , 我这里ES是免密的
#   password: "xxx"     # [optional]

5.helm部署SkyWalking

复制代码
helm install skywalking skywalking/skywalking -n skywalking --values /data/skywalking-kubernetes/chart/skywalking/values-my-es.yaml

6.访问方式

复制代码
kubectl edit svc skywalking-ui -n skywalking
复制代码
# 网友的解决办法 , 我本人是在华为云CCE通过将服务设置为NodePort , 然后配置CCE里面的Ingress实现访问
apiVersion: v1
kind: Service
metadata:
 annotations:
   meta.helm.sh/release-name: skywalking
   meta.helm.sh/release-namespace: skywalking
 labels:
   app: skywalking
   app.kubernetes.io/managed-by: Helm
   chart: skywalking-4.3.0
   component: ui
   heritage: Helm
   release: skywalking
 name: skywalking-ui
 namespace: skywalking
spec:
 clusterIP: 10.43.123.47
 clusterIPs:
 - 10.43.123.47
 externalTrafficPolicy: Cluster
 internalTrafficPolicy: Cluster
 ipFamilies:
 - IPv4
 ipFamilyPolicy: SingleStack
 ports:
 - nodePort: 30001
   port: 80
   protocol: TCP
   targetPort: 8080
 selector:
   app: skywalking
   component: ui
   release: skywalking
 sessionAffinity: None
 type: NodePort
status:
 loadBalancer: {}

7.访问SkyWalking

按照网友的yaml就可以使用nodeIP:nodePort的方式访问skywalking的UI界面了。
我本人通过开通内网的DNS解析 , 网址绑定服务器以及开放8080端口号可以实现访问

8.参考链接

Kubernetes集群通过Helm部署skywalking及测试 - 滴滴滴 - 博客园)

helm3部署skywalking - 灰蓝色的白云梦想 - 博客园