mirror of https://github.com/easzlab/kubeasz.git
minor fix in docs
parent
681cf495ef
commit
56b2c8eacb
|
@ -12,7 +12,7 @@
|
|||
|docker|17.03.2-ce, 18.06.1-ce|
|
||||
|network|calico, cilium, flannel, kube-router|
|
||||
|
||||
-注:集群用到的所有二进制文件已打包好供下载 [https://pan.baidu.com/s/1c4RFaA](https://pan.baidu.com/s/1c4RFaA)
|
||||
- 注:集群用到的所有二进制文件已打包好供下载 [https://pan.baidu.com/s/1c4RFaA](https://pan.baidu.com/s/1c4RFaA)
|
||||
|
||||
请阅读[项目TodoList](docs/mixes/TodoList.md)和[项目分支说明](docs/mixes/branch.md), 欢迎提[Issues](https://github.com/gjmzj/kubeasz/issues)和[PRs](docs/mixes/HowToContribute.md)参与维护项目。
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
`Elasticsearch`是目前全文搜索引擎的首选,它可以快速地储存、搜索和分析海量数据;也可以看成是真正分布式的高效数据库集群;`Elastic`的底层是开源库`Lucene`;封装并提供了`REST API`的操作接口。
|
||||
|
||||
## 单节点 docker 测试安装
|
||||
## 单节点 docker 测试安装
|
||||
|
||||
``` bash
|
||||
cat > es-start.sh << EOF
|
||||
#!/bin/bash
|
||||
|
@ -24,17 +25,21 @@ EOF
|
|||
执行`sh es-start.sh`后,就在本地运行了。
|
||||
|
||||
- 验证 docker 镜像运行情况
|
||||
|
||||
``` bash
|
||||
root@docker-ts:~# docker ps -a
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
171f3fecb596 jmgao1983/elasticsearch:6.4.0 "/usr/local/bin/do..." 2 hours ago Up 2 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp es01
|
||||
```
|
||||
|
||||
- 验证 es 健康检查
|
||||
|
||||
``` bash
|
||||
root@docker-ts:~# curl http://127.0.0.1:9200/_cat/health
|
||||
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
|
||||
1535523956 06:25:56 docker-es green 1 1 0 0 0 0 0 0 - 100.0%
|
||||
```
|
||||
|
||||
## 在 k8s 上部署 Elasticsearch 集群
|
||||
|
||||
在生产环境下,Elasticsearch 集群由不同的角色节点组成:
|
||||
|
@ -48,6 +53,7 @@ epoch timestamp cluster status node.total node.data shards pri relo i
|
|||
- 1.安装 helm: 以本项目[安全安装helm](../guide/helm.md)为例
|
||||
- 2.准备 PV: 以本项目[K8S 集群存储](../setup/08-cluster-storage.md)创建`nfs`动态 PV 为例
|
||||
- 编辑配置文件:roles/cluster-storage/defaults/main.yml
|
||||
|
||||
``` bash
|
||||
storage:
|
||||
nfs:
|
||||
|
@ -57,20 +63,26 @@ storage:
|
|||
storage_class: "nfs-es"
|
||||
provisioner_name: "nfs-provisioner-01"
|
||||
```
|
||||
|
||||
- 创建 nfs provisioner
|
||||
|
||||
``` bash
|
||||
$ ansible-playbook /etc/ansible/roles/cluster-storage/cluster-storage.yml
|
||||
# 执行成功后验证
|
||||
$ kubectl get pod --all-namespaces |grep nfs-prov
|
||||
kube-system nfs-provisioner-01-6b7fbbf9d4-bh8lh 1/1 Running 0 1d
|
||||
```
|
||||
|
||||
- 3.安装 elasticsearch chart
|
||||
|
||||
``` bash
|
||||
$ cd /etc/ansible/manifests/es-cluster
|
||||
# 如果你的helm安装没有启用tls证书,请使用helm命令替换以下的helms命令
|
||||
$ helms install --name es-cluster --namespace elastic -f es-values.yaml elasticsearch
|
||||
```
|
||||
|
||||
- 4.验证 es 集群
|
||||
|
||||
``` bash
|
||||
# 验证k8s上 es集群状态
|
||||
$ kubectl get pod,svc -n elastic
|
||||
|
@ -102,11 +114,13 @@ root@k8s401:/etc/ansible# curl 10.100.97.41:29200/_cat/nodes?
|
|||
172.31.1.6 18 97 4 0.39 0.29 0.27 mi - es-cluster-elasticsearch-master-2
|
||||
172.31.3.6 20 97 4 0.11 0.17 0.18 mi * es-cluster-elasticsearch-master-1
|
||||
```
|
||||
|
||||
### es 性能压测
|
||||
|
||||
如上已使用 chart 在 k8s上部署了 **7** 节点的 elasticsearch 集群;各位应该十分好奇性能怎么样;官方提供了压测工具[esrally](https://github.com/elastic/rally)可以方便的进行性能压测,这里省略安装和测试过程;压测机上执行:
|
||||
`esrally --track=http_logs --target-hosts="$NODE_IP:29200" --pipeline=benchmark-only --report-file=report.md`
|
||||
压测过程需要1-2个小时,部分压测结果如下:
|
||||
|
||||
``` bash
|
||||
------------------------------------------------------
|
||||
_______ __ _____
|
||||
|
@ -149,11 +163,13 @@ root@k8s401:/etc/ansible# curl 10.100.97.41:29200/_cat/nodes?
|
|||
| All | error rate | default | 0 | % |
|
||||
...
|
||||
```
|
||||
|
||||
从测试结果看:集群的吞吐可以(k8s es-client pod还可以扩展);延迟略高一些(因为使用了nfs共享存储);整体效果不错。
|
||||
|
||||
### 中文分词安装
|
||||
|
||||
安装 ik 插件即可,可以自定义已安装ik插件的es docker镜像:创建如下 Dockerfile
|
||||
|
||||
``` bash
|
||||
FROM jmgao1983/elasticsearch:6.4.0
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
多节点高可用集群部署步骤与[AllinOne部署](quickStart.md)基本一致,增加LB 负载均衡部署步骤。
|
||||
|
||||
**注意:请确保各节点时区设置一致、时间同步。** 如果你的环境没有提供NTP 时间同步,推荐集成安装[chrony](guide/chrony.md)。
|
||||
**注意1:请确保各节点时区设置一致、时间同步。** 如果你的环境没有提供NTP 时间同步,推荐集成安装[chrony](../guide/chrony.md)。
|
||||
**注意2:如果需要在公有云上创建多主多节点集群,请结合阅读[在公有云上部署 kubeasz](kubeasz_on_public_cloud.md)**
|
||||
|
||||
## 高可用集群所需节点配置如下:
|
||||
+ 部署节点------x1 : 运行这份 ansible 脚本的节点
|
||||
|
@ -11,15 +12,16 @@
|
|||
+ lb节点--------x2 : 负载均衡节点两个,安装 haproxy+keepalived
|
||||
+ node节点------x3 : 真正应用负载的节点,根据需要提升机器配置和增加节点数
|
||||
|
||||
生产环境使用建议一个节点只是一个角色,这里演示环境将节点绑定多个角色。项目预定义了3个例子,请修改后完成适合你的集群规划。
|
||||
项目预定义了4个例子,请修改后完成适合你的集群规划,生产环境建议一个节点只是一个角色。
|
||||
|
||||
+ [单节点](../example/hosts.allinone.example)
|
||||
+ [单主多节点](../example/hosts.s-master.example)
|
||||
+ [多主多节点](../example/hosts.m-masters.example)
|
||||
+ [在公有云上部署](../example/hosts.cloud.example)
|
||||
|
||||
## 部署步骤
|
||||
|
||||
按照[多主多节点](../example/hosts.m-masters.example)示例的节点配置,准备4台虚机,测试搭建一个多主高可用集群。
|
||||
按照[多主多节点](../example/hosts.m-masters.example)示例的节点配置,准备4台虚机,搭建一个多主高可用集群。
|
||||
|
||||
### 1.基础系统配置
|
||||
|
||||
|
|
|
@ -139,9 +139,9 @@ kubectl get svc --all-namespaces # 可以查看所有集群服务状态
|
|||
ansible-playbook 99.clean.yml
|
||||
```
|
||||
|
||||
如果出现清理失败,类似报错:`... Device or resource busy: '/var/run/docker/netns/xxxxxxxxxx'`,需要手动umount该目录后重新清理
|
||||
如果出现清理失败,类似报错:`... Device or resource busy: '/var/run/docker/netns/xxxxxxxxxx'`,需要手动umount该目录后清理
|
||||
|
||||
``` bash
|
||||
$ umount /var/run/docker/netns/xxxxxxxxxx
|
||||
$ ansible-playbook /etc/ansible/tools/clean_one_node.yml
|
||||
$ rm -rf /var/run/docker/netns/xxxxxxxxxx
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue