# k8s部署ES集群,skywalking集群以及微服务监控
? 记录一次自己部署ES,以及skywalking踩过的坑。最初在windows部署ES和skywalking单机版,后来在linux部署单机版,再转向k8s集群部署,再到最后对ES集群以及skywalking集群版本的升级,整个部署过程还算顺利,但仍然有几个比较大的坑需要去踩,在这里记录一下。
? 原版本: ES 6.5.4 Skywalking-oap 8.7.0 skywalking-ui 8.7.0 skywalking-agent 8.7.0
? 版本升级:ES7.10 skywalking-oap 8.9.1 skywalking-ui 8.9.1 skywalking-agent 8.9.1
### 一、单击部署
1. ES7自带了JDK11,所以在JDK8是可以部署的,需要进行环境变量的配置,配置为使用自带JDK
2. 在linux环境中启动ES需要自己创建用户,不能用root用户启动
### 二、k8s集群部署
##### 2.1 ES集群部署
1. 在部署6.5版本时,不支持cluster.initial_master_nodes,所以注释掉,集群仍然可以推举出master_node,
但是在部署7.10版本时,不能推选出主节点,必须配置cluster.initial_master_nodes,并且只能配cluster.initial_master_nodes: ["es-cluster-0", "es-cluster-1", "es-cluster-2"]****,不能 .clusterName,会报错
2. 部署ES,需要使用动态创建pv和pvc的资源,必需要先安装nfs或者其他存储服务,并且provisioner的值必须要与nfs中provisioner_Name的值一致,才可以自动创建pv和pvc,否则无法创建。
3. 安装es集群成功后,可以访问集群的健康状态(http://ip:port/_cat/health)以及索引(http://ip:port/_cat/indices),此时索引应该是空的,集群状态是green。
2.2 skywalking集群部署
1. 镜像版本一定要选择正确,我的镜像都是从dockerhub拉取的 docker pull apache ......,skywalking-ui8.7的官方版本报错,这个坑要越过,可以使用8.6或者8.8的都没有问题。
2. 在部署skywalking-ui的时候,要注意SW_OAP_ADDRESS值的书写,在8.7的时候,这种value即可正常部署name: SW_OAP_ADDRESS
value: "skywalking:12800"
,在部署8.9的时候,必须是
name: SW_OAP_ADDRESS
value: "http://skywalking:12800" 这样的书写。
3. 当页面部署好之后,agent接入微服务后,页面展示只有service,所有页面没有数据,拓扑图和链路追踪也没有数据,此时需要清空浏览器的缓存,重新进入页面查看。



