使用 VPA 的 Kubernetes 自动缩放 - 关闭还是自动更新模式?

标签 kubernetes google-kubernetes-engine cluster-computing recommendation-engine

为了项目的需要,我在 GKE 上创建了 2 个 Kubernetes 集群。
集群 1 : 一个 Pod 中有 10 个容器
集群 2 :10 个不同 Pod 中的 10 个容器
所有的容器都连接起来,构成一个应用程序。
我想做的是生成一些负载并观察 vpa 如何自动缩放容器..
到目前为止,使用“ Auto ”模式我注意到 VPA 仅在开始时更改值一次,而不是在我生成负载时

上界太高了,所以不需要任何改变!
你会建议我:
1) 使用自动或推荐模式?

2) 为我的应用程序创建 1 或 2 个副本?
另外我想说 10 个容器中的 2 个是 mysql MongoDB .所以如果我必须创建 2 个副本,我应该使用 状态集或运算符 , 对?
非常感谢你!!

最佳答案

当你说这个的时候不确定你是认真的

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 也会运行。

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?


您可以在其中使用运算符和有状态集 no ,可能运算符理想地创建有状态集。
除非您有良好的 DBA 经验并且您知道,否则手动实现跨副本的 MySQL 复制将很困难。
与运算符(operator)一起,您将获得自动备份、复制自动管理和其他此类功能的好处。
Operator 会间接创建有状态集或部署,但您无需进行太多管理,也无需担心复制和故障转移计划以及数据库策略。

关于使用 VPA 的 Kubernetes 自动缩放 - 关闭还是自动更新模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69516235/

相关文章:

apache - 何时使用 Apache Helix 以及何时使用 Apache Mesos

kubernetes - 有没有办法让 kubectl 应用重启部署,其镜像标签没有改变?

kubernetes - kubectl status.phase=运行返回错误结果

google-cloud-platform - Google 云免费试用计费帐户 1 周后关闭,仍有余额

kubernetes - 远程写和远程读的Prometheus错误 “server returned HTTP status 401 Unauthorized”

redis - 如何搭建一个简化的redis集群(支持数据分片、负载均衡)?

ubuntu - .bashrc 文件未反射(reflect)更改

proxy - KUBE_SERVICE 在 iptables 中插入 REJECT 规则

json - 如何使用 kubectl 在部署中修补容器环境变量?

python-3.x - 如何使用python删除GKE(Google Kubernetes Engine)集群?