前言
有时候,我们只需要k8s集群进行项目测试,能够使用的主机可能只有一台,那么如何构建一台单机的k8s集群?
单机版的k8s集群可以用于本地测试,或者内部测试环境,或者个人电脑上的项目测试。
那么我们可以使用all-in-one模式安装一个单机的k8s集群。
官方地址:单机快速体验k8s集群的测试环境–AllinOne部署
AllinOne部署
1 . 服务器装备
准备一台虚机配置内存2G/硬盘30G以上
最小化安装Ubuntu 16.04 server或者CentOS 7
下面是实验准备的主机
类型 | IP | 系统信息 | 配置 |
---|---|---|---|
master | 192.168.88.222 | Centos 7.9.2009 | 2核1G 50G磁盘 |
k8s要求的最小核心数是2核,如果你的主机资源较少,可以分配2核2G100G磁盘,安装虚拟机后,磁盘不会立即占用100G,而是根据根据实际情况逐渐占用。
服务器的安装过程: 请见vmware安装centos7并制作多副本
或者也可以使用云服务商提供的服务器。
2. 下载文件
(1)下载工具脚本ezdown,举例使用kubeasz版本3.1.0
export release=3.1.0
# 国外地址(由于网络原因,可能需要多次尝试才能下载成功)
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
# 国内地址 (国内下载地址,不会失败)
curl -C- -fLO --retry 3 https://github.91chi.fun//https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
# 修改文件的执行权限
chmod +x ezdown
(2)下载kubeasz代码、二进制、默认容器镜像
# 国内环境
./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. 安装集群
(1)容器化运行 kubeasz
./ezdown -S
(2)使用默认配置安装 aio 集群
docker exec -it kubeasz ezctl start-aio
# 如果安装失败,查看日志排除后,使用如下命令重新安装aio集群
# docker exec -it kubeasz ezctl setup default all
4. 验证安装
如果-bash: kubectl: command not found ,请重新打开客户端
$ kubectl version 验证集群版本
$ kubectl get node 验证节点就绪 (Ready) 状态
$ kubectl get pod -A 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等
$ kubectl get svc -A 验证集群服务状态
5. pod部署测试
# 创建namespace
kubectl create ns dev
# 部署一个nginx
kubectl run nginx --image=nginx:1.17.1 --port=80 --namespace=dev
# 测试访问nginx
curl 172.20.0.6:80
kubernetes-dashboard
# 修改kubernetes-dashboard的端口,这里我改成30443,也可以不该使用系统分配的端口
kubectl edit service/kubernetes-dashboard -n kube-system