kubeasz 是基于ansible和shell制作的工具,可以快速搭建一个高可用的k8s集群(二进制部署),不需要额外的负载均衡。项目地址:https://github.com/easzlab/kubeasz, kubeasz 每个版本对应了支持的k8s版本, 可以到项目主页查看, 这里使用 kubeasz版本3.0.0, 部署k8s 1.18.2

另见kubeadm部署
在centos使用kubeadm部署k8s
在ubuntu使用kubeadm部署k8s

安装准备

准备机器如下:

机器 IP
kubeasz操作机 10.0.0.7
master1 10.0.0.31
master2 10.0.0.32
master3 10.0.0.33
worker1 10.0.0.41

首先确保操作机可以通过ssh连接到其他所有机器,最好密钥打通(这是使用ansible的必要条件)

安装kubeasz

安装ansible

1
2
yum install epel-release -y
yum install ansible -y

下载ezdown部署工具

1
2
3
export release=3.0.0                     # 设置kubeasz版本
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown

下载kubeasz离线包等

1
2
3
4
5
# 下载默认版本
./ezdown -D

# 可以使用-k参数指定需要下载的k8s版本
./ezdown -D -k v1.18.2

下载的文件位于/etc/kubeasz目录

下载离线deb/rpm包

(可选) 适用于纯内网环境,无法连接网络

1
./ezdown -P

部署集群

1
2
cd /etc/kubeasz/
./ezctl new k8s-cluster

根据需求修改配置文件

ansible主机清单(定义主机IP)/etc/kubeasz/clusters/k8s-cluster/hosts
集群配置文件 /etc/kubeasz/clusters/k8s-cluster/config.yml

开始部署

1
./ezctl setup k8s-cluster all

检查部署结果

查看 kubernetes 集群的组件状态(基本都是通过 systemd 管理的)

在 master 节点上查看

1
2
3
4
systemctl status etcd
systemctl status kube-apiserver
systemctl status kube-scheduler
systemctl status kube-controller-manager

在 master 和 node 节点上查看

1
2
3
systemctl status kubelet 
systemctl status kube-proxy
systemctl status docker

清理集群

如果需要执行清理操作:

1
./ezctl destroy k8s-cluster