kubeasz 制作(k8s)kubernetes集群离线安装包

转载:kubeasz 制作k8s 集群离线安装包

kubeasz 制作k8s 集群离线安装包

大家好,欢迎来到运维有术

本文介绍了,利用 ezdown 制作 kubeasz 离线部署 k8s 集群所需的离线安装包。

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

  • kubeasz 项目代码

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

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

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

1. 离线文件准备

1.1 下载工具脚本 ezdown

本文使用 kubeasz 版本 3.6.1

在一台能够访问互联网的服务器上执行下面的命令(这不是废话么)

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

脚本在 GitHub上 可能需要多次尝试

看看 ezdown 都有哪些命令参数

注意:以下输出受限于规则而造成了缺失,请以实际结果为准。

[root@localhost ~]# ./ezdown
Usage: ezdown [options] [args]
  option:
    -C         stop&clean all local containers
    -D         download default binaries/images into "/etc/kubeasz"
    -P <OS>    download system packages of the OS (ubuntu_22,debian_11,...)
    -R         download Registry(harbor) offline installer
    -S         start kubeasz in a container
    -X <opt>   download extra images
    -d <ver>   set docker-ce version, default "20.10.24"
    -e <ver>   set kubeasz-ext-bin version, default "1.7.1"
    -k <ver>   set kubeasz-k8s-bin version, default "v1.27.2"
    -z <ver>   set kubeasz version, default "3.6.1"

1.2 使用工具脚本下载离线文件

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


# 国内环境
./ezdown -D
  • 下载额外插件

./ezdown -X prometheus
./ezdown -X nfs-provisioner

其他可用的插件,没有找到文档介绍,可以查看源代码 https://github.com/easzlab/kubeasz/blob/master/ezdown

function usage-down-ext-img(){
  echo -e "\033[33mUsage:\033[0m ezdown -X <opt>"
  cat <<EOF
available options:
    cilium                   to download images of cilium
    flannel                  to download images of flannel
    kube-ovn                 to download images of kube-ovn
    kube-router              to download images of kube-router
    kubeapps                 to download images of kubeapps
    local-path-provisioner   to download images of local-path-provisioner
    network-check            to download images of network-check
    nfs-provisioner          to download images of nfs-provisioner
    prometheus               to download images of prometheus 
examples:
    ./ezdown -X prometheus
EOF
}
  • 下载离线操作系统包


# 文本选用centos7
./ezdown -P centos_7

具体支持的操作系统类型和对应参数,需要查看源码 https://github.com/easzlab/kubeasz/blob/master/ezdown

function usage-down-sys-pkg(){
  echo -e "\033[33mUsage:\033[0m ezdown -P <OS>"
  cat <<EOF
available OSes:
    almalinux_8       to download package of AlmaLinux 8
    almalinux_9       to download package of AlmaLinux 9
    centos_7          to download package of CentOS 7
    debian_10         to download package of Debian 10
    debian_11         to download package of Debian 11
    fedora_34         to download package of Fedora 34
    fedora_35         to download package of Fedora 35
    fedora_36         to download package of Fedora 36
    fedora_37         to download package of Fedora 37
    opensuse_leap_15  to download package of openSUSE Leap 15
    rocky_8           to download package of Rocky Linux 8
    rocky_9           to download package of Rocky Linux 9
    ubuntu_16         to download package of Ubuntu 16.04
    ubuntu_18         to download package of Ubuntu 18.04
    ubuntu_20         to download package of Ubuntu 20.04
    ubuntu_22         to download package of Ubuntu 22.04
examples:
    ./ezdown -P ubuntu_22
EOF
}

上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

  • /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码

  • /etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件

  • /etc/kubeasz/down 包含集群安装时需要的离线容器镜像

  • /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件

[root@localhost ~]# ll -h /etc/kubeasz/
total 104K
-rw-rw-r--.  1 root root  20K May 28 00:32 ansible.cfg
drwxr-xr-x.  4 root root 4.0K Jul 11 02:51 bin
drwxrwxr-x.  8 root root   94 May 28 00:38 docs
drwxr-xr-x.  4 root root 4.0K Jul 11 03:28 down
drwxrwxr-x.  2 root root   70 May 28 00:38 example
-rwxrwxr-x.  1 root root  26K May 28 00:32 ezctl
-rwxrwxr-x.  1 root root  32K May 28 00:32 ezdown
drwxrwxr-x. 10 root root  145 May 28 00:38 manifests
drwxrwxr-x.  2 root root   94 May 28 00:38 pics
drwxrwxr-x.  2 root root 4.0K May 28 00:38 playbooks
-rw-rw-r--.  1 root root 5.9K May 28 00:32 README.md
drwxrwxr-x. 22 root root 4.0K May 28 00:38 roles
drwxrwxr-x.  2 root root   74 May 28 00:38 tools
[root@localhost ~]# ll -h /etc/kubeasz/bin/
total 1.1G
-rwxr-xr-x. 1 root root  57M Nov  7  2022 calicoctl
-rwxr-xr-x. 1 root root  14M Apr  1 19:05 cfssl
-rwxr-xr-x. 1 root root  12M Apr  1 19:05 cfssl-certinfo
-rwxr-xr-x. 1 root root 7.5M Apr  1 19:05 cfssljson
-rwxr-xr-x. 1 root root 1.1M Jan 10 04:48 chronyd
-rwxr-xr-x. 1 root root  72M Mar 21 03:30 cilium
drwxr-xr-x. 2 root root  248 Apr  1 19:05 cni-bin
-rwxr-xr-x. 1 root root  38M Jul 11 02:40 containerd
drwxr-xr-x. 2 root root  157 Apr  1 19:05 containerd-bin
-rwxr-xr-x. 1 root root 7.2M Jul 11 02:40 containerd-shim
-rwxr-xr-x. 1 root root 9.4M Jul 11 02:40 containerd-shim-runc-v2
-rwxr-xr-x. 1 root root  52M Mar 15 09:57 crictl
-rwxr-xr-x. 1 root root  21M Jul 11 02:40 ctr
-rwxr-xr-x. 1 root root  46M Jul 11 02:40 docker
-rwxr-xr-x. 1 root root  52M Mar 26 10:37 docker-compose
-rwxr-xr-x. 1 root root  56M Jul 11 02:40 dockerd
-rwxr-xr-x. 1 root root 748K Jul 11 02:40 docker-init
-rwxr-xr-x. 1 root root 2.6M Jul 11 02:40 docker-proxy
-rwxr-xr-x. 1 root root  23M Nov 21  2022 etcd
-rwxr-xr-x. 1 root root  18M Nov 21  2022 etcdctl
-rwxr-xr-x. 1 root root  45M Mar  8 16:17 helm
-rwxr-xr-x. 1 root root  21M Mar 15 08:03 hubble
-rwxr-xr-x. 1 root root 1.8M Jan 10 04:49 keepalived
-rwxr-xr-x. 1 root root 112M May 17 10:33 kube-apiserver
-rwxr-xr-x. 1 root root 104M May 17 10:33 kube-controller-manager
-rwxr-xr-x. 1 root root  47M May 17 10:33 kubectl
-rwxr-xr-x. 1 root root 102M May 17 10:33 kubelet
-rwxr-xr-x. 1 root root  51M May 17 10:33 kube-proxy
-rwxr-xr-x. 1 root root  52M May 17 10:33 kube-scheduler
-rwxr-xr-x. 1 root root 1.8M Jan 10 04:48 nginx
-rwxr-xr-x. 1 root root  14M Jul 11 02:40 runc
[root@localhost ~]# ll -h /etc/kubeasz/down/
total 2.1G
-rw-------. 1 root root 514M Jul 11 02:56 calico_v3.24.6.tar
-rw-------. 1 root root  47M Jul 11 02:57 coredns_1.9.3.tar
-rw-------. 1 root root 238M Jul 11 02:58 dashboard_v2.7.0.tar
drwxrwxr-x. 2 1000 1000    6 Jul 11 02:40 docker
-rw-r--r--. 1 root root  64M Apr  4 17:19 docker-20.10.24.tgz
-rw-------. 1 root root  67M Jul 11 02:57 k8s-dns-node-cache_1.22.20.tar
-rw-------. 1 root root 159M Jul 11 02:42 kubeasz_3.6.1.tar
-rw-------. 1 root root  42M Jul 11 02:59 metrics-scraper_v1.0.8.tar
-rw-------. 1 root root  68M Jul 11 02:59 metrics-server_v0.6.3.tar
-rw-------. 1 root root  43M Jul 11 03:22 nfs-provisioner_v4.0.2.tar
drwxr-xr-x. 2 root root   26 May  5 04:44 packages
-rw-------. 1 root root 738K Jul 11 02:59 pause_3.9.tar
-rw-------. 1 root root 855M Jul 11 03:21 prometheus-chart_45.23.0.tar
-rw-------. 1 root root  24M Jul 11 02:51 registry-2.tar
[root@localhost ~]# ll -h /etc/kubeasz/down/packages/
total 3.1M
-rw-r--r--. 1 root root 3.1M May  5 04:44 centos_7.tgz

通过执行上面的操作,我们完成了 kubeasz 离线部署 k8s 集群所需离线包的下载,下一期我们实战如何利用离线包安装部署 3 个 Master 节点 的 k8s 集群。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
k8s全自动离线部署(高可用),百度下载连接(永久有效,且免费) 当前可选安装版本----------------------------------------------------------------------------------------------------------------------------------------- Kubernetes 1.16.2  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 Kubernetes 1.15.4  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 Kubernetes 1.15.3  -->Docker版本18.09.7-3、18.09.8-3、18.09.9-3、19.03.0-3、19.03.1-3、19.03.2-3、19.03.3-3、19.03.4-3 当前---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:kubernetes(k8s)离线自动化安装系统-v2.6(基于CentOS7.4/7.5/7.6/7.7版本) 升级内容: 1、增加多master集群节点部署功能,即配置文件configs/k8shostlist.ini支持多master节点集群加入 2、增加etcd集群分离部署支持,通过systemctl进行管理,即配置文件configs/etcdhostlist.ini支持多master节点集群加入。 3、经过测试,所有master、node节点依次注入停机故障进行测试,所有业务pod实现100%正常漂移,漂移过程中,出现业务服务响应延时增加现象,但无业务响应异常发生。 4、此版本实现100%一键安装,安装前,整理好配置文件,上传安装到初始安装主机,直接执行安装脚本,无需任何其他手动处理,即可完成etcd、k8s集群环境搭建。 5、此版本实现了除dockerhub外,所有关键模块,无单点的解决方案。 6、此版本高可用解决方案,对于apiServer的endpoint(k8s.master.com:6443),通过配置/etc/hosts(域名:IP,1:n)模拟VIP, 生产环境下,可以给集群内所有master节点分配一个VIP(k8s.master.com),以避免软负载的流量风暴影响运行稳定性 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:kubernetes(k8s)离线自动化安装系统-v2.5(基于CentOS7.4/7.5/7.6/7.7版本) 升级内容: 1、增加traefik部署以及相关资源创建,除master节点外,其余node节点默认开启服务访问权限 2、demo同时支持ingress和NodePort两种服务发布模式。分别通过虚拟域名+path和NodePort端口即可方案demo服务 3、实现k8s已发布service自动发现和适配能力,在线看板实时动态显示 4、主要模块开机自启动脚本优化,以确保集群所有节点重启后,所有服务运行正常 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:K8s离线自动化安装系统-v2.4(基于CentOS7.4及以上版本) 升级内容: 1、私服镜像仓库搭建支撑harbor、docker-registry 2、安装配置,增加私服镜像仓库端口配置,harbor的admin用户密码配置 3、安装进度条,Ctrl+C支持强制退出,支持保持安装进度和卸载 4、安装帮助文档、使用帮助文档更新 历史---------------------------------------------------------------------------------------------------------------------------------------------------- 版本:K8s离线自动化安装系统-v2.3(基于CentOS7.4及以上版本) 升级内容: 1、增加监控模块heapster部署和配置 2、部署kubernetesui/dashboard最新版 3、授权serviceAccount:dashboard账户获取最大访问权限,满足dashboardUI操作需要 4、安装完成界面,增加dashboard访问URL提示,以及登录dashboard门户的账户token 历史----------------------------------------------------------------------------------------------------------------------------------------------------
Kubeasz是一个基于Ansible的Kubernetes部署工具,可以帮助用户快速部署一个高可用的Kubernetes集群。如果要离线部署K8S集群,可以按照以下步骤进行操作: 1.下载Kubeasz离线 首先需要从Kubeasz官网下载离线。将离线解压到需要安装Kubernetes的机器上。 2.安装Ansible Kubeasz是基于Ansible的,因此需要安装Ansible。可以在安装Kubeasz之前或者在安装Kubeasz的过程中安装Ansible。 3.配置Ansible 在安装Kubeasz之前,需要在Ansible的配置文件中设置好需要安装Kubernetes的机器的IP地址和用户名等信息。可以在解压后的Kubeasz离线中找到ansible.cfg文件进行配置。 4.安装Docker Kubernetes必须使用Docker作为容器运行时。因此,在安装Kubernetes之前,需要安装Docker。可以在Kubeasz离线中找到docker-install.sh脚本进行安装。 5.安装Kubernetes 在安装好Docker之后,就可以开始安装Kubernetes了。可以在Kubeasz离线中找到kubernetes-install.yml文件进行安装。 6.安装Kubernetes Dashboard Kubernetes Dashboard是Kubernetes的Web管理界面,可以方便地管理Kubernetes集群。可以在Kubeasz离线中找到dashboard-install.yml文件进行安装。 7.验证Kubernetes集群 安装完成后,可以使用kubectl命令验证Kubernetes集群是否正常运行。可以使用以下命令查看Kubernetes集群的节点信息: kubectl get nodes 如果输出的结果中显示所有节点都处于Ready状态,则说明Kubernetes集群已经成功部署。 以上就是使用Kubeasz离线部署K8S集群的步骤。需要注意的是,在离线环境下部署Kubernetes需要提前准备好所有的安装和依赖项,并确保安装过程中没有网络访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值