【问题标题】:Creating multi master kubernetes HA cluster with config.yaml使用 config.yaml 创建多主 Kubernetes HA 集群
【发布时间】:2018-05-10 23:27:18
【问题描述】:

我现在正在探索如何创建具有 3 个主节点和 3 个工作节点的 HA Kubernetes 集群。我正在关注以下文档,

https://kubernetes.io/docs/setup/independent/high-availability/

在这里,我正在关注文档中的第二个选项。即,在主节点上托管 etcd 集群。因此,根据文档,我从步骤开始-“在 master0 上运行 kubeadm init”。意味着我在主节点上托管 etcd 集群。当我引用我需要创建的配置文件时,我对配置文件中的某些术语感到困惑。为了清楚起见,让我在这里添加配置文件,

   cat >config.yaml <<EOF
   apiVersion: kubeadm.k8s.io/v1alpha1
   kind: MasterConfiguration
   api:
      advertiseAddress: <private-ip>
   etcd:
      endpoints:
      - https://<etcd0-ip-address>:2379
      - https://<etcd1-ip-address>:2379
      - https://<etcd2-ip-address>:2379
      caFile: /etc/kubernetes/pki/etcd/ca.pem
      certFile: /etc/kubernetes/pki/etcd/client.pem
      keyFile: /etc/kubernetes/pki/etcd/client-key.pem
   networking:
     podSubnet: <podCIDR>
   apiServerCertSANs:
   - <load-balancer-ip>
   apiServerExtraArgs:
     apiserver-count: "3"
   EOF 

怀疑

  1. 在这里,并且,我可以用我为主节点选择的机器的 IP 地址替换 etcd0-ip-address 、 etcd1-ip-address 和 etcd2-ip-address 吗? , 因为我没有在单独的虚拟机中形成 etcd。我选择在同一个主节点上创建。那么这里可以直接给3 master VM的IP地址吗?

【问题讨论】:

  • 是的 - 这些字段应该包含托管 etcd 的机器的 IP 地址,在您的情况下,在常见情况下,它们是主节点。不在 k8s 主节点上运行 etcd 的人已经在其他地方运行 etcd 集群,因此他们使用该 etcd 集群来服务 kubernetes。
  • 感谢您的回复。我明白你的意思了。也在下面 Mr.d0bry 解释了你的观点。

标签: kubernetes


【解决方案1】:

我想扩展 Jonah Benton 的回答,简要描述了它的工作原理。

Kubernetes 集群由三种主要类型的组件组成。 安装的组件为节点创建角色。节点是集群所在的虚拟机或物理机 服务正在运行。这些组件可以在逻辑上位于不同的节点上,也可以安装在一个节点上,就像在 minikube 中一样。

Kubernetes master 节点需要运行 API server、Controller Manager、Scheduler 等守护进程。 在使用这些软件组件时,主节点正在管理容器引擎、iptables、kubelet 所在的工作节点 和服务代理正在运行。

Etcd 是一个组件,其中运行集群的状态用于 HA、负载平衡和健康检查 的节点被保存。建议在集群的 1、3 或最多 5 个节点上运行 etcd,以实现集群的可靠性和复制 健康)状况。安装了 etcd 作为附加组件的 Worker 节点是一种流行的安装方法。

我们只能在运行 API 服务器的节点上调用真正的主节点。

让我们看看你提供的配置文件:

    etcd:   
      endpoints: 
      - https://<etcd0-ip-address>:2379 
      - https://<etcd1-ip-address>:2379 
      - https://<etcd2-ip-address>:2379

关于你的问题,答案是肯定的。这是为定义 etcd 守护进程的端点而保留的位置。如果你计划 要拥有一个运行 etcd 的主节点的高可用性集群,您可以将这些条目替换为主节点 IP 地址。

我在document 中找到了描述良好的 Kubernetes 组件。它可能有助于理解 Kubernetes Cluster 的依赖关系。

【讨论】:

  • 感谢您的回复。我明白了。但是您在此处提供的链接是一般性的想法。在 HA Kubernetes 集群中并不深入。而这里我也感觉到“- ”。如何在此处添加负载均衡器 Ip?我需要为此添加另一个虚拟机吗?
  • 在多主集群中,api服务器的客户端需要决定与哪个api服务器通信。大多数客户端组件无法获取 3 或 5 个 ip 地址并进行自己的故障转移和重试(例如,如果他们正在与之交谈的特定主服务器死亡),因此常见的情况是也在前面运行一个高可用性负载均衡器大师。高可用性的最低要求是在 2 个虚拟机上运行负载平衡软件,并拥有一个虚拟 IP 或 VIP,这些虚拟机以各种方式轮流进行广告。该 VIP 是负载平衡器 IP。它是集群的虚拟api服务器。
猜你喜欢
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
相关资源
最近更新 更多