本文将讨论如何在集群中扩缩主节点和工作节点。
本文假设您已经有一个用 Juju 部署、正在运行的集群。
任何应用都可以在部署之后进行横向扩容。 charms 将会不停地更新进度状态信息,建议运行如下命令。
watch -c juju status --color
Kubernetes 主节点充当了集群中控制平面的角色。 在设计上,这些主节点可以独立于工作节点进行扩缩容,从而带来运维上的灵活性。 想要添加一个主节点,只需要执行以下命令:
juju add-unit kubernetes-master
这将会在控制平面中添加一个新的主节点。 参见构建高可用集群文档,获取更多信息。
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 在 Kubernetes 集群中用作键值存储。 集群默认使用一个存储实例。
由于仲裁机制的关系,推荐保有奇数个 etcd 节点。 根据集群的大小,推荐使用3、5、7 或 9 个节点。 CoreOS etcd 文档有一个关于最佳集群大小的图表, 可以参考确定最佳的容错设计。
添加 etcd 单元:
juju add-unit etcd
不建议在扩容 etcd 集群之后对其缩容。
一个负责协调每台机器上 Juju 代理(这些代理管理 Kubernetes 集群)的节点被称为控制器节点。 对于生产环境下的部署,建议启用控制器节点的高可用性:
juju enable-ha
启用 HA 将会创建 3 个控制器节点,对于大多数情况而言应该是足够的。 而对于超大型的部署,也同时支持 5 或 7 个控制器节点。
参见 Juju HA 控制器文档 获取更多信息.
此页是否对您有帮助?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.