AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1031252
Accepted
Niels Basjes
Niels Basjes
Asked: 2020-08-25 03:40:57 +0800 CST2020-08-25 03:40:57 +0800 CST 2020-08-25 03:40:57 +0800 CST

我可以在所有 Keepalived 节点上拥有相同的配置吗?

  • 772

在尝试将实验性 Kubernetes 集群(在我的笔记本电脑上的几个虚拟机中)配置为“高可用”时,我发现建议使用 keepalived 和 haproxy 的组合来执行此操作(https://github.com/kubernetes/kubeadm/blob /master/docs/ha-considerations.md#options-for-software-load-balancing)。

查看我阅读的配置设置

${STATE} 对于一个主机是 MASTER,对于所有其他主机是 BACKUP,因此虚拟 IP 最初将分配给 MASTER。

主服务器上的 ${PRIORITY} 应该高于备份服务器。因此,分别为 101 和 100 就足够了。

这些设置让我感到惊讶。似乎我必须选择这些系统中的哪一个作为初始主控系统,并且我必须在节点本身中“硬”配置它。

对我来说,这种“高可用性”设置偏离了我在 Kubernetes 中发现的“宠物”/“牛”类比。

其他系统,例如 HBase,具有类似的设置(一个活动领导者和多个备用领导者),并且都配置“相同”(通过 ZooKeeper 完成选举)。

有没有一种方法可以配置 Keepalived(用于 Kubernetes),使所有节点都具有相同的配置并且仍然可以正常工作?

kubernetes keepalived
  • 2 2 个回答
  • 388 Views

2 个回答

  • Voted
  1. Best Answer
    Matt
    2020-08-25T18:25:07+08:002020-08-25T18:25:07+08:00

    Kubernetes 本身为应用程序提供“牛”服务。尽管许多“主”kubernetes 服务都基于相同的基础设施,但在某些时候,您需要引导一个具有较低级别的服务来启动它。

    链接的 kubernetes docco中配置的keepalived提供了一个VRRP虚拟 IP 地址作为 master 之间共享的高可用性端点。

    所有节点都配置相同的 VRRP IP 地址(或名称),keepalived 在主节点周围移动该地址。“选举”在 keepalived 健康检查和故障转移逻辑中完成。

    此方法的替代方法是将负载平衡决策移至外部设备或客户端。您可以在每个节点上运行反向代理(如 haproxy),它可以加权 kube-api 服务器并完成健康检查。

    • 2
  2. Anders
    2022-01-06T07:12:45+08:002022-01-06T07:12:45+08:00

    我意识到这是一个陈旧的线程,但我认为无论如何我都会插话,因为我在所有节点上运行了具有相同配置的 KeepaliveD。

    在 Debian 上,我们将所有节点最初设置为 BACKUP,并进行某种健康检查以提高优先级(例如 KeepaliveD 运行了多长时间,或者对您想要 HA 的本地服务进行健康检查......)

    VRRP v2 是 KeepaliveD(至少是我使用过的版本)在 Debian 上运行的版本,它具有决胜局功能,如果多个节点上的优先级相同,则“最高 IP”获胜。

    如果所有节点同时启动,这可能会导致初始延迟,但在我们使用它的地方这是可以接受的。

    希望有帮助。

    • 0

相关问题

  • 无法通过 Docker 在本地运行 Hyperkube (kubernetes)

  • 跨 Kubernetes 分散工作负载

  • Kubernetes升级回滚机器类型

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve