“Kubespray 功能概述”:原始版本和我们的分支之间的差异

莫斯科时间 23 月 20.00 日 XNUMX 点,Sergey Bondarev 将举办免费网络研讨会“Kubespray 功能概述”,他将告诉您如何准备 kubespray,以便快速、高效且容错地完成它。

Sergey Bondarev 将告诉您原始版本和我们的前叉版本之间的区别:

“Kubespray 功能概述”:原始版本和我们的分支之间的差异

原始版本和我们的叉子之间的区别。

那些已经接触过cubespray的人现在可能想知道为什么我将kubeadm与cubespray进行对比,因为创建集群的cubespray调用了kubeadm,乍一看像是一个用于安装包和自动启动的脚本。

但情况并非总是如此;最初,cubespray 独立安装了所有组件:

  • 组装的etcd集群;
  • 安装多维数据集,为静态控制平面 Pod 和其他服务组件生成证书、配置和访问令牌;
  • 为工作节点创建服务帐户并将它们连接到集群。

但前年他们砍掉了这个功能,只留下了 kubadm。 这在当时并不是很好。 我感到被冒犯了,于是我制作了自己的叉子,在其中我保留了经典的安装模式,事实上,现在我使这个叉子保持最新状态,从原始的cubespray中挑选提交给我自己。 一路走来,整理经典模式,进行新的改变。

结果,我的fork创建的集群和原来的集群之间的区别就是kube-proxy和证书的有效期。

在我的分叉中,一切都保持原样 - 代理多维数据集作为静态 Pod 启动,证书颁发 100 年。

在 Kubeadm 中,代理多维数据集作为守护进程启动,颁发的证书有效期为 1 年,并且必须定期更新。 kubeadm 终于学会了如何使用一个命令来做到这一点。

差异很小,今天我们使用这两种选项。

工业运行时的特点(缺点):

该脚本是通用的,因此速度不是很快。 您可以通过消除检查并从现成的映像启动来显着加快自己的速度。

剧本复杂,有不合逻辑的地方,遗产很重。 安装额外的通过cubespray 的控制器和软件 - 非常适合培训和测试。 在舞会上。 对于操作而言,依赖于cubespray并不是一个很好的主意,而且软件更新是使用“杀死它并制作一个新的”方法来实现的 - 这意味着服务的中断。

只能添加工作节点,对于主节点来说,证书存在一些细微差别,并且脚本不能处理所有可能出现的问题。

例如,我遇到了 kubeadm 的问题,在添加第二个和第三个 master 时崩溃了,之后,cubespray 在节点上重置了 kubeadm,并尝试再次添加 master。

唯一的问题是,当故障发生时,第二个 etcd 实例已经成功注册,并且由于重置后它也被删除,我们最终陷入了一场噩梦 - 一个由两个节点组成的 etcd 集群,其中一个是已删除,第二个不再接受客户。 结果,星团没有出生就死了。

开源就是这样。

所有这些以及更多内容都在免费网络研讨会中“Kubespray 功能概述» 23 月 20.00 日,莫斯科时间 XNUMX 点。

Присоединяйтесь!

来源: habr.com

添加评论