Skip to main content

安装要求介绍

K3s 非常轻巧,但有一些最低要求,如下所述。

无论您是将 K3s 集群配置为在 Docker 还是 Kubernetes 设置中运行,运行 K3s 的每个节点都应该满足以下最低要求。你可能需要更多的资源来满足你的需求。

先决条件#

-两个节点不能有相同的主机名。如果您的所有节点都有相同的主机名,请使用--with-node-id选项为每个节点添加一个随机后缀,或者为您添加到集群的每个节点设计一个独特的名称,用--node-name$K3S_NODE_NAME传递。

操作系统#

K3s 有望在大多数现代 Linux 系统上运行。

有些操作系统有特定要求:

  • 如果您使用的是Raspbian Buster,请按照这些步骤切换到传统的 iptables。
  • 如果您使用的是Alpine Linux,请按照这些步骤进行额外设置。
  • 如果您使用的是Red Hat/CentOS,请按照这些步骤进行额外设置。

关于 Rancher 管理的 K3s 集群测试了哪些操作系统的更多信息,请参考Rancher 支持和维护条款。

硬件#

硬件要求根据您部署的规模而变化。这里列出了最低建议。

CPU 和内存#

  • CPU: 最低 1
  • 内存: 最低 512MB(建议至少为 1GB)

本节的测试结果是为了确定 K3s agent、具有工作负载的 K3s server 和具有一个 agent 的 K3s server 的最低资源要求。它还包含了有关对 K3s server 和 agent 利用率产生最大影响的分析,以及如何保护集群数据存储免受 agent 和工作负载的干扰。

磁盘#

K3s 的性能取决于数据库的性能。为了确保最佳速度,我们建议尽可能使用 SSD。在使用 SD 卡或 eMMC 的 ARM 设备上,磁盘性能会有所不同。

网络#

K3s server 需要 6443 端口才能被所有节点访问。

当使用 Flannel VXLAN 时,节点需要能够通过 UDP 端口 8472 访问其他节点,或者当使用 Flannel Wireguard 后端时,节点需要能够通过 UDP 端口 51820 和 51821(使用 IPv6 时)访问其他节点。该节点不应侦听任何其他端口。 K3s 使用反向隧道,以便节点与服务器建立出站连接,并且所有 kubelet 流量都通过该隧道运行。但是,如果你不使用 Flannel 并提供自己的自定义 CNI,那么 K3s 不需要 Flannel 所需的端口。

如果要使用metrics server,则需要在每个节点上打开端口 10250 端口。

如果计划使用嵌入式 etcd 实现高可用性,则 server 节点必须在端口 2379 和 2380 上可以相互访问。

重要

节点上的 VXLAN 端口不应公开暴露,因为它公开了集群网络,任何人都可以访问它。应在禁止访问端口 8472 的防火墙/安全组后面运行节点。

警告: Flannel 依靠 Bridge CNI plugin 来创建一个可以交换流量的 L2 网络。具有 NET_RAW 功能的 Rogue pod 可以滥用该 L2 网络来发动攻击,如 ARP 欺骗。因此,正如 kubernetes 文档中记载的那样,请设置一个受限配置文件,在不可信任的 pod 上禁用 NET_RAW。

K3s Server 节点的入站规则如下:

协议端口描述
TCP6443K3s agent 节点Kubernetes API Server
UDP8472K3s server 和 agent 节点仅对 Flannel VXLAN 需要
UDP51820K3s server 和 agent 节点只有 Flannel Wireguard 后端需要
UDP51821K3s server 和 agent 节点只有使用 IPv6 的 Flannel Wireguard 后端才需要
TCP10250K3s server 和 agent 节点Kubelet metrics
TCP2379-2380K3s server 节点只有嵌入式 etcd 高可用才需要

通常情况下,所有出站流量都是允许的。

大型集群#

硬件要求取决于您的 K3s 集群的大小。对于生产和大型集群,我们建议使用具有外部数据库的高可用性设置。对于生产中的外部数据库,建议使用以下选项:

  • MySQL
  • PostgreSQL
  • etcd

CPU 和 内存#

以下是高可用 K3s server 中节点的最低 CPU 和内存要求:

部署规模节点VCPUS内存
SmallUp to 1024 GB
MediumUp to 10048 GB
LargeUp to 250816 GB
X-LargeUp to 5001632 GB
XX-Large500+3264 GB

磁盘#

集群性能取决于数据库性能。为了确保最佳的读写速度,我们建议始终使用 SSD 磁盘来支持你的 K3s 集群。在云提供商上,您还需要使用允许最大 IOPS 的最小 size。

网络#

你应该考虑增加集群 CIDR 的子网大小,以免 Pod 的 IP 耗尽。你可以通过在启动时向 K3s 服务器传递--cluster-cidr选项来实现。

数据库#

K3s 支持不同的数据库,包括 MySQL、PostgreSQL、MariaDB 和 etcd,以下是运行大型集群所需的数据库资源的大小指南:

部署规模节点VCPUS内存
SmallUp to 1012 GB
MediumUp to 10028 GB
LargeUp to 250416 GB
X-LargeUp to 500832 GB
XX-Large500+1664 GB
Last updated on by hailong