kubeasz AllinOne部署:10分钟搭建Kubernetes测试集群
你还在为搭建Kubernetes测试环境繁琐的步骤而烦恼吗?本文将带你使用kubeasz工具,通过AllinOne模式在10分钟内快速部署一个功能完整的Kubernetes测试集群。读完本文后,你将能够:了解kubeasz的基本使用方法、掌握单节点Kubernetes集群的部署流程、学会验证集群状态以及基本的集群管理操作。
1. 什么是kubeasz AllinOne部署
kubeasz是一款基于Ansible的Kubernetes安装与运维管理工具,提供自动化部署、集群管理、配置管理等功能。AllinOne部署模式是kubeasz提供的一种快速部署方案,它将Kubernetes的所有组件(etcd、master节点、worker节点)都部署在同一台服务器上,非常适合用于开发测试环境。
2. 准备工作
2.1 系统要求
- 操作系统:推荐使用Ubuntu 22.04 server
- 硬件配置:至少4GB内存、30GB硬盘空间
- 网络要求:能够访问互联网(用于下载所需组件)
注意:确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境。
2.2 获取项目代码
首先,克隆kubeasz项目代码到本地:
git clone https://gitcode.com/GitHub_Trending/ku/kubeasz.git
cd kubeasz
3. 快速部署步骤
3.1 下载工具脚本
kubeasz提供了一个便捷的工具脚本ezdown,用于下载部署所需的各种资源。执行以下命令下载并赋予执行权限:
export release=3.6.8
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
3.2 下载所需资源
使用ezdown脚本下载Kubernetes集群部署所需的二进制文件、容器镜像等资源:
# 国内环境
./ezdown -D
# 海外环境
# ./ezdown -D -m standard
上述命令执行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz:
/etc/kubeasz包含 kubeasz 版本为 ${release} 的发布代码/etc/kubeasz/bin包含 k8s/etcd/docker/cni 等二进制文件/etc/kubeasz/down包含集群安装时需要的离线容器镜像/etc/kubeasz/down/packages包含集群安装时需要的系统基础软件
3.3 容器化运行kubeasz
./ezdown -S
3.4 启动AllinOne集群部署
使用默认配置安装AllinOne集群:
docker exec -it kubeasz ezctl start-aio
如果安装失败,查看日志排除后,使用如下命令重新安装aio集群:
docker exec -it kubeasz ezctl setup default all
4. 集群配置文件解析
AllinOne部署使用的默认配置文件为example/hosts.allinone,其内容如下:
# 'etcd' cluster should have odd member(s) (1,3,5,...)
[etcd]
192.168.1.1
# master node(s), set unique 'k8s_nodename' for each node
[kube_master]
192.168.1.1
# work node(s), set unique 'k8s_nodename' for each node
[kube_node]
192.168.1.1 k8s_nodename=''
[all:vars]
# --------- Main Variables ---------------
# Secure port for apiservers
SECURE_PORT="6443"
# Cluster container-runtime supported: docker, containerd
CONTAINER_RUNTIME="containerd"
# Network plugins supported: calico, flannel, kube-router, cilium, kube-ovn
CLUSTER_NETWORK="calico"
# Service proxy mode of kube-proxy: 'iptables' or 'ipvs'
PROXY_MODE="ipvs"
# K8S Service CIDR, not overlap with node(host) networking
SERVICE_CIDR="10.68.0.0/16"
# Cluster CIDR (Pod CIDR), not overlap with node(host) networking
CLUSTER_CIDR="172.20.0.0/16"
配置文件示例:example/hosts.allinone
主要配置项说明:
CONTAINER_RUNTIME:容器运行时,支持docker和containerdCLUSTER_NETWORK:网络插件,支持calico、flannel、kube-router等PROXY_MODE:kube-proxy模式,支持iptables和ipvsSERVICE_CIDR:Service网段,不要与节点网络重叠CLUSTER_CIDR:Pod网段,不要与节点网络重叠
5. 验证集群状态
5.1 基本信息验证
部署完成后,执行以下命令验证集群状态:
$ source ~/.bashrc
$ kubectl version # 验证集群版本
$ kubectl get node # 验证节点就绪状态
$ kubectl get pod -A # 验证集群pod状态
$ kubectl get svc -A # 验证集群服务状态
正常情况下,你应该能看到节点状态为Ready,核心组件Pod都处于Running状态。
5.2 部署测试应用
为了进一步验证集群功能,我们可以部署一个简单的Nginx应用:
kubectl create deployment nginx --image=nginx:alpine
kubectl expose deployment nginx --port=80 --type=NodePort
然后通过kubectl get svc nginx命令查看服务暴露的NodePort端口,通过浏览器访问http://<服务器IP>:<NodePort>验证应用是否正常运行。
6. 集群管理常用操作
6.1 启动和停止集群
# 停止集群
docker exec -it kubeasz ezctl stop default
# 启动集群
docker exec -it kubeasz ezctl start default
6.2 备份和恢复集群
# 备份集群
docker exec -it kubeasz ezctl backup default
# 恢复集群
docker exec -it kubeasz ezctl restore default
注意:备份仅包含etcd数据,不包括pv数据和业务应用数据。
6.3 销毁集群
当测试完成后,如果需要清理环境,可以执行以下命令销毁集群:
docker exec -it kubeasz ezctl destroy default
官方文档:docs/setup/ezctl.md
7. 总结
通过本文介绍的方法,你可以快速搭建一个功能完整的Kubernetes测试集群。kubeasz的AllinOne部署模式极大地简化了Kubernetes的安装过程,让你能够在几分钟内拥有一个可用的K8s环境,非常适合用于学习、开发和测试。
如果你需要部署生产环境的Kubernetes集群,可以参考kubeasz的多节点部署文档,实现高可用的Kubernetes集群部署。
项目地址:GitHub_Trending/ku/kubeasz
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




