Edit This Page

扩缩

本文将讨论如何在集群中扩缩主节点和工作节点。

准备开始

本文假设您已经有一个用 Juju 部署、正在运行的集群。

任何应用都可以在部署之后进行横向扩容。 charms 将会不停地更新进度状态信息,建议运行如下命令。

watch -c juju status --color

Kubernetes 主节点

Kubernetes 主节点充当了集群中控制平面的角色。 在设计上,这些主节点可以独立于工作节点进行扩缩容,从而带来运维上的灵活性。 想要添加一个主节点,只需要执行以下命令:

juju add-unit kubernetes-master

这将会在控制平面中添加一个新的主节点。 参见构建高可用集群文档,获取更多信息。

Kubernetes 工作节点

kubernetes-worker 节点是 Kubernetes 集群中承担负载的部分。

默认情况下,pod 会自动均匀部署在 kubernetes-worker 节点上。

如果想要在集群中添加更多的 kubernetes-worker 节点,运行如下命令:

juju add-unit kubernetes-worker

或者修改机器限制,来创建更大的节点:

juju set-constraints kubernetes-worker "cpu-cores=8 mem=32G"
juju add-unit kubernetes-worker

参见机器限制文档, 了解其它机器约束,这些约束可能对 kubernetes-worker unit 有帮助。

etcd

Etcd 在 Kubernetes 集群中用作键值存储。 集群默认使用一个存储实例。

由于仲裁机制的关系,推荐保有奇数个 etcd 节点。 根据集群的大小,推荐使用3、5、7 或 9 个节点。 CoreOS etcd 文档有一个关于最佳集群大小的图表, 可以参考确定最佳的容错设计。

添加 etcd 单元:

juju add-unit etcd

不建议在扩容 etcd 集群之后对其缩容。

Juju 控制器

一个负责协调每台机器上 Juju 代理(这些代理管理 Kubernetes 集群)的节点被称为控制器节点。 对于生产环境下的部署,建议启用控制器节点的高可用性:

juju enable-ha

启用 HA 将会创建 3 个控制器节点,对于大多数情况而言应该是足够的。 而对于超大型的部署,也同时支持 5 或 7 个控制器节点。

参见 Juju HA 控制器文档 获取更多信息.

反馈