kubernetes - 最小主备业务数

标签 kubernetes

我是Kubernetes的新手。就是说:我正在寻求将故障转移功能添加到您可能会视为旧服务的现有dockerized服务中,就某种意义而言,它需要主动/备用故障转移处理(完整的描述理由很长,它具有与空间索引和地理数据处理有关,在这种情况下,对于给定场景,具有多个 Activity 实例会使可伸缩性和性能方面变得更糟,例如,分片将变得难以处理。
我的服务是HTTP REST服务(在C++中),使用的是分布式RQLite DB的数据库客户端,该数据库存储此服务管理的所有数据。我要实现以下目标:

  • 我想一直保持3个RQLite服务连续运行,并尽可能将其分发到三个节点(注意:RQLite本身使用RAFT,默认组为三个)。
  • 我还希望我自己的应用程序始终运行2-3个服务,其中一个必须是主服务,其他必须保持待机状态。
  • 服务必须能够知道另一个(例如,解析RQLite实例的IP)

  • 我可能会错过它,但不要知道Kubernetes是否积极支持 Activity /备用。我在这里找到了一些过时的答案,例如(How should application using active/passive redundant model be containerized using kubernetes?)。
    但是在研究许多对我来说都是新的细节之前,我想先向您介绍一下Kubernetes是否真的是这种情况的正确基础(Nomad可能对这种“传统”应用程序更好吗?)?
    如果您能提供一个最小的示例来展示Kubernetes如何解决我的故障转移问题,那将是很棒的。

    最佳答案

    当然,关于Kubernetes。您也可以使用Nomad,我认为没有对与错,所以主要是关于意见和您想尝试的内容。
    我认为,如果您只想使用一个Kubernetes Service,则可以在副本中使用ReadinessProbes。您可以使用Deployment来管理副本。这是假设您的应用程序具有领导者选举机制(例如RAFT),该机制一次只能让1个pod /实例接收流量。领导者将始终通过准备就绪探测,而非领导者将使准备就绪探测失败。 Kubernetes服务不会将流量转发到未通过准备就绪探测的Pod。
    另一种选择是在2个或多个服务之前设置自己的代理,例如nginx / haproxy,该代理将进行运行状况检查,并且仅转发到“ Activity ”服务。
    Similar options are available with Nomad

    关于kubernetes - 最小主备业务数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62805592/

    相关文章:

    kubernetes - 如何在持久卷声明中启用存储大小参数?

    mongodb - 在用于 MongoDB 镜像的 Azure AKS 群集上增加副本数超过 1 时发生 CrashLoopBackOff

    kubernetes - 为每个用户授予特定 namespace 的特权

    kubernetes - Apache Mesos 与 Google Kubernetes

    java - Docker 容器中的微服务

    ssl - 使用自生成的 apiserver-kubelet-client.crt 证书初始化 K8S 集群时,某些 kubectl 命令不起作用

    docker - 创建时间戳 : null for Kubernetes replication controller template

    kubernetes - Pod 删除和 Pod 驱逐有什么区别?

    kubernetes - 如何在 Kubernetes 中公开 Ingress 以供外部访问?

    kubernetes - 我需要使用旧版 API 组吗?