部署步骤
step 1 资源下载介绍
- 资源下载
- 解压如下

- 资源介绍 | class.yaml | 用于创建 StorageClass | | --- | --- | | deployment.yaml | 用于创建 nfs-provisioner | | elasticsaerch-statefulset.yaml | 用于创建 ES deployment | | elasticsearch_svc.yaml | 用于创建 ES svc | | fluentd.yaml | 用于创建 fluentd 组件 | | kibana.yaml | 创建 kibana组件使用 | | kube-logging.yaml | 创建 kube-logging 命名空间使用 | | pod.yaml | 测试使用-可忽略 | | rbac.yaml | 对 serviceaccount.yaml 创建的 sa 账户进行授权 | | serviceaccount.yaml | 用于创建 nfs-provisioner 的 sa 账户 |
step 2 创建namespace
kubect create ns kube-logging
step 3 创建 NFS 服务
- 选择一台kubernetes集群的node节点,拿到其 IP 地址
- 在该节点上安装 nfs
yum install nfs-util -ysystemctl start nfschkconfig nfs on
- 在该节点上创建共享目录
mkdir /data/v1 -p共享目录为/data/v1该目录可自定义,后续会使用到- 配置:
cat /etc/exports- 如果当前节点IP地址为 192.168.0.6
- 可配置如下内容
/data/v1 *(rw,no_root_squash) - 配置内容规则意义可自行搜索
- 使配置生效
systemctl restart nfs - 查看 NFS 服务状态

step 4 实现NFS动态供给
- 创建 service account
kubectl apply -f serviceaccount.yaml- 查看已经创建的 sa
kubectl get sa
- 对 sa 账号做 rbac 授权
kubectl apply -f rbac.yaml- 查看创建的
ClusterRole ClusterRoleBinding RoleBinding - 查看
ClusterRolekubectl get ClusterRole
- 查看
ClusterRoleBindingkubectl get ClusterRoleBinding
- 查看
RoleBindingkubectl get RoleBinding
- 查看创建的
- 创建 nfs-provisioner
- yaml 修改

kubectl apply -f deployment.yaml- 查看 nfs-provisioner
kubectl get pod -n default
step 5 创建 StorgeClass
kubectl apply class.yaml- 注意事项

- 查看 sc
kubectl get sc 
step 6 创建 ES
- 修改动态存储卷大小,对应文件 elasticsaerch-statefulset.yaml
- 部署 elasticsearch
kubectl apply -f **elasticsaerch-statefulset.yaml**- 查看部署情况

- 部署 svc
kubectl apply -f **elasticsearch_svc.yaml**- 查看
kubectl get svc -n kubelogging 
- 测试 ES
- 本地端口转发
kubectl port-forward es-cluster-0 9200:9200 --namespace=kube-logging - 在另一个终端窗口中——测试访问
curl http://localhost:9200/_cluster/state?pretty - 显示如下则部署成功
- 本地端口转发
step 7 安装 kibana 组件
kubectl apply -f **kibana.yaml**- 修改 svc 类型为 NodePort
kubectl edit svc kibana -n kube-logging- 找到
type: ClusterIp修改为type: NodePort
- 找到
- 测试 kibana,浏览器访问
http://nodeIp:nodePort透出的端口,如下则部署成功
step 8 安装 fluentd 组件
kubectl apply -f fluentd.yaml
部署步骤
step 1 资源下载介绍
- 资源下载 (公网下载)
- 私有化通过平台下载
- 解压如下

- 镜像资源在 efk-master-image.zip 中
- 资源介绍 | class.yaml | 用于创建 StorageClass | | --- | --- | | deployment.yaml | 用于创建 nfs-provisioner | | elasticsaerch-statefulset.yaml | 用于创建 ES deployment | | elasticsearch_svc.yaml | 用于创建 ES svc | | fluentd.yaml | 用于创建 fluentd 组件 | | kibana.yaml | 创建 kibana组件使用 | | kube-logging.yaml | 创建 kube-logging 命名空间使用 | | pod.yaml | 测试使用-可忽略 | | rbac.yaml | 对 serviceaccount.yaml 创建的 sa 账户进行授权 | | serviceaccount.yaml | 用于创建 nfs-provisioner 的 sa 账户 |
step 2 创建namespace
kubect create ns kube-logging
step 3 创建 NFS 服务
- 选择一台kubernetes集群的node节点,拿到其 IP 地址
- 在该节点上安装 nfs
yum install nfs-util -ysystemctl start nfschkconfig nfs on
- 在该节点上创建共享目录
mkdir /data/v1 -p共享目录为/data/v1该目录可自定义,后续会使用到- 配置:
cat /etc/exports- 如果当前节点IP地址为 192.168.0.6
- 可配置如下内容
/data/v1 *(rw,no_root_squash) - 配置内容规则意义可自行搜索
- 使配置生效
systemctl restart nfs - 查看 NFS 服务状态

step 4 实现NFS动态供给
- 创建 service account
kubectl apply -f serviceaccount.yaml- 查看已经创建的 sa
kubectl get sa
- 对 sa 账号做 rbac 授权
kubectl apply -f rbac.yaml- 查看创建的
ClusterRole ClusterRoleBinding RoleBinding - 查看
ClusterRolekubectl get ClusterRole
- 查看
ClusterRoleBindingkubectl get ClusterRoleBinding
- 查看
RoleBindingkubectl get RoleBinding
- 查看创建的
- 创建 nfs-provisioner
- yaml 修改

kubectl apply -f deployment.yaml- 查看 nfs-provisioner
kubectl get pod -n default
step 5 创建 StorgeClass
kubectl apply class.yaml- 注意事项

- 查看 sc
kubectl get sc 
step 6 创建 ES
- 修改动态存储卷大小,对应文件 elasticsaerch-statefulset.yaml
- 部署 elasticsearch
kubectl apply -f **elasticsaerch-statefulset.yaml**- 查看部署情况

- 部署 svc
kubectl apply -f **elasticsearch_svc.yaml**- 查看
kubectl get svc -n kubelogging 
- 测试 ES
- 本地端口转发
kubectl port-forward es-cluster-0 9200:9200 --namespace=kube-logging - 在另一个终端窗口中——测试访问
curl http://localhost:9200/_cluster/state?pretty - 显示如下则部署成功
- 本地端口转发
step 7 安装 kibana 组件
kubectl apply -f **kibana.yaml**- 修改 svc 类型为 NodePort
kubectl edit svc kibana -n kube-logging- 找到
type: ClusterIp修改为type: NodePort
- 找到
- 测试 kibana,浏览器访问
http://nodeIp:nodePort透出的端口,如下则部署成功
step 8 安装 fluentd 组件
kubectl apply -f fluentd.yaml- 查看安装
kubectl get pod -n kube-logging
step 9 配置kibana



- 然后点击 “Create Index Prttern”
step 10 创建索引报错解决
- 进入Elasticsearch所在的容器中
kubectl exec -it -p es-cluster-0 -n kube-logging /bin/bashes-cluster-0是pod name
- 进入容器之后执行如下命令
- curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
- 执行完成后重新操作 step 9
参考




