【k8s实战】kubeasz离线部署多master高可用集群

本文介绍了如何使用kubeasz快速部署一套基于二进制的k8s高可用集群,包括安装规划、安装部署过程,以及集群的扩展使用。通过kubeasz自动化工具,可以实现离线安装,并提供了对kubernetes-dashboard的访问和集群验证。此外,文章还探讨了kubeasz在docker离线交付和ARM架构适配改造的应用潜力。
摘要由CSDN通过智能技术生成

背景

kubeasz是一个利用ansible-playbook基于二进制方式自动化部署和运维k8s集群的开源项目,目前该项目最新发布版本为3.3.0,基于该版本我们可以快速实现部署最高版本为1.24.1的k8s集群。

安装规划

K8s HA-architecture

基于kubeasz安装的k8s高可用架构方案如上,目前kubeasz的官方文档中Node节点还使用的是haproxy处理自身高可用,但实际上kubeasz-3.3.0目前是使用kube-lb代替了haproxy,这部分内容官方还没有来得及更新,使用上留意下就可以了。

使用kubeasz默认安装的kubernetes集群主要特性如下

•etcd集群独立于kubernetes集群

•kubernetes三大组件均二进制运行

•各节点服务器都经过基本的性能基线设置,能满足常规的使用场景

•使用证书有效期为100年

•集群通过kube-lb组件实现内部高可用

•集成安装了kubernetes-dashboard,开箱即用

高可用集群所需节点配置如下

角色

服务器

描述

部署节点

10.0.1.121

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

etcd节点

10.0.1.122

10.0.1.123

10.0.1.124

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

master节点

10.0.1.122

10.0.1.123

10.0.1.124

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

node节点

10.0.1.125

10.0.1.126

10.0.1.127

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

以上服务器均是在一台普通台式机开的虚拟机,配置均是1c4g40g,最小化安装centos7.9。本次部署将以10.0.1.121作为宿主机通过kubeasz容器在线安装k8s集群,其中kubeasz使用即时的最新版本3.3.0。部署的k8s集群版本信息如下:

•k8s: v1.24.1

•etcd: v3.5.4

•containerd: 1.6.4

•flanal: v0.15.1

•dashboard: v2.5.1

安装部署

以下所有操作在部署节点10.0.1.121完成。

准备环境

准备脚本、二进制文件和镜像文件

# 下载工具脚本ezdown,使用kubeasz版本3.3.0
export release=3.3.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
# 使用工具脚本下载
./ezdown -D

./ezdown -D命令多执行几遍,直至再执行的时候不再downloading为止。这样就在/etc/kubeasz目录下下载了在线安装所有需要的脚本、二进制文件和镜像文件。

另外,通过执行./ezdown -D我们会发现docker环境也在主控宿主机安装好了,这个效果即使在做非k8集群本地化交付场景的时候也特别有用。

[root@server121 ~]# docker version
Client:
 Version:           20.10.16
 API version:       1.41
 Go version:        go1.17.10
 Git commit:        aa7e414
 Built:             Thu May 12 09:14:28 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true


Server: Docker Engine - Community
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.10
  Git commit:       f756502
  Built:            Thu May 12 09:19:16 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.4
  GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
 runc:
  Version:          1.1.1
  GitCommit:        v1.1.1-0-g52de29d7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

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

设置ssh免密登陆部署服务器

# 主控机设置密钥
ssh-keygen


# 设置免密登陆
ssh-copy-id 10.0.1.122
ssh-copy-id 10.0.1.123
ssh-copy-id 10.0.1.124
ssh-copy-id 10.0.1.125
ssh-copy-id 10.0.1.126
ssh-copy-id 10.0.1.127

启动kubeasz容器

./ezdown -S
2022-07-01 19:56:27 INFO Action begin: start_kubeasz_docker
2022-07-01 19:56:27 INFO try to run kubeasz in a container
2022-07-01 19:56:27 DEBUG get host IP: 10.0.1.1
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、付费专栏及课程。

余额充值