KubeOperator-基于Helm安装ELK

2020-08-08  本文已影响0人  do_young

前置准备

helm
image.png
docker pull docker.elastic.co/logstash/logstash:7.7.1
docker pull docker.elastic.co/kibana/kibana:7.7.7
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.7
docker pull docker.elastic.co/beats/metricbeat:7.7.7
docker pull docker.elastic.co/beats/filebeat:7.7.7
docker pull docker.elastic.co/apm/apm-server:7.7.7

下载完成以后,确认一下


image.png
 docker tag 7f059e3dee67 registry.kubeops.io:8191/docker.elastic.co/logstash/logstash:7.7.1
 docker tag 6de54f813b39 registry.kubeops.io:8191/docker.elastic.co/kibana/kibana:7.7.1
 docker tag 830a894845e3 registry.kubeops.io:8191/docker.elastic.co/docker.elastic.co/elasticsearch/elasticsearch:7.7.1
......

然后在结点上登录镜像私仓库用户

docker login registry.kubeops.io:8191

Username: admin #用户名
Password: #密码,KubeOperator默认为admin123
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

登录以后,将镜像提交到私仓中。

 docker push registry.kubeops.io:8191/docker.elastic.co/logstash/logstash:7.7.1
 docker push registry.kubeops.io:8191/docker.elastic.co/kibana/kibana:7.7.1
 docker push registry.kubeops.io:8191/docker.elastic.co/docker.elastic.co/elasticsearch/elasticsearch:7.7.1
... ...

我这里使用的是7.7.1版本,所以版本链接地址为7.7.1
解压压缩包到指定目录下,如:/home/root/helm/helm-charts-7.7

ELK安装

查看charts目录,每一个目录及为ELK组件的配置文件。
关于Helm Charts的说明,可以查看了解。

image.png

首先需要安装elasticesearch,其它的可以无序安装。

helm install --dry-run --debug ./elasticsearch

通过查看,对参数不对的地方进行调整,主要是修改./helm-charts/elasticsearch/下的values.xml文件,如:
镜像 : 因为提交到私库以后,镜像多了私仓前缀,所以要改为

registry.kubeops.io:8191/docker.elastic.co/elasticsearch/elasticsearch:7.7.1
主结点数量: 因为是测试环境,主结点一个就可以了。
工作结点数量:因为是测试环境,两个结点就可以了,没有多大数据量。


image.png

其它参数就看情况进行配置就行,修改完成以后执行上的命令试安装一下。

helm install --namespace=elk  --name elasticsearch ./elasticsearc

相关日志如下所示:


image.png
kubectl get all -n elk
image.png

*删除安装
如果安装有问题,可以删除安装

helm delete  --purge elasticsearch

通过以上相同方式,安装kibana以及logstash

helm install --dry-run --debug ./kibana
helm install --namespace=elk  --name kibana ./kibana
helm install --dry-run --debug ./logstash
helm install --namespace=elk  --name logstash ./logstash

其它组件安装 - cerebro安装

cerebro可以提供UI界面管理elasticesearch创建的索引文件
首先下载镜像

docker pull lmenezes/cerebro:0.9.2

下载charts

https://kubernetes-charts.storage.googleapis.com/cerebro-1.9.2.tgz

安装

helm install --dry-run --debug ./cerebro
helm install --namespace=elk  --name cerebro ./cerebro

其它注意事项

local-volume

由于使用rook-ceph 异常比较差,而且很容易出现异常(CPU飙升为100%)。
所以后续K8S改为local-volume,但基于helm-charts部署的时候,发现master-0以外的结点一直处于pending状态,后面查询对应pod,发现是没有匹配的pv。
再继续查看,发现除了master-0有创建对应的pv,其它的pod都没有创建对应的pv,所以这个pv需要手动创建一下。
可以基于自动创建的pv作为参考进行修改:elk/elasticsearch-master-elasticsearch-master-0 。
相关配置可以考虑以下:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/bound-by-controller: "yes"
  finalizers:
  - kubernetes.io/pv-protection
  name: local-pv-elk1 #pv name
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 100Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: elasticsearch-master-elasticsearch-master-1 # pvc name
    namespace: elk  # pvc namesapce
  local:
    path: /home/local-volume/elk # k8s node path
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker2.mycluster.k8s.com # k8s nodeName
  persistentVolumeReclaimPolicy: Retain
  storageClassName: storageclass-default
  volumeMode: Filesystem
上一篇 下一篇

猜你喜欢

热点阅读