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
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端口号可以实现访问