首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于prod的k8s高可用性配置边缘案例

用于prod的k8s高可用性配置边缘案例
EN

Stack Overflow用户
提问于 2020-11-21 20:51:09
回答 1查看 72关注 0票数 2

我们在生产中有一个应用程序需要很高的可用性(100%),所以我们做了以下工作:

  1. 我们将3个实例配置为HA,但随后节点死亡。
  2. 我们配置了反亲和力(在不同的节点上运行),但是在节点上做了一些更新,并且我们在一些分钟内不可用(被逐出)。
  3. 现在我们考虑添加pod中断预算https://kubernetes.io/docs/concepts/workloads/pods/disruptions/

我的问题是:

  1. 结合力如何与豆荚破坏预算,可能是任何勾结?还是这是多余的秘密?
  2. 我是否需要添加其他配置,以确保我的豆荚始终运行(尽可能多)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-21 21:23:40

结合力如何与豆荚破坏预算,可能是任何勾结?还是这是多余的秘密?

亲和力与反亲和力是关于的,其中您的Pod被调度,例如,使得同一个应用程序的两个副本不被安排在同一个节点上。当使用自愿中断(如维护)时,豆荚破坏预算即将提高可用性。它们都与提高应用程序的可用性有关,但与彼此无关。

是否有任何其他的配置,我需要添加,以确保我的豆荚始终运行(尽可能多)

事情会失败的。您需要做的是采用分布式系统,并使您的所有工作负载成为分布式系统,例如具有多个实例以删除单个故障点。对于无状态工作负载(例如部署)和有状态工作负载(例如StatefulSet),这是不同的。对您来说最重要的是您的应用程序尽可能可用,但是单个实例(例如Pods)可能会失败,几乎没有任何用户注意到。

我们将3个实例配置为HA,但随后节点死亡。

事情总是会失败的。一个物理节点可能崩溃。您需要设计您的应用程序,以便它能够容忍一些失败。

如果您使用云提供商,您应该使用使用三个独立可用性区域的区域集群,并且您需要分散工作负载,以便在多个可用性区域中运行--这样,您的应用程序就可以容忍整个可用性区域的下降,而不会影响您的用户。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64947969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档