使用 Sealos 在 3 分钟内快速部署一个生产级别的 Kubernetes 高可用集群

640?wx_fmt=jpeg

前段时间,我们在 「使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群」一文中介绍了如何使用 Kind 这个开箱即可快速部署 Kubernetes 高可用集群的神器,相信不少同学用上这个神器后大大的降低了 Kubernetes 集群的部署难度和提高了 Kubernetes 集群的部署速度。

不过有一点比较遗憾的是 Kind 当前仅仅支持在本地快速构建一个开发或者测试环境,目前暂时还是不支持在生产环境中部署 Kubernetes 高可用集群的。今天,我们就要给大家介绍另一款可以支持在生产环境中部署 Kubernetes 高可用集群的利器 Sealos

什么是 Sealos ?

Sealos 是一个 Go 语言开发的简单干净且轻量的 Kubernetes 集群部署工具,Sealos 能很好的支持在生产环境中部署高可用的 Kubernetes 集群。

640?wx_fmt=png

Sealos 架构图

Sealos 特性与优势

  1. 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。

  2. 证书有效期默认延期至 99 年。

  3. 工具使用非常简单。

  4. 支持使用自定义配置文件,可灵活完成集群环境定制。

  5. 使用内核进行本地负载,稳定性极高,故障排查也极其简单。

Sealos 设计原则和工作原理

1. 为什么不使用 Ansilbe 实现

Sealos 1.0 版本时是使用 Ansible 实现的,这样在使用时就必须先安装 Ansible 及一些 Python 的依赖包和进行一些必须的相关环境配置,使用起来还是比较复杂的。

为了解决这个问题,目前新版本的 Sealos 采用二进制文件方式提供。新版本 Sealos 没有任何依赖,开箱即用。

文件分发与远程命令都通过调用对应 SDK 实现,不依赖其它任何环境。

2. 为什么不用 KeepAlived 和 HAProxy 实现集群高可用

无论是通过 KeepAlived 还是 HAProxy 进行高可用集群调度都会存在以下一些劣势。

  1. 软件源不一致可能导致容器中安装的软件版本也不一致,进而会引起相应检查脚本不生效等故障。

  2. 可能因为系统依赖库问题,在某些特定环境下就直接无法完成安装。

  3. 只依靠检测 HAProxy 进程是否存活是无法保证集群高可用的,正确的检测方式应该是判断 ApiServer 是否 healthz 状态。

  4. Keepalived 可能存在 Cpu 占满的情况。

3. 本地负载为什么不使用 Envoy 或者 Nginx 实现

Sealos 高可用实现是通过本地负载方式完成的。本地负载实现方式有多种,比如:IPVSEnvoyNginx 等,而 Sealos 采用的是通过内核  IPVS 来实现的。

本地负载:在每个 Node 节点上都启动一个负载均衡,同时监听集群中的多个 Master 节点。

Sealos 选择通过内核 IPVS 来实现主要有以下几个原因:

  • 如果使用 Envoy 等需要在每个节点上都跑一个进程,消耗更多资源。虽然 IPVS 实际上也会多跑一个 lvscare 进程 ,但是 lvscare 只是负责管理 IPVS 规则,原理和 Kube-Proxy

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值