参考文档:

Scaling

Charmed Kubernetes 的设计足够灵活,可以高效地运行您的工作负载。 Charmed Kubernetes 的各种组件可以水平扩展以满足需求或提高可靠性,如下所述。

注意:此处的信息用于扩展已安装的 Kubernetes® 本身。有关 pod 自动缩放的信息,请参阅 Kubernetes自动缩放文档以获取详细信息。

kubernetes-master

kubernetes-master 节点充当集群的控制平面。 Charmed Kubernetes 设计有单独的主节点,以便这些节点可以独立于工作单元进行扩展,以提供更高的效率和灵活性。

可以像这样添加额外的单元:

juju add-unit kubernetes-master

要添加多个单元,您还可以指定一个数值

juju add-unit kubernetes-master -n 3

kubernetes-worker

由于 Kubernetes 工作节点处理实际工作负载,它们通常运行在具有更多资源的机器上。 Juju 使用constraits来维护单元的资源配置文件。

您可以使用以下命令检查当前约束:

juju get-constraints kubernetes-worker

这将返回当前设置,例如:

cores=4 mem=4096M root-disk=16384M

要使用此资源配置文件创建额外的 kubernetes-worker 单元,您只需运行:

juju add-unit kubernetes-worker

要添加多个单位,您可以指定一个数字(例如 2)

juju add-unit kubernetes-worker -n 2

要添加具有特定新资源限制的附加单元,也可以在命令中指定这些单元。例如:

juju add-unit kubernetes-worker -n 2 --constraints “mem=6G cores=2”

.将导致添加两个新的 kubernetes-worker 单元,至少有 2 个内核、6G 内存和 16G 存储(因为继承了现有的应用程序约束)。

要更改 kubernetes-worker 未来所有单元的限制,您可以设置不同的限制,如下所示:

juju set-constraints kubernetes-worker cores=2 mem=6G root-disk=16G

请注意,在这种情况下,您提供的任何约束都将替换所有现有的约束,因此在此示例中,我们还包括现有的根磁盘要求。

注意:限制旨在提供所需的最小值。这可能导致实际实例远远超过这些值,具体取决于支持云。

缩减 kubernetes-worker

如果工作负载减少,还可以缩减工作节点的数量。为了安全地执行此操作,可以暂停要删除的节点。

juju run-action kubernetes-worker/3 pause --wait

暂停工作程序将向 Kubernetes 表明它已停止服务。任何工作负载都将迁移到替代工作单元。您可以使用以下命令验证这一点:

kubectl get pod -o wide

然后可以安全地移除单个单元(在本例中为 3):

juju remove-unit kubernetes-worker/3

请注意,由于 Juju 使用的编号系统,如果您随后添加此应用程序的其他单元,则任何先前删除的单元的编号 _ 将不会被重新使用。

etcd

Charmed Distribution of Kubernetes® 为 etcd 安装了一个三机集群,它提供了对单个故障的容忍度。如果您希望扩展容错,您可以添加额外的 etcd 单元。

juju add-unit etcd -n 2

etcd 的推荐集群大小是三、五或七台机器。由于同步数据,添加大量附加单元会对性能产生负面影响。

Juju 高可用

在 Charmed Kubernetes 的默认部署中,只有一个控制器实例,这对于关键应用程序来说是不可取的。可以横向扩展控制器本身以防止单点故障。

Juju 支持高可用性模式以运行具有自动故障转移的多个控制器。

单个命令将自动为 Juju 创建和维护高可用性

juju enable-ha

您可以通过列出控制器模型中的机器来验证是否已添加其他机器:

juju machines -m controller

有关更详细的指南,请参阅 Juju 高可用性文档


以下是实际操作:

因为原来部署的kubernetes master节点的约束是"root-disk=16G mem=4G cores=2",运行几天后,master节点的机器被log充满,所以准备增加新的master节点,并变更约束为root-disk 为60G。

增加两个两块cpu,内存4G,硬盘60G的kubernetes master节点:

juju add-unit kubernetes-master --n 2 --constraints="root-disk=60G mem=4G cores=2"

或者,也可以先增加带约束的机器,再增加单元到新增的机器。

增加机器,硬盘60G,内存4G,cpu数量2

juju add-machine --constraints="root-disk=60G mem=2G cores=2"
machine 24

然后再增加单元到此24机器

juju add-unit kubernetes-maseter --to 24

然后可以将原先的master/0和master/1节点暂停:

juju run-action kubernetes-master/0 pause --wait
juju run-action kubernetes-master/1 pause --wait

删除master/0和master/1节点

juju remove-unit master/0 --wait
juju remove-unit master/1 --wait
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐