当前位置: 首页 > 软件库 > 云计算 > >

sealos

Kubernetes 高可用安装工具
授权协议 Apache
开发语言 Google Go
所属分类 云计算
软件类型 开源软件
地区 国产
投 递 者 汪建白
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

sealos旨在做一个简单干净轻量级稳定的kubernetes安装工具,能很好的支持高可用安装。 

sealos特性与优势:

  • 支持离线安装,工具与资源包(二进制程序 配置文件 镜像 yaml文件等)分离,这样不同版本替换不同离线包即可
  • 证书延期
  • 使用简单
  • 支持自定义配置
  • 内核负载,极其稳定,因为简单所以排查问题也极其简单

本地负载为什么不使用envoy或者nginx

我们通过本地负载解决高可用问题

解释一下本地负载,就是在每个node节点上都启动一个负载均衡,上游就是三个master,负载方式有很多 ipvs envoy nginx等,我们最终使用内核ipvs

如果使用envoy等需要在每个节点上都跑一个进程,消耗更多资源,这是我不希望的。ipvs实际也多跑了一个进程lvscare,但是lvscare只是负责管理ipvs规则,和kube-proxy类似,真正的流量还是从很稳定的内核走的,不需要再把包走到用户态中去处理。

实现上有个问题会让使用envoy等变得非常尴尬,就是join时如果负载均衡没有建立那是会卡住的,kubelet就不会起,所以为此你需要先把envory起起来,意味着你又不能用static pod去管理它,同上面keepalived宿主机部署一样的问题,用static pod就会相互依赖,逻辑死锁,鸡说要先有蛋,蛋说要先有鸡,最后谁都没有。

使用ipvs就不一样,我可以在join之前先把ipvs规则建立好,再去join就可以join进去了,然后对规则进行守护即可。一旦apiserver不可访问了,会自动清理掉所有node上对应的ipvs规则, master恢复正常时添加回来。

为什么要定制kubeadm

首先是由于kubeadm把证书时间写死了,所以需要定制把它改成99年,虽然大部分人可以自己去签个新证书,但是我们还是不想再依赖个别的工具,就直接改源码了。

其次就是做本地负载时修改kubeadm代码是最方便的,因为在join时我们需要做两个事,第一join之前先创建好ipvs规则,第二创建static pod,如果这块不去定制kubeadm就把报静态pod目录已存在的错误,忽略这个错误很不优雅。 而且kubeadm中已经提供了一些很好用的sdk供我们去实现这个功能。

且这样做之后最核心的功能都集成到kubeadm中了,sealos就单单变成分发和执行上层命令的轻量级工具了,增加节点时我们也就可以直接用kubeadm了。

  • Sealos的特性 管理集群生命周期 快速安装高可用Kubernetes 集群 添加/删除节点 清理集群、备份与自动恢复等 下载和使用完全兼容OCI 标准的分布式应用 OpenEBS, MinIO, Ingress, PostgreSQL, MySQL, Redis 等 定制化分布式应用 用Dockerfile 构建分布式应用镜像,保存所有的依赖 发布分布式应用镜像到Docker Hub 融合多个

  • Sealos 是一个快速构建高可用 k8s 集群的命令行工具,该工具部署时会在第一个 k8s master 节点部署 registry 服务(sealos.hub),该域名通过 hosts 解析到第一个 k8s master 节点 ip;基于内核 ipvs 对 apiserver 进行负载均衡,其默认虚拟 ip 地址为 10.103.97.2(apiserver.cluster.local),所有

  • 蘆 个人博客: https://www.tingyinhu.com  微信公众号:java编程秀 ✏️ 记录基础知识,做大家的备忘录。  分享前沿技术,做大家的加油站。  如果文章对你有帮助的话,欢迎 「分享⏩在看点赞收藏」,不胜感激! 集群设计 作用 IP地址 操作系统 配置 master1 192.168.233.81 Centos7.9 基础设施服务器 2颗CPU 2G内存 50

  • sealos 与其它流行产品的差异与联系 sealos 与 helm helm 并不关心 kubernetes 集群生命周期的管理,但是 sealos 关心,sealos boot 模块整个云操作系统启动伸缩升级清理都会处理. helm 关心编排不关心打包,helm 里面依赖的 docker 镜像如何交付 helm 不关心,sealos 是把分布式应用的所有依赖打包. helm 不会内嵌一个 ku

  • 目录 1.修改主机名 2.添加 主机名与IP地址解析 3.升级服务器内核,时间同步,关闭防火墙,重启服务器 4.sealos 安装 5.离线环境安装,离线环境只需要提前导入镜像 5.1 加载离线包部署 6.kubernetes集群可用性验证 7.扩展安装 8. sealos 版本3.3-基本命令 1.修改主机名 hostnamectl set-hostname k8s-master01 host

 相关资料
  • 当我尝试部署Yii2高级模板时,我总是会遇到一个无法工作的应用程序。 错误消息是: 无效参数–yii\base\InvalidParamException要发布的文件或目录不存在:[……]/yii应用程序/供应商/鲍尔/jquery/dist 我尝试通过最新的composer版本进行安装,无论是否使用fxp资产插件。两种情况下的错误消息相同。 我使用官方文档在我的Ubuntu64 16.04 We

  • 概述 本文描述了 Xtensa Development Tools 的安装。 安装工具链 1. 准备工作 由于Xplorer没有64bit版本,如果你的操作系统是Linux 64bit的,需要先安装32bit的兼容包。 以下操作在Ubuntu版本14.04.4 LTS,内核版本4.2.0-27-generic上验证成功 sudo dpkg --add-architecture i386 sudo

  • 概述 本文描述了 Xtensa Development Tools 的安装。 安装工具链 1. 准备工作 由于Xplorer没有64bit版本,如果你的操作系统是Linux 64bit的,需要先安装32bit的兼容包。 以下操作在Ubuntu版本14.04.4 LTS,内核版本4.2.0-27-generic上验证成功 sudo dpkg --add-architecture i386 sudo

  • 我试图为我的离子4应用程序构建和生成一个apk。当我尝试这样做时,我会遇到以下错误: 对于这个问题,我已经在Stackoverflow上查看了许多其他解决方案,但没有任何解决方案能解决我的问题。我已经通过Android Studio SDK Manager安装了Android SDK和SDK工具。

  • 第一步:必须先编译过sdk,然后可以在以下路径找到工具链: openwrt/staging_dir/toolchain-arm_cortex-a7+neon_gcc-5.3.0_glibc-2.22_eabi 第二步:拷贝toolchain-arm_cortex-a7+neon_gcc-5.3.0_glibc-2.22_eabi到/opt目录下,设置环境变量: root@ubuntu:~$ vi

  • 警告:虽然Windows上的工具链是可用的,但官方并不支持,我们不推荐使用Windows。Windows上固件编译的过程十分缓慢,且不支持新的板子,比如骁龙(Snapdragon Flight),它也不能运行标准机器人软件包,许多开发人员使用原型计算机视觉和导航。开始在Windows上开发之前,可以考虑安装一个双启动环境 Ubuntu 。 开发环境安装 下载并在系统上安装这些: Qt Creato

  • 我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。 权限设置 警告:永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。 把用户添加到用户组 “dialout”: sudo usermod -a -G dialout $USER 然后注销后,重新登录,因为重新登录后所做的改变才会

  • 我正在执行< code > pip install setup tools-upgrade ,但出现以下错误 我错过了什么?我也尝试了sudo pip安装,但没有帮助。