Kubernetes高可用性的考虑

半兽人 发表于: 2021-01-25   最后更新时间: 2022-08-15 20:02:54  
{{totalSubscript}} 订阅, 3,989 游览

高可用性考虑因素

本文提供了Kubernetes社区对设置高可用性Kubernetes集群的注意事项,请认真阅读。

概述

当创建生产集群时,高可用性是必须的(集群在某些master节点工作节点失效时仍能保持运行的能力)。对于工作节点,假设有足够多的节点。也要在规划和设置集群时,需要考虑到master节点etcd实例的冗余。

kubeadm支持设置多个master和多etcd集群。 但仍有一些方面需要考虑和设置,这些方面并不是Kubernetes本身的一部分,因此项目文档中没有涉及。本文档提供了一些额外的信息和例子,在用kubeadm规划和引导HA集群时很有用。

软件负载均衡的选项

当创建有多个master节点的集群时,可以将API Server实例放在负载均衡后面,可以在运行kubeadm init时使用--control-plane-endpoint来实现高可用。

当然,负载均衡器本身也应该是高度可用的。这通常是通过给负载均衡器增加冗余来实现的。为此,设置一个管理虚拟IP的主机集群,每台主机运行一个负载均衡器的实例,这样在其他主机处于待机状态时,总是使用当前持有vIP的主机上的负载均衡器。

在某些环境中,例如在具有专用负载均衡组件(例如由某些云提供商提供)的数据中心中,该功能可能已经可用。如果没有,可以使用用户管理的负载均衡。在这种情况下,在启动集群之前需要做一些准备工作。

由于这不是Kubernetes或kubeadm的一部分,所以必须单独处理。在下面的介绍中,我们给出了一些例子,当然也有可能是其他几十种可能的配置。

有了服务,现在可以使用kubeadm init来启动Kubernetes集群了。

HA方案

我们提供2种ha的例子给大家,根据自身的需要,任选其一:

安装完成之后,可以使用kubeadm init来启动Kubernetes集群了。

引导集群

现在可以按照使用 kubeadm 创建 k8s)中的描述进行集群安装了。

请注意,如果${APISERVER_DEST_PORT}在上面的配置中被配置为与6443不同的值,需要告诉kubeadm init为API服务器使用该端口。假设在一个新的集群中,API服务器的负载均衡端口为8443,虚拟IP的DNS名称为vip.mycluster.local,则需要向kubeadm传递一个参数--control-plan-endpoint,如下所示。

# kubeadm init --control-plane-endpoint vip.mycluster.local:8443 [additional arguments ...]

原文地址

High Availability Considerations

更新于 2022-08-15

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章