diff --git "a/docs/00-\351\233\206\347\276\244\350\247\204\345\210\222\345\222\214\345\237\272\347\241\200\345\217\202\346\225\260\350\256\276\345\256\232.md" "b/docs/00-\351\233\206\347\276\244\350\247\204\345\210\222\345\222\214\345\237\272\347\241\200\345\217\202\346\225\260\350\256\276\345\256\232.md" index 52a97bd1b..a64048d88 100644 --- "a/docs/00-\351\233\206\347\276\244\350\247\204\345\210\222\345\222\214\345\237\272\347\241\200\345\217\202\346\225\260\350\256\276\345\256\232.md" +++ "b/docs/00-\351\233\206\347\276\244\350\247\204\345\210\222\345\222\214\345\237\272\347\241\200\345\217\202\346\225\260\350\256\276\345\256\232.md" @@ -2,6 +2,8 @@ 多节点高可用集群部署步骤与[AllinOne部署](quickStart.md)基本一致,增加LB 负载均衡部署步骤。 +**注意:请确保各节点时区设置一致、时间同步。** 如果你的环境没有提供NTP 时间同步,推荐集成安装[chrony](guide/chrony.md)。 + ## 高可用集群所需节点配置如下: + 部署节点------x1 : 运行这份 ansible 脚本的节点 + etcd节点------x3 : 注意etcd集群必须是1,3,5,7...奇数个节点 @@ -9,8 +11,6 @@ + lb节点--------x2 : 负载均衡节点两个,安装 haproxy+keepalived + node节点------x3 : 真正应用负载的节点,根据需要提升机器配置和增加节点数 -**请注意对于多节点集群,请确保各节点时区设置一致,并使用ntp服务器同步各节点时间。** - 生产环境使用建议一个节点只是一个角色,这里演示环境将节点绑定多个角色。项目预定义了3个例子,请修改后完成适合你的集群规划。 + [单节点](../example/hosts.allinone.example) diff --git a/docs/guide/chrony.md b/docs/guide/chrony.md new file mode 100644 index 000000000..cffe3e4ff --- /dev/null +++ b/docs/guide/chrony.md @@ -0,0 +1,41 @@ +# chrony 时间同步 + +在安装k8s集群前需确保各节点时间同步;`chrony` 是一个优秀的 `NTP` 实现,性能比ntp好,且配置管理方便;它既可作时间服务器服务端,也可作客户端。 + +- `OpenStack` 社区也推荐使用 `chrony`实现各节点之间的时间同步 + +## 安装配置介绍 + +项目中选定一个节点(`deploy` )作为集群内部其他节点的时间同步源,而 deploy节点本身从公网源同步;当然如果整个集群都无法访问公网,那么请手动校准deploy 节点的时间后,仍旧可以作为内部集群的时间源服务器。 + +- 配置 chrony server, 在`/etc/chrony.conf` 配置以下几项,其他项默认值即可 + +``` bash +# 1. 配置时间源,国内可以增加阿里的时间源 ntp1.aliyun.com +server {{ ntp_server }} iburst + +# 2. 配置允许同步的客户端网段 +allow {{ local_network }} + +# 3. 配置离线也能作为源服务器 +local stratum 10 +``` + +- 配置 chrony client + +``` bash +# 1. 清除所有其他时间源,只配置一个本地 deploy节点作为源 +server {{ groups.deploy[0] }} iburst + +# 2. 其他所有项可以默认配置 +``` + +## `kubeasz` 集成安装 + +- 修改 ansible hosts 文件,在 `deploy` 节点配置 `NTP_ENABLED=yes` (默认: no) +- [可选] 修改 roles/chrony/var/main.yml 中的变量定义,关于文件 roles/chrony/var/main.yml 的由来请看[这里](../config_guide.md) + +对于新集群或者新节点,`chrony` 的安装配置已经集成到 `90.setup.yml` `01.prepare.yml` `20.addnode.yml` `21.addmaster.yml` 等脚本中;对于已运行中的集群请执行如下命令进行安装: + +`ansible-playbook /etc/ansible/roles/chrony/chrony.yml ` + diff --git a/docs/mixes/DoneList.md b/docs/mixes/DoneList.md new file mode 100644 index 000000000..0aefad664 --- /dev/null +++ b/docs/mixes/DoneList.md @@ -0,0 +1,55 @@ +## 前言 + +`kubeasz`项目开始于`2017.11`,半年多时间以来,从最开始单一的ansible部署脚本朝着提供部署高可用 K8S集群的完整解决方案的目标不断前进,接下去项目的发展需要各位的共同参与和贡献,希望越做越好,为国内k8s学习、实践者提供更多帮助。 + +### 项目已完成部分 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类型描述备注
集群部署服务器基础安全加固与参数优化已完成
基础服务集群监控告警-prometheus已完成基础,待优化
应用服务jenkins集成已完成
集群部署kube-router网络插件已完成
基础服务metrics server已完成
集群部署ipvs代理模式跟进已完成
集群部署cilium网络插件已完成
集群部署集群内时间同步-Chrony已完成
+ + diff --git a/docs/mixes/TodoList.md b/docs/mixes/TodoList.md index 2dc7487a1..80729af35 100644 --- a/docs/mixes/TodoList.md +++ b/docs/mixes/TodoList.md @@ -1,6 +1,6 @@ ## 前言 -`kubeasz`项目开始于`2017.11`,半年多时间以来,从最开始单一的ansible部署脚本朝着提供部署高可用 K8S集群的完整解决方案的目标不断前进,接下去项目的发展需要各位的共同参与和贡献,希望越做越好,为国内k8s学习、实践者提供更多帮助。 +`kubeasz`项目开始于`2017.11`,从最开始单一的ansible部署脚本朝着提供部署高可用 K8S集群的完整解决方案的目标不断前进;项目的发展需要各位的共同参与和贡献,希望越做越好,为国内k8s学习、实践者提供更多帮助。 现在是很好的时间节点,梳理项目的`TodoList`/`Milestones`,以下是现有的一些想法,欢迎大家在[这里](https://github.com/gjmzj/kubeasz/issues/188)参与讨论。 ### 项目 TodoList @@ -11,16 +11,6 @@ 描述 备注 - - 集群部署 - 集群内时间同步-Chrony - 暂取消 - - - 集群部署 - 服务器基础安全加固与参数优化 - 已完成 - 基础服务 集群监控告警-prometheus @@ -28,28 +18,13 @@ 应用服务 - CI/CD 集成 - 更新jenkins - - - 集群部署 - kube-router网络插件 - 已完成 + 服务治理-istio跟进 + 基础服务 - metrics server - 已完成 - - - 集群部署 - ipvs代理模式跟进 - 已完成 - - - 应用服务 - 服务治理-istio跟进 - + ingress-nginx + 待集成manifests及使用文档 diff --git a/example/hosts.allinone.example b/example/hosts.allinone.example index b439d642a..f00151c56 100644 --- a/example/hosts.allinone.example +++ b/example/hosts.allinone.example @@ -1,4 +1,5 @@ -# 部署节点:运行ansible 脚本的节点 +# 集群部署节点:一般为运行ansible 脚本的节点 +# 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步 [deploy] 192.168.1.1 NTP_ENABLED=no diff --git a/example/hosts.m-masters.example b/example/hosts.m-masters.example index c24ee1944..8792f0629 100644 --- a/example/hosts.m-masters.example +++ b/example/hosts.m-masters.example @@ -1,4 +1,5 @@ -# 部署节点:运行这份 ansible 脚本的节点 +# 集群部署节点:一般为运行ansible 脚本的节点 +# 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步 [deploy] 192.168.1.1 NTP_ENABLED=no diff --git a/example/hosts.s-master.example b/example/hosts.s-master.example index f661f7e7b..e39a5dbd5 100644 --- a/example/hosts.s-master.example +++ b/example/hosts.s-master.example @@ -1,4 +1,5 @@ -# 部署节点:运行ansible 脚本的节点 +# 集群部署节点:一般为运行ansible 脚本的节点 +# 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步 [deploy] 192.168.1.1 NTP_ENABLED=no