K3s 安裝要求介紹

2022-08-24 10:57 更新

安裝要求介紹

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

無論您是將 K3s 集群配置為在 Docker 還是 Kubernetes 設置中運行,運行 K3s 的每個節(jié)點都應該滿足以下最低要求。你可能需要更多的資源來滿足你的需求。

先決條件

-兩個節(jié)點不能有相同的主機名。如果您的所有節(jié)點都有相同的主機名,請使用?--with-node-id?選項為每個節(jié)點添加一個隨機后綴,或者為您添加到集群的每個節(jié)點設計一個獨特的名稱,用?--node-name?或?$K3S_NODE_NAME?傳遞。

操作系統(tǒng)

K3s 有望在大多數(shù)現(xiàn)代 Linux 系統(tǒng)上運行。

有些操作系統(tǒng)有特定要求:

  • 如果您使用的是Raspbian Buster,請按照 這些步驟 切換到傳統(tǒng)的 iptables。
  • 如果您使用的是Alpine Linux,請按照 這些步驟 進行額外設置。
  • 如果您使用的是Red Hat/CentOS,請按照 這些步驟 進行額外設置。

關于 Rancher 管理的 K3s 集群測試了哪些操作系統(tǒng)的更多信息,請參考Rancher 支持和維護條款

硬件

硬件要求根據(jù)您部署的規(guī)模而變化。這里列出了最低建議。

CPU 和內存

  • CPU: 最低 1
  • 內存: 最低 512MB(建議至少為 1GB)

本節(jié) 的測試結果是為了確定 K3s agent、具有工作負載的 K3s server 和具有一個 agent 的 K3s server 的最低資源要求。它還包含了有關對 K3s server 和 agent 利用率產(chǎn)生最大影響的分析,以及如何保護集群數(shù)據(jù)存儲免受 agent 和工作負載的干擾。

磁盤

K3s 的性能取決于數(shù)據(jù)庫的性能。為了確保最佳速度,我們建議盡可能使用 SSD。在使用 SD 卡或 eMMC 的 ARM 設備上,磁盤性能會有所不同。

網(wǎng)絡

K3s server 需要 6443 端口才能被所有節(jié)點訪問。

當使用 Flannel VXLAN 時,節(jié)點需要能夠通過 UDP 端口 8472 訪問其他節(jié)點,或者當使用 Flannel Wireguard 后端時,節(jié)點需要能夠通過 UDP 端口 51820 和 51821(使用 IPv6 時)訪問其他節(jié)點。該節(jié)點不應偵聽任何其他端口。 K3s 使用反向隧道,以便節(jié)點與服務器建立出站連接,并且所有 kubelet 流量都通過該隧道運行。但是,如果你不使用 Flannel 并提供自己的自定義 CNI,那么 K3s 不需要 Flannel 所需的端口。

如果要使用?metrics server?,則需要在每個節(jié)點上打開端口 10250 端口。

如果計劃使用嵌入式 etcd 實現(xiàn)高可用性,則 server 節(jié)點必須在端口 2379 和 2380 上可以相互訪問。

重要
節(jié)點上的 VXLAN 端口不應公開暴露,因為它公開了集群網(wǎng)絡,任何人都可以訪問它。應在禁止訪問端口 8472 的防火墻/安全組后面運行節(jié)點。
警告: Flannel 依靠 Bridge CNI plugin 來創(chuàng)建一個可以交換流量的 L2 網(wǎng)絡。具有 NET_RAW 功能的 Rogue pod 可以濫用該 L2 網(wǎng)絡來發(fā)動攻擊,如  ARP 欺騙。因此,正如 kubernetes 文檔中記載的那樣,請設置一個受限配置文件,在不可信任的 pod 上禁用 NET_RAW。

K3s Server 節(jié)點的入站規(guī)則如下:

協(xié)議 端口 描述
TCP 6443 K3s agent 節(jié)點 Kubernetes API Server
UDP 8472 K3s server 和 agent 節(jié)點 僅對 Flannel VXLAN 需要
UDP 51820 K3s server 和 agent 節(jié)點 只有 Flannel Wireguard 后端需要
UDP 51821 K3s server 和 agent 節(jié)點 只有使用 IPv6 的 Flannel Wireguard 后端才需要
TCP 10250 K3s server 和 agent 節(jié)點 Kubelet metrics
TCP 2379-2380 K3s server 節(jié)點 只有嵌入式 etcd 高可用才需要

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

大型集群

硬件要求取決于您的 K3s 集群的大小。對于生產(chǎn)和大型集群,我們建議使用具有外部數(shù)據(jù)庫的高可用性設置。對于生產(chǎn)中的外部數(shù)據(jù)庫,建議使用以下選項:

  • MySQL
  • PostgreSQL
  • etcd

CPU 和 內存

以下是高可用 K3s server 中節(jié)點的最低 CPU 和內存要求:

部署規(guī)模 節(jié)點 VCPUS 內存
Small Up to 10 2 4 GB
Medium Up to 100 4 8 GB
Large Up to 250 8 16 GB
X-Large Up to 500 16 32 GB
XX-Large 500+ 32 64 GB

磁盤

集群性能取決于數(shù)據(jù)庫性能。為了確保最佳的讀寫速度,我們建議始終使用 SSD 磁盤來支持你的 K3s 集群。在云提供商上,您還需要使用允許最大 IOPS 的最小 size。

網(wǎng)絡

你應該考慮增加集群 CIDR 的子網(wǎng)大小,以免 Pod 的 IP 耗盡。你可以通過在啟動時向 K3s 服務器傳遞?--cluster-cidr?選項來實現(xiàn)。

數(shù)據(jù)庫

K3s 支持不同的數(shù)據(jù)庫,包括 MySQL、PostgreSQL、MariaDB 和 etcd,以下是運行大型集群所需的數(shù)據(jù)庫資源的大小指南:

部署規(guī)模 節(jié)點 VCPUS 內存
Small Up to 10 1 2 GB
Medium Up to 100 2 8 GB
Large Up to 250 4 16 GB
X-Large Up to 500 8 32 GB
XX-Large 500+ 16 64 GB


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號