diff --git a/README.md b/README.md index c54e681..85c95d1 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 项目致力于提供快速部署高可用`k8s`集群的工具, 同时也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化;既提供一键安装脚本, 也可以根据`安装指南`分步执行安装各个组件。 -- **集群特性** `TLS`双向认证、`RBAC`授权、[多Master高可用](docs/setup/00-planning_and_overall_intro.md#ha-architecture)、支持`Network Policy`、备份恢复、[离线安装](docs/setup/offline_install.md) +- **集群特性** `TLS`双向认证、`RBAC`授权、[Master高可用](docs/setup/00-planning_and_overall_intro.md#ha-architecture)、支持`Network Policy`、[离线安装](docs/setup/offline_install.md) - **集群版本** kubernetes v1.21, v1.22, v1.23, v1.24 - **操作系统** CentOS/RedHat 7, Debian 9/10, Ubuntu 16.04/18.04/20.04 - **运行时** [containerd](docs/setup/containerd.md) v1.6.4, docker 20.10.x (k8s < 1.24) @@ -11,8 +11,6 @@ **[news]** kubeasz 通过cncf一致性测试 [详情](docs/mixes/conformance.md) -**[news]** 群里大佬上新一套免费[kubernetes架构师课程](https://www.toutiao.com/c/user/token/MS4wLjABAAAA0YFomuMNm87NNysXeUsQdI0Tt3gOgz8WG_0B3MzxsmI/?tab=article),强烈推荐! - 推荐版本对照 @@ -35,7 +33,7 @@ - +
3.1.0 3.1.1 3.2.03.3.03.3.1
@@ -44,8 +42,6 @@ 单机快速体验k8s集群的测试环境--[AllinOne部署](docs/setup/quickStart.md) -- 命令行工具 [ezctl介绍](docs/setup/ezctl.md) - ## 安装指南 @@ -104,6 +100,7 @@ - 微信群:k8s&kubeasz实践, 搜索微信号`badtobone`, 请备注(城市-github用户名), 验证通过会加入群聊。 - 推荐阅读 + - [kubernetes架构师课程](https://www.toutiao.com/c/user/token/MS4wLjABAAAA0YFomuMNm87NNysXeUsQdI0Tt3gOgz8WG_0B3MzxsmI/?tab=article) - [kubernetes-the-hard-way](https://github.com/kelseyhightower/kubernetes-the-hard-way) - [feisky-Kubernetes 指南](https://github.com/feiskyer/kubernetes-handbook/blob/master/SUMMARY.md) - [opsnull 安装教程](https://github.com/opsnull/follow-me-install-kubernetes-cluster) diff --git a/docs/mixes/conformance.md b/docs/mixes/conformance.md index 5c53b25..0536dbf 100644 --- a/docs/mixes/conformance.md +++ b/docs/mixes/conformance.md @@ -8,6 +8,7 @@ Cheers! 自kubeasz 3.0.0 版本,k8s v1.20.2开始,正式通过cncf一致性认证,成为cncf 官方认证安装工具;后续k8s主要版本发布或者kubeasz有大版本更新,会优先确保通过集群一致性认证。 +- v1.24 [已认证](https://github.com/cncf/k8s-conformance/tree/master/v1.24/kubeasz) - v1.23 [已认证](https://github.com/cncf/k8s-conformance/tree/master/v1.23/kubeasz) - v1.22 [已认证](https://github.com/cncf/k8s-conformance/tree/master/v1.22/kubeasz) - v1.21 [已认证](https://github.com/cncf/k8s-conformance/tree/master/v1.21/kubeasz) diff --git a/docs/setup/containerd.md b/docs/setup/containerd.md index 9306e3f..f764ea7 100644 --- a/docs/setup/containerd.md +++ b/docs/setup/containerd.md @@ -8,6 +8,7 @@ ## kubeasz 集成安装 containerd +- 注意:k8s 1.24以后,项目已经设置默认容器运行时为 containerd,无需手动修改 - 安装前修改配置文件,在clusters/xxxx/hosts 中修改全局变量 `CONTAINER_RUNTIME="containerd"` - 其他正常执行安装即可:分步安装`ezctl setup xxxx 03`,一键安装`ezctl setup xxxx all` diff --git a/docs/setup/offline_install.md b/docs/setup/offline_install.md index 65eae44..884b21c 100644 --- a/docs/setup/offline_install.md +++ b/docs/setup/offline_install.md @@ -1,28 +1,35 @@ # 离线安装集群 -kubeasz 2.0.1 开始支持**完全离线安装**,目前已测试 `Ubuntu1604|1804` `CentOS7` `Debian9|10` 系统。 +kubeasz 2.0.1 开始支持**完全离线安装**,目前已支持 `Ubuntu1604|1804|2004` `CentOS7` `Debian9|10` 系统。 ## 离线文件准备 在一台能够访问互联网的服务器上执行: -- 下载工具脚本ezdown,举例使用kubeasz版本3.0.0 +- 下载工具脚本ezdown,举例使用kubeasz版本3.3.1 ``` bash -export release=3.0.0 +export release=3.3.1 wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown chmod +x ./ezdown ``` -- 使用工具脚本下载 +- 使用工具脚本下载(更多关于ezdown的参数,运行./ezdown 查看) -默认下载最新推荐k8s/docker等版本(更多关于ezdown的参数,运行./ezdown 查看) +下载kubeasz代码、二进制、默认容器镜像 ``` bash +# 国内环境 ./ezdown -D ``` -- 可选下载离线系统包 (适用于无法使用yum/apt仓库情形) +下载额外容器镜像(cilium,flannel,prometheus等) + +``` bash +./ezdown -X +``` + +下载离线系统包 (适用于无法使用yum/apt仓库情形) ``` bash ./ezdown -P @@ -35,19 +42,15 @@ chmod +x ./ezdown - `/etc/kubeasz/down` 包含集群安装时需要的离线容器镜像 - `/etc/kubeasz/down/packages` 包含集群安装时需要的系统基础软件 -离线文件不包括: - -- 管理端 ansible 安装,但可以使用容器化方式运行 kubeasz 安装命令 -- 其他更多 kubernetes 插件镜像 - ## 离线安装 -上述下载完成后,把`/etc/kubeasz`整个目录复制到目标离线服务器相同目录,然后在离线服务器上运行: +上述下载完成后,把`/etc/kubeasz`整个目录复制到目标离线服务器相同目录,然后在离线服务器/etc/kubeasz目录下执行: -- 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成 +- 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成,并上传到本地私有镜像仓库 ``` ./ezdown -D +./ezdown -X ``` - 启动 kubeasz 容器 diff --git a/docs/setup/quickStart.md b/docs/setup/quickStart.md index 709971b..94caa7f 100644 --- a/docs/setup/quickStart.md +++ b/docs/setup/quickStart.md @@ -1,34 +1,43 @@ ## 快速指南 -以下为快速体验k8s集群的测试、开发环境--单节点部署(aio),国内环境下比官方的minikube方便、简单很多。 +本文档适用于kubeasz 3.3.1以上版本,部署单节点集群(aio),作为快速体验k8s集群的测试环境。 ### 1.基础系统配置 - 准备一台虚机配置内存2G/硬盘30G以上 -- 最小化安装`Ubuntu 16.04 server`或者`CentOS 7 Minimal` +- 最小化安装`Ubuntu 16.04 server或者CentOS 7 Minimal` - 配置基础网络、更新源、SSH登录等 **注意:** 确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境 ### 2.下载文件 -- 下载工具脚本ezdown,举例使用kubeasz版本3.0.0 +- 下载工具脚本ezdown,举例使用kubeasz版本3.3.1 ``` bash -export release=3.0.0 +export release=3.3.1 wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown chmod +x ./ezdown ``` -- 使用工具脚本下载 +- 使用工具脚本下载(更多关于ezdown的参数,运行./ezdown 查看) -默认下载最新推荐k8s/docker等版本(更多关于ezdown的参数,运行./ezdown 查看) +下载kubeasz代码、二进制、默认容器镜像 ``` bash +# 国内环境 ./ezdown -D +# 海外环境 +#./ezdown -D -m standard ``` -- 可选下载离线系统包 (适用于无法使用yum/apt仓库情形) +【可选】下载额外容器镜像(cilium,flannel,prometheus等) + +``` bash +./ezdown -X +``` + +【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形) ``` bash ./ezdown -P @@ -43,7 +52,7 @@ chmod +x ./ezdown ### 3.安装集群 -- 容器化运行 kubeasz,详见ezdown 脚本中的 start_kubeasz_docker 函数 +- 容器化运行 kubeasz ``` ./ezdown -S @@ -53,6 +62,8 @@ chmod +x ./ezdown ``` docker exec -it kubeasz ezctl start-aio +# 如果安装失败,查看日志排除后,使用如下命令重新安装aio集群 +# docker exec -it kubeasz ezctl setup default all ``` ### 4.验证安装 @@ -75,14 +86,4 @@ $ kubectl get svc -A # 验证集群服务状态 在宿主机上,按照如下步骤清理 - 清理集群 `docker exec -it kubeasz ezctl destroy default` -- 清理运行的容器 `./ezdown -C` -- 清理容器镜像 `docker system prune -a` -- 停止docker服务 `systemctl stop docker` -- 删除docker文件 -``` - umount /var/run/docker/netns/default - umount /var/lib/docker/overlay - rm -rf /var/lib/docker /var/run/docker -``` - -上述清理脚本执行成功后,建议重启节点,以确保清理残留的虚拟网卡、路由等信息。 +- 重启节点,以确保清理残留的虚拟网卡、路由等信息 diff --git a/example/config.yml b/example/config.yml index f8f96cb..85d132b 100644 --- a/example/config.yml +++ b/example/config.yml @@ -7,15 +7,6 @@ INSTALL_SOURCE: "online" # 可选进行系统安全加固 github.com/dev-sec/ansible-collection-hardening OS_HARDEN: false -# 设置时间源服务器【重要:集群内机器时间必须同步】 -ntp_servers: - - "ntp1.aliyun.com" - - "time1.cloud.tencent.com" - - "0.cn.pool.ntp.org" - -# 设置允许内部时间同步的网络段,比如"10.0.0.0/8",默认全部允许 -local_network: "0.0.0.0/0" - ############################ # role:deploy @@ -98,9 +89,6 @@ KUBE_RESERVED_ENABLED: "no" # 另外,集群安装时候apiserver等资源占用会短时较大,建议至少预留1g内存 SYS_RESERVED_ENABLED: "no" -# haproxy balance mode -BALANCE_ALG: "roundrobin" - ############################ # role:network [flannel,calico,cilium,kube-ovn,kube-router] @@ -189,7 +177,7 @@ nfs_server: "192.168.1.10" nfs_path: "/data/nfs" # network-check 自动安装 -network_check_enabled: true +network_check_enabled: false network_check_schedule: "*/5 * * * *" ############################ diff --git a/roles/chrony/defaults/main.yml b/roles/chrony/defaults/main.yml new file mode 100644 index 0000000..e59e10a --- /dev/null +++ b/roles/chrony/defaults/main.yml @@ -0,0 +1,8 @@ +# 设置时间源服务器【重要:集群内机器时间必须同步】 +ntp_servers: + - "ntp1.aliyun.com" + - "time1.cloud.tencent.com" + - "0.cn.pool.ntp.org" + +# 设置允许内部时间同步的网络段,比如"10.0.0.0/8",默认全部允许 +local_network: "0.0.0.0/0"