使用 VPA 的 Kubernetes Autoscaling - 关闭或自动更新模式?

Kubernetes Autoscaling using VPA - Off or Auto update mode?

为了一个项目的需要,我在 GKE 上创建了 2 个 Kubernetes 集群。

集群 1一个 Pod 中有 10 个容器

集群 2:10 个容器中的 10 个 不同 Pods

所有容器连接起来,构成一个应用。

我想做的是生成一些负载并观察 vpa 如何自动缩放容器..

直到现在,使用“Auto”模式我注意到 VPA 只更改一次值,在开始时而不是在我生成负载时 和 上界太高了,不需要改变!

你会推荐我吗:

1)使用自动模式还是推荐模式?

2) 创建我的应用程序的 1 或 2 个副本?

我还想说 10 个容器中有 2 个是 mysqlmongoDB 。所以如果我必须创建 2 个副本,我应该使用 statefulsets 或 operators,对吗?

非常感谢!!

不确定你说这话的意思

Cluster 1: 10 containers in one Pod

Cluster 2: 10 containers in different Pods

一开始您没有遵循最佳实践,理想情况下,您应该将单个容器保存在单个 POD 中

运行一个 pod 中有 10 个容器太多了,如果存在相互依赖关系,您的代码应该使用 K8s 服务名称来相互连接。

to create 1 or 2 replicas of my application?

是的,运行 应用程序的多个副本总是更好,因此,如果由于任何原因甚至节点出现故障,您在另一个节点上的 POD 将 运行ning。

Also i would like to say that 2 of 10 containers is mysql and mongoDB . So if i have to create 2 replicas, i should use statefulsets or operators, right?

您可以在其中使用运算符和有状态集,这可能是运算符在理想情况下创建有状态集。

跨副本实施 MySQL 的复制将很难手动进行,除非您有良好的 DBA 经验并且您知道。

与操作员一起,您将获得自动备份、复制自动管理和其他类似功能的好处。

操作员间接创建有状态集或部署,但您不必管理太多,也不必担心复制和故障转移计划以及数据库策略。