使用kubeasz 离线安装 k8s集群需要下载四个部分:

  • kubeasz 项目代码

  • 二进制文件(k8s、etcd、containerd等组件)

  • 容器镜像文件(calico、coredns、metrics-server等容器镜像)

  • 系统软件安装包(ipset、libseccomp2等,仅无法使用本地yum/apt源时需要)

离线文件准备

在一台能够访问互联网的服务器上执行:

  • 下载工具脚本ezdown,举例使用kubeasz版本3.6.5

export release=3.6.5
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown

下载kubeasz代码、二进制、默认容器镜像

./ezdown -D -k v1.31.13
-k 是制定k8s二进制的版本,当然还可以加-d 指定docker版本,如:./ezdown -D -k v1.31.13 -d 24.0.9
./ezdown -X nfs-provisioner
增加nfs作为k8s分布式存储
上面两个命令执行完了之后最终生成文件在/etc/kubeasz

安装集群

安装依赖,如果不能上网,需要制作本地安装镜像
yum install epel-release -y
yum install ansible ansible-core expect ipvsadm rsyslog iptables nftables ipset -y
cd /etc/kubeasz && ./ezdown -D && ./ezctl new k8s-01

修改集群配置文件在/etc/kubeasz/clusters/k8s-cluster01的hosts

修改集群配置文件在/etc/kubeasz/clusters/k8s-cluster01的config.yml

设置自动安装,这里只安装coredns和metric server,如果要安装nfs在集群安装完成后需要执行一下操作
# 在master 执行以下命令 
yum install -y nfs-utils

echo "/data/nfsdata *(insecure,rw,sync,no_root_squash)" > /etc/exports

# 执行以下命令,启动 nfs 服务;创建共享目录
mkdir -p /data/nfsdata

# 在master执行
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server

# 使配置生效
exportfs -r

#检查配置是否生效
exportfs

修改kube-lb模版配置/etc/kubeasz/roles/kube-lb/templates/kube-lb.conf.j2

根据自己情况修改,这里kube-lb为keepalived的vip地址,需要在/etc/hosts里面指定
worker_processes 1; ==>worker_processes 8;
worker_connections  3000;==>worker_connections  6000;

部署集群

./ezctl setup k8s-cluster01 all

本人也自己写了个脚本使用kubeasz一键部署k8s集群,脚本及安转包下载地址如下,脚本使用方法:sh kz_deploy_k8s_all.sh deploy 服务器内网ip 服务器root密码