CKA:用helm3部署EFK

运行环境:
file
其中vms61是master,vms62和vms62位worker。

在所有节点上修改/var/lib/kubelet/config.yaml,在最后一行添加:

featureGates:
  CSIMigration: false

否则查看pod状态时会报如下错误:
MountVolume.SetUp failed for volume "default-token-bd9jk" : failed to sync secret cache: timed out waiting for the condition
不过不改也没关系。

1.增加efk官方helm源

[root@vms61 ~]# helm repo add elastic https://helm.elastic.co
"elastic" has been added to your repositories
[root@vms61 ~]#
[root@vms61 ~]# helm repo list
NAME    URL                                      
azure   http://mirror.azure.cn/kubernetes/charts/
ali     https://apphub.aliyuncs.com              
elastic https://helm.elastic.co                  
[root@vms61 ~]#

2.下载并安装elasticsearch

[root@vms61 ~]# mkdir efk ; cd efk
[root@vms61 efk]#
[root@vms61 efk] helm pull elastic/elasticsearch

用命令tar zxvf elasticsearch-7.9.1.tgz解压下载下来的elasticsearch-7.9.1.tgz,得到一个目录elasticsearch。
用vim 编辑elasticsearch/values.yaml,修改如下部分:
file
因为我们环境一台master,2台worker,所以replicas修改为2。
file
因为不准备使用持久性存储,所以这里把persistence下面的enabled值有true改为false。
file
这里用的指定了elasticsearch用的镜像,最好是提前在所有节点上提前下载下来,之后保存退出。

[root@vms61 efk]# helm install elastic  elasticsearch
NAME: elastic
LAST DEPLOYED: Sat Sep 12 18:38:08 2020
NAMESPACE: ns6
STATUS: deployed
REVISION: 1
NOTES:
1. Watch all cluster members come up.
  $ kubectl get pods --namespace=ns6 -l app=elasticsearch-master -w
2. Test cluster health using Helm test.
  $ helm test elastic --cleanup
[root@vms61 efk]#

命令里的elastic是应用的名字可以随意写,elasticsearch是解压出来的文件夹。
这里大概1分钟左右,对应的pod会运行起来:

[root@vms61 efk]# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
elasticsearch-master-0          1/1     Running   0          80s
elasticsearch-master-1          1/1     Running   0          79s
[root@vms61 efk]#

3.下载并安装filebeat

[root@vms61 efk] helm pull elastic/filebeat

用命令tar zxvf filebeat-7.9.1.tgz解压下载下来的 filebeat-7.9.1.tgz,得到一个目录filebeat。
用vim 编辑filebeat/values.yaml,查看如下部分:
file
建议提前把所需镜像在所有节点上下载下来,其他不需要编辑什么,保存退出。
开始安装filebeat:

[root@vms61 efk]# helm install fb filebeat
NAME: fb
LAST DEPLOYED: Sat Sep 12 18:47:20 2020
NAMESPACE: ns6
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Watch all containers come up.
  $ kubectl get pods --namespace=ns6 -l app=fb-filebeat -w
[root@vms61 efk]#

命令里的fb是应用的名字可以随意写,filebeat是解压出来的文件夹。
大概20秒就好:

[root@vms61 efk]# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
elasticsearch-master-0   1/1     Running   0          9m33s
elasticsearch-master-1   1/1     Running   0          9m32s
fb-filebeat-lgm76        1/1    Running   0          21s
fb-filebeat-trz5m        1/1     Running   0          21s
[root@vms61 efk]#

3.安装metricbeat

下载metricbeat:

[root@vms61 efk] helm pull elastic/metricbeat

用命令tar zxvf metricbeat-7.9.1.tgz解压下载下来的 metricbeat-7.9.1.tgz,得到一个目录metricbeat。
类似前面的方法把所有的镜像提前在所有节点下载下来,开始安装:

[root@vms61 efk]# helm install metric metricbeat
NAME: metric
LAST DEPLOYED: Sat Sep 12 18:53:55 2020
NAMESPACE: ns6
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Watch all containers come up.
  $ kubectl get pods --namespace=ns6 -l app=metric-metricbeat -w
[root@vms61 efk]# 

命令里的metric是应用的名字可以随意写,metricbeat是解压出来的文件夹。
这里大概40秒钟左右,对应的pod会运行起来:

[root@vms61 efk]# kubectl get pods
NAME                                       READY   STATUS   RESTARTS   AGE
    ...输出...
metric-kube-state-metrics-76c5b9fdbf-4jmnr  1/1    Running   0          46s
metric-metricbeat-bbbxx                     1/1    Running   0          46s
metric-metricbeat-metrics-696b596c6f-lwp74  1/1    Running   0          46s
metric-metricbeat-z7x7v                     1/1    Running   0          46s
[root@vms61 efk]#

4.下载安装kibana

[root@vms61 efk]#  helm pull elastic/kibana

用命令tar zxvf kibana-7.9.1.tgzz解压下载下来的kibana-7.9.1.tgz,得到一个目录kibana。
类似前面的方法把所有的镜像提前在所有节点下载下来,并把服务类型改为NodePort:
file
保存退出之后,开始安装:

[root@vms61 efk]# helm install kb kibana
NAME: kb
LAST DEPLOYED: Sat Sep 12 18:58:36 2020
NAMESPACE: ns6
STATUS: deployed
REVISION: 1
TEST SUITE: None
[root@vms61 efk]#

命令里的kb是应用的名字可以随意写,kibana是解压出来的文件夹。
这里大概2分钟左右,对应的pod会运行起来:

[root@vms61 efk]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
    ...输出...
kb-kibana-d97c78c6-nqt5p      1/1     Running   0          2m1s
    ...输出...
[root@vms61 efk]# 

注意两台worker的配置是:分别8G内存,4核CPU

5.访问kibana

通过kubectl get svc查看当前kibana对应的NodePort端口为30729,在浏览器里输入192.168.26.61:30729回车
file
file

相关新闻

                                                                                                                                    RHCE9学习指南连载,点击阅读