sskubeasz
1、Kubeasy简介
kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。
kubeasz 从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任何组件的任何参数;同时又为集群创建预置一套运行良好的默认配置,甚至自动化创建适合大规模集群的BGP Route Reflector网络模式。
- 集群特性 Master高可用、离线安装、多架构支持(amd64/arm64)
- 集群版本 kubernetes v1.22, v1.23, v1.24, v1.25, v1.26
- 操作系统 CentOS/RedHat 7/8, Debian 9/10, Ubuntu 16.04/18.04/20.04/22.04
- 运行时 containerd v1.6.8, docker 20.10.x (k8s < 1.24)
- 网络 calico, cilium, flannel, kube-ovn, kube-router
高可用方案
2、安装1.24版本的K8s集群
2.1、高可用集群所需节点配置如下
角色 | 数量 | 描述 |
部署节点 | 1 | 运行ansible/ezctl命令,一般复用第一个master节点 |
etcd节点 | 3 | 注意etcd集群需要1,3,5,...奇数个节点,一般复用master节点 |
master节点 | 2 | 高可用集群至少2个master节点 |
node节点 | n | 运行应用负载的节点,可根据需要提升机器配置/增加节点数 |
2.2、IP规划
机器资源有限,混着使用
逻辑角色 | IP |
Kube-Master | 192.168.101.100 |
Kube-Master | 192.168.101.101 |
Kube-Node | 192.168.101.102 |
Kube-Node | 192.168.101.103 |
Kube-Node | 192.168.101.104 |
笔记本电脑出现故障,使用个人腾讯云账创建机器操作。配置不高,没几毛钱。
2.2、注意事项
- 注意1:确保各节点时区设置一致、时间同步。 如果你的环境没有提供NTP 时间同步,推荐集成安装chrony
- 注意2:确保在干净的系统上开始安装,不要使用曾经装过kubeadm或其他k8s发行版的环境
- 注意3:建议操作系统升级到新的稳定内核,请结合阅读内核升级文档
- 注意4:在公有云上创建多主集群,请结合阅读在公有云上部署 kubeasz
2.3、部署
机器配置:
- master节点:4c/8g内存/50g硬盘
- worker节点:建议8c/32g内存/200g硬盘以上
注意:默认配置下容器运行时和kubelet会占用/var的磁盘空间,如果磁盘分区特殊,可以设置config.yml中的容器运行时和kubelet数据目录:CONTAINERD_STORAGE_DIR DOCKER_STORAGE_DIR KUBELET_ROOT_DIR
在 kubeasz 2x 版本,多节点高可用集群安装可以使用2种方式
- 1.按照本文步骤先规划准备,预先配置节点信息后,直接安装多节点高可用集群
- 2.先部署单节点集群 AllinOne部署,然后通过 节点添加 扩容成高可用集群
2.4、准备部署过程
离线安装包已经准备好,下载使用。步骤可以跳过2.4.1-2.5.1
链接:https://pan.baidu.com/s/13PDMjJuZ8cDJ6P2jWeODxA?pwd=ki9l
提取码:ki9l
按照文档全部离线下载预计10-15分钟时间算长。
2.4.1、下载kubeasz代码、二进制、默认容器镜像
export release=3.3.1
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
./ezdown -D
2.4.2、下载额外容器镜像
(cilium,flannel,prometheus等)
./ezdown -X
2.4.3、下载离线系统包
(适用于无法使用yum/apt仓库情形)
./ezdown -P
2.4.4、安装包位置解释
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz
- /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码
- /etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件
- /etc/kubeasz/down 包含集群安装时需要的离线容器镜像
- /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件
2.5、离线安装
2.5.1、检查安装包
./ezdown -D ./ezdown -X
- 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成,并上传到本地私有镜像仓库
2.5.2、修改部署信息
启动 kubeasz 容器
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml
./ezdown -S
设置参数允许离线安装
如果没有安装ansible可以进入容器内操作
docker exec -it kubeasz bash
创建部署集群信息
cd /etc/kubeasz/
./ezctl new fanht-ops-k8s
调整hosts集群部署信息
cd clusters/fanht-ops-k8s/
2.5.3、开始部署K8s集群
1、指定集群名字安装
./ezctl setup fanht-ops-k8s all
等5分钟左右,内部网络和机器性能决定部署速度。
2.4、验证完成部署
安装完成
kubectl get nodes
exit;
source .bash_profile #不加载profile重新打开窗口也可以
2.5、检查服务
2.51、检查pod
kubectl get pods -A
3、访问dashboard
3.1、查看Nodeport 端口
kubectl get svc -nkube-system
3.2、获取token
以后分享配置用户名和密码登录认证方式
kubectl describe -n kube-system secrets admin-user
3.3、访问前端
node port 端口32748
https://192.168.101.100:32748/
4、总结
1、K8s集群部署已经完成
2、访问地址解释
家里电脑可以访问到腾讯云内网IP因为提前配置过openvpn,麻雀虽小五脏俱全。
服务器有公网IP一定要做好安全组限制。
后面会继续输出更多K8s生产最佳实践和配套服务使用