k3s--面向低資源x86和arm平臺的輕量級Kubernetes版本
【編者的話】為低資源平臺而生的K3s,能否在邊緣計算中迅速發展
Kubernetes(K8s)被描述為 一個"行動式、可擴充套件的管理容器化負載和服務的開源平臺,它可以方便的使用宣告式配置和自動化。它有一個很大而且快速發展的生態系統。Kubernetes服務、支援和工具隨處可見。2014年穀歌開源了Kubernetes專案"。
然而,Rancher實驗室執行長樑勝解釋說:"現有Kubernetes版本往往是記憶體密集型和對於邊緣計算環境過於複雜"。因此,公司開發並推出了K3s,一個輕量級Kubernetes版本,旨在為開發者和運營商提供一種可以在資源受限的常見硬體平臺(x86、arm64-v8a、armeabi-v7a)上執行Kubernetes的方法,而不是雲上執行。

Rancher實驗室設法減少Kubernetes資源佔用,並主要通過以下四個主要步驟來更好的適應入門級硬體:
- 刪除舊的、非必須的程式碼:K3s不包括任何預設禁用的Alpha功能或者所有非預設許可控制器,in-tree雲提供商和儲存驅動程式也被預設禁用,但允許使用者新增任何他們需要的驅動程式。
- 整合正在執行程序的打包:為了節省RAM,通常在Kubernetes管理伺服器上執行的多個程序合併為單個程序,包括的kubelet、kubeproxy和flannel代理程序。
- 使用containerd代替Docker作為執行時的容器引擎:切換到containderd,刪除libnetwork、swarm、Docker儲存驅動程式和其他外掛等功能,Rancher大大降低了資源佔用。
- 引入SQLite作為可選的資料庫:Rancher在K3s中添加了SQLite作為可選的資料庫,作為etcd的一個輕量級的替代方案。
這個使得很容易安裝輕量級Kubernetes版本,不到40MB的二進位制檔案,只需要512MB的RAM來執行伺服器,每個節點執行需要75MB的RAM,基於Linux 3.10或更高版本。
一個公司的使用案例是:管理30000多個風力渦輪機的金風科技智慧能源,利用K3s使得他們在成千上萬的邊緣裝置上部署Kubernetes叢集。
在樹莓派上安裝K3s的指令可以在Medium 找到,基本上如果你已經有一個為板子配置好映象,你所要做的是執行:
curl -sfL https://get.k3s.io | sh -
這將自動根據你的架構平臺安裝K3s架構(arm64、armhf),更多細節可以訪問官方網站 和K3s github repo .
執行伺服器:
sudo k3s server & sudo k3s kubectl get node
和一個代理:
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}1
NODE_TOKEN來自伺服器的
/var/lib/rancher/k3s/server/node-token
作為“CI/CD for embedded development with an ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi, and Kubernetes ”討論的一部分,K3s在FOSDEM 2019 也有介紹。
原文連結:K3s Lightweight Kubernetes Distribution Targets Low Resources x86 and Arm Platforms (譯者:姜俊厚)