美文网首页
KubeOperator-基于Helm安装ELK

KubeOperator-基于Helm安装ELK

作者: do_young | 来源:发表于2020-08-08 09:37 被阅读0次

前置准备

  • 环境确认
    KubeOperator默认安装已经在k8s集群主结点安装了Helm。
    可以在主结点执行命令进行验证。
helm
image.png
  • 下载镜像
    使用docker指令下载相关镜像
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
  • 将镜像上传到registry仓库
    KubeOperator默认会安装一个私有docker仓库。
    要将镜像上传到registry仓库,首先将上面的镜像进行名称修改,在原有镜像名称前加上私有仓库地址路径,如下所示:
 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
... ...
  • 将ELK部署的charts文件下载到K8S集群主结点。
    elastic官方GIT地址下载helm部署文件。

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

ELK安装

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

image.png

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

  • 确认安装配置
    使用以下命令,查看一下默认elasticsearch安装配置
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

相关文章

  • KubeOperator-基于Helm安装ELK

    前置准备 环境确认KubeOperator默认安装已经在k8s集群主结点安装了Helm。可以在主结点执行命令进行验...

  • kubeadm(九)——使用helm

    使用helm安装Jenkins 一、安装helm 进入https://github.com/helm/helm/r...

  • 基于Helm安装sentry

    前言 最初的需求就是在k8s上安装sentry。之前通过自己梳理sentry工程各组件的关联关系做过一次部署。后面...

  • istio 安装

    helm安装 helm template安装 简单安装 带kiali的安装 可以用下面的 Helm 参数启用遥测插...

  • helm

    helm helm介绍 helm安装 chart指引 helm命令helm inithelm listhelm c...

  • helm在kubernetes环境中搭建

    1.安装helm 1.1.安装helm客户端 各个版本的helm:https://github.com/helm/...

  • kubernetes1.13.0安装helm并部署Nginx I

    安装Helm Helm由客户端命helm令行工具和服务端tiller组成,Helm的安装十分简单。 下载helm命...

  • istio helm安装

    helm是istio官方推荐的正式安装方式 安装helm 项目首页:https://github.com/helm...

  • 基于docker安装ELK

    文章目录结构如下: 巨坑提醒:ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装...

  • kubernetes笔记-Helm

    项目首页 https://github.com/helm/helm先安装helm client、使用helm cl...

网友评论

      本文标题:KubeOperator-基于Helm安装ELK

      本文链接:https://www.haomeiwen.com/subject/enbfdktx.html