我是 Kubernetes 和集群的新手。
我想提出一个高可用性 Master Only Kubernetes 集群(不需要!)。
我有 2 个实例/服务器运行 Kubernetes 守护程序,并在两个节点上运行不同类型的 pod。
现在我想以某种方式创建集群,如果主机(2)之一关闭,那么来自该主机(2)的所有 pod 都应该移动到另一台主机(1)。
一旦主机(2)出现。豆荚应该飘回来。
请让我知道是否有任何方法可以实现这一目标?
我是 Kubernetes 和集群的新手。
我想提出一个高可用性 Master Only Kubernetes 集群(不需要!)。
我有 2 个实例/服务器运行 Kubernetes 守护程序,并在两个节点上运行不同类型的 pod。
现在我想以某种方式创建集群,如果主机(2)之一关闭,那么来自该主机(2)的所有 pod 都应该移动到另一台主机(1)。
一旦主机(2)出现。豆荚应该飘回来。
请让我知道是否有任何方法可以实现这一目标?
由于您的要求是拥有 2 节点仅主集群并且还具有 HA 功能,因此遗憾的是没有直接的方法来实现它。
原因是 kubeadm 部署的 2 节点 master-only 集群只有 2 个 etcd pod(每个节点上一个)。这使您没有容错能力。这意味着如果其中一个节点出现故障,etcd 集群将失去仲裁,剩余的 k8s 主节点将无法运行。
现在,如果您可以拥有一个可以维护奇数个 etcd 成员的外部 etcd 集群,那么可以,您可以拥有一个 2 节点 k8s 集群并且仍然具有 HA 功能。
主节点可能也用作工作节点,但不建议在生产环境中使用,主要是出于性能原因。
默认情况下,kubeadm
配置主节点,以便不能在其上运行任何工作负载,并且只有稍后添加的常规节点才能处理它。但是您可以轻松地覆盖此默认行为。
为了使工作负载也可以在主节点上调度,您需要从中删除以下taint,这是默认添加的:
kubectl taint nodes --all node-role.kubernetes.io/master-
要安装和配置多主 Kubernetes 集群,您可以按照本教程进行操作。它描述了具有 3 个主节点的场景,但您可以轻松地根据需要对其进行自定义。