k8s-9.部署elk日志收集

采用文章大佬–为了提高自己的k8s熟练,按照这位大佬的文章做了一遍

https://www.yuque.com/cuiliang-s1qrv/k8s/yyiswl

一、准备工作

什么是helm,文章了解
https://blog.csdn.net/cuichongxin/article/details/121060695?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165925526516780357251314%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165925526516780357251314&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-121060695-null-null.142^v35^pc_rank_34&utm_term=heml%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187
1、heml

(1) 传统k8s部署缺点:

只适合部署单一或少数服务应用,比较合适。
当有较多微服务时候,每个服务都需要编写维护大量资源清单,
版本管理特别不方便。
(2) 使用helm可以解决那些问题?
(1)使用helm可以把yaml作为一个整体管理
(2)实现yaml高效复用
(3)实现应用级别的版本管理
二、helm介绍
1、helm是k8s包管理工具,可以方便的把之前打包好的yaml文件部署到k8s上。

2、helm三个重要概念
(1) heml 是命令行客户端工具,用于chart创建、打包、发布、部署管理
(2) Chart 把yaml文件进行打包,yaml的集合
(3) Release 基于chart部署的实体,应用级别的版本管理

三、helm在2019年发布V3版本,有变化
(1)Tiller被移除
(2)Release支持在不同命名空间进行重用
(3)Chart可以推送到Docker镜像仓库中
helm是k8s的包管理工具,类似于centos的yum,k8s将管理的资源都抽象成api,并且推荐使用声明方式创建,修改,删除这些对象,每个 API 对象都通过一个 yaml 格式或者 json 格式的文本来声明。这带来的一个问题就是这些 API 对象声明文本的管理成本,每当我需要创建一个应用,都需要去编写一堆这样的声明文件,helm就是管理这些api对象的工具,它把创建一个应用所需的所有 Kubernetes API 对象声明文件组合并打包在一起。并提供了仓库的机制便于分发共享,还支持模版变量替换,同时还有版本的概念,使之能够对一个应用进行版本的管理

heml安装

链接:https://pan.baidu.com/s/1DLKcKreLIHXcpJoVWCFADg?pwd=r3bl 
提取码:r3bl
#解压安装包
tar zxvf helm-v3.4.0-linux-amd64.tar.gz
#移动到/usr/bin目录下
mv helm /usr/bin
#使用heml命令验证
helm
2、配置heml仓库

(1) 添加仓库

# 微软heml仓库地址  http://mirror.azure.cn/kubernetes/charts
# 阿里heml仓库地址 https://apphub.aliyuncs.com
helm repo add <仓库名称> <仓库地址>
#更新heml仓库
helm repo update
添加elk仓库
`# helm repo add elastic https://helm.elastic.co` 
创建elk名称空间
`# kubectl create namespace elk`

image-20220731164430326

二、部署Elasticsearch

将chart包下载本地
`# helm fetch elastic/elasticsearch` 

image-20220731164643749

修改elasticsearch/values.yaml配置文件(降低配置要求)
  • master节点数改为1

image-20220731164840473

  • 不使用持久卷

image-20220731165018447

helm安装chart包
helm install elasticsearch -f values.yaml elastic/elasticsearch --namespace elk

image-20220731165138365

验证结果
  • 查看pod状态
kubectl get pods --namespace=elk -l app=elasticsearch-master

image-20220731184000412

删除pod
helm uninstall elasticsearch -f values.yaml elastic/elasticsearch --namespace elk 

image-20220731190119648

三、部署Filebeat

将chart包下载本地
# helm fetch elastic/filebeat
  1. 安装chart包

    `# helm install filebeat elastic/filebeat --namespace elk` 
    
  2. 验证结果

  • 查看pod状态

image-20220731190201494

四、部署Logstash

将chart包下载本地
`# helm fetch elastic/logstash` 
  1. 修改logstash/values.yaml配置文件
  • 不使用持久卷

image-20220731190247640

  1. helm安装chart包

    `# helm install logstash -f values.yaml elastic/logstash --namespace elk` 
    
  2. 验证结果

  • 查看pod状态

image-20220731190314230

五、部署 kibana

将chart包下载至本地
`# helm fetch elastic/kibana` 
  1. 编辑kibana/values.yaml配置文件
  • 服务类型改为nodeport

image-20220731190435593

  1. helm安装chart包

    `# helm install kibana -f values.yaml elastic/kibana --namespace elk` 
    
  2. 结果验证

  • 查看pod状态

image-20220731190501023

六、web访问测试

image-20220731190529366

  `# helm install kibana -f values.yaml elastic/kibana --namespace elk` 
  1. 结果验证
  • 查看pod状态

[外链图片转存中…(img-GF3RJhQm-1659266110225)]

六、web访问测试

[外链图片转存中…(img-77fDRxvl-1659266110225)]

image-20220731190548853

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐