kubeasz搭建k8s高可用集群

发布时间 2023-11-07 14:05:01作者: cyj爱study

  kubeasz致力于快速部署高可用k8s集群的工具,同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和ansible-playbook实现自动化;既提供一键安装脚本,可以刻根据安装指南分布执行安装各个组件。

  Kubeasz从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任何组件的任何参数化;同时又为集群创建预置一套运行良好的默认配置。

节点规划:均是基于centos7.9镜像,2G1cpu30G

角色

服务器

描述

部署节点

192.168.238.11

作为宿主机通过kubeasz容器运行ansible/ezctl命令

etcd节点

192.168.238.12

192.168.238.13

192.168.238.14

注意etcd集群需要1,3,5,...奇数个节点,本实战安装3个节点

master节点

192.168.238.12

192.168.238.13

192.168.238.14

高可用集群至少2个master节点,本实战安装3个节点

node节点

192.168.238.15

运行应用负载的节点,节点数任意,本实战安装1个节点

kubeasz使用3.3.0版本,搭建k8s集群信息如下:

k8s: v1.24.1

docker:v20.10.16

ansible:v2.10.8

etcd: v3.5.4

containerd: 1.6.4

flanal: v0.15.1

dashboard: v2.5.1

以下所有操作均在部署节点完成:

设置秘密登录:

ssh-keygen
ssh-copy-id 192.168.238.12
ssh-copy-id 192.168.238.13
ssh-copy-id 192.168.238.14
ssh-copy-id 192.168.238.15

准备环境:

# 下载工具脚本ezdown,使用kubeasz版本3.3.0
export release=3.3.0
yum install wget -y
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
# 使用工具脚本下载k8s需要的依赖和镜像
./ezdown -D
#./ezdown -D命令多执行几遍,直至再执行的时候不再downloading为止。这样就在/etc/kubeasz目录下下载了在线安装所有需要的脚本、二进制文件和镜像文件。
./ezdown -P (可选)

如果目标服务器可以直接连外网,那么通过./ezdown -D下载的文件足够用了,但是如果目标服务器不能连外网,那么我们还需要通过另外一个命令./ezdown -P把离线文件也下载下来,这些文件也都在/etc/kubeasz。后面我们把/etc/kubeasz这个目录打个压缩包,并和ezdown文件归档在一起后续可以直接使用。

  • /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码。
  • /etc/kubeasz/bin 包含 kubernetes/etcd/docker/cni 等二进制文件。
  • /etc/kubeasz/down 包含集群安装时需要的离线容器镜像。
  • /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件。

容器化运行kubeasz:

./ezdown -S
2023-11-07 09:25:58 INFO Action begin: start_kubeasz_docker
2023-11-07 09:25:58 INFO try to run kubeasz in a container
2023-11-07 09:25:58 DEBUG get host IP: 192.168.238.11
Loaded image: easzlab/kubeasz:3.3.0
de281307dce0ce3e27c8ec28bfc5ad3bd60b700351dd4d0827aeeb4c3ac6ba41
2023-11-07 09:26:00 INFO Action successed: start_kubeasz_docker

进入kubeasz创建集群k8s-01:

docker exec -it kubeasz /bin/bash  #进入容器
bash-5.1# ezctl new k8s-01    #创建k8s-01集群
2023-11-07 01:26:51 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2023-11-07 01:26:51 DEBUG set versions
2023-11-07 01:26:51 DEBUG cluster k8s-01: files successfully created.
2023-11-07 01:26:51 INFO next steps 1: to config '/etc/kubeasz/clusters/k8s-01/hosts'
2023-11-07 01:26:51 INFO next steps 2: to config '/etc/kubeasz/clusters/k8s-01/config.yml'