sskubeasz
kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。
kubeasz 从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任何组件的任何参数;同时又为集群创建预置一套运行良好的默认配置,甚至自动化创建适合大规模集群的BGP Route Reflector网络模式。
高可用方案
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、注意事项
2.3、部署
机器配置:
注意:默认配置下容器运行时和kubelet会占用/var的磁盘空间,如果磁盘分区特殊,可以设置config.yml中的容器运行时和kubelet数据目录:CONTAINERD_STORAGE_DIR DOCKER_STORAGE_DIR KUBELET_ROOT_DIR
在 kubeasz 2x 版本,多节点高可用集群安装可以使用2种方式
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
2.5、离线安装
2.5.1、检查安装包
./ezdown -D ./ezdown -X
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因为提前配置过open,麻雀虽小五脏俱全。
服务器有公网IP一定要做好安全组限制。
后面会继续输出更多K8s生产最佳实践和配套服务使用