低功耗集群-小巧、高效、但強大!
目錄:
- 前言
- 設置硬體
- 2.1 選擇適合的硬體設備
- 2.2 安裝RAM和儲存設備
- 2.3 機櫃和機架
- 遠程控制設備
- 3.1 使用Pi KVM遠程控制
- 3.2 使用Unify智能PDU控制電源
- 安裝操作系統
- 4.1 使用Mass或Metal作為服務器引導和配置工具
- 4.2 選擇合適的操作系統
- 搭建Kubernetes集群
- 5.1 選擇合適的Kubernetes發行版
- 5.2 使用K3s輕量級Kubernetes發行版
- 5.3 高可用性的Kubernetes集群設置
- 5.4 遵循Kubernetes最佳實踐
- 部署應用程式
- 6.1 安裝反向代理服務(Traffic)
- 6.2 安裝證書管理器(Cert Manager)
- 6.3 日誌、監控和可視化工具(Loki、Grafana和Prometheus)
- 6.4 測試高可用性
- 結論
- 7.1 小型而強大的低功耗伺服器
- 7.2 小型伺服器機架安裝
- 7.3 適合家庭使用的Kubernetes集群
- 7.4 未來擴展的可能性
小型低功耗伺服器:搭建個人Kubernetes集群 💻
養成在家裡建立小型伺服器集群的習慣可能會成為一種樂趣。虽然您可以使用傳統的桌面電腦作為伺服器,但最近的硬體技術進步使獨立設計的小型伺服器成為可能。 透過使用這些小型低功耗伺服器,您可以搭建一個運行Kubernetes的個人集群。
1. 前言
在過去的幾年裡,我在家裡的實驗室中運行了一些集群,但它們都是在虛擬化的Proxmox中運行的。然而,隨著時間的推移,我決定在這三個低功耗的小巧高效的Intel NUC上運行我的Kubernetes集群,這改變了我的做法。
2. 設置硬體
2.1 選擇適合的硬體設備
首先,我需要選擇適合的硬體設備來搭建我的個人Kubernetes集群。對於這個任務,Intel NUC是我的首選。這些小型設備僅為4x4英寸,但性能出色。我選擇了一款搭載Core i7處理器、64GB DDR4 RAM和大容量SSD硬碟的Intel NUC。
2.2 安裝RAM和儲存設備
為了確保設備能夠滿足我的需求,我將每台Intel NUC的RAM升級到64GB DDR4。此外,我還為每台設備添加了一個1TB的Samsung NVMe固態硬碟作為操作系統和工作負載存儲,以及一個額外的SSD硬碟來擴展Kubernetes存儲。
2.3 機櫃和機架
在安裝好硬體之後,我需要決定將這些設備放在哪個位置。雖然我可以將它們放在工作臺或桌上,但我有一個位於地下室的伺服器機架,我想要充分利用這個空間。MK1 Manufacturing是一家生產各種小型機架系統的小公司,他們的產品既可以適用於Max Studio、Lenovo ThinkStation和Mac Mini,也可以適用於Intel NUC等小型設備。我購買了他們為我的Intel NUC設計的機架,並且很容易地將所有設備安裝在機架內。他們甚至考慮了電源和網絡設備的線纜管理。
3. 遠程控制設備
3.1 使用Pi KVM遠程控制
您可能想知道我將如何遠程控制這些設備,因為我自己也曾經考慮過這個問題。在之前的一個視頻中,我提到過我購買了一個Pi KVM,使用HDMI切換器可以連接多個設備。透過使用Pi KVM,我甚至可以使用Wake-on-LAN功能開機這些設備,如果無法使用Wake-on-LAN,我可以使用UniFi智能PDU切換電源,強制開啟這些設備。
4. 安裝操作系統
4.1 使用Mass或Metal作為服務器引導和配置工具
在設置好硬體之後,我需要決定如何在這些設備上安裝操作系統。我選擇使用Mass或Metal作為服務器引導和配置工具,這讓我可以遠程引導和配置這些設備。對於操作系統的選擇,我選擇了Ubuntu Server,因為我喜歡Ubuntu,我的基礎設施中的其他部分也在使用Ubuntu,這樣可以更容易地進行管理。
5. 搭建Kubernetes集群
5.1 選擇合適的Kubernetes發行版
為了搭建我的Kubernetes集群,我首先需要選擇合適的Kubernetes發行版。有很多選擇,但我最終選擇了輕量級的K3s。我喜歡K3s的輕巧性和活躍的社區支持。
5.2 使用K3s輕量級Kubernetes發行版
安裝Kubernetes有很多種方式,但是我不想花費20多個小時進行手動安裝。所以我已經創建了一個可重複使用的Playbook,可以自動為我完成所有的安裝步驟。這個Playbook能夠為我搭建一個高可用的Kubernetes集群,包括高可用的Kubernetes API和服務負載均衡器。
5.3 高可用性的Kubernetes集群設置
對於這個Playbook的配置,我只需設定一些變量,例如時區、接口名稱等選項。由於我只有三個節點,我決定將etcd和控制平面安裝在運行工作負載的同一節點上。一般建議將這些角色分開,但我有足夠的計算能力、充足的RAM和NVMe硬碟,所以這不應該對我的小型集群造成影響。
5.4 遵循Kubernetes最佳實踐
搭建Kubernetes集群後,最重要的是要遵循Kubernetes的最佳實踐,以確保集群的穩定性和安全性。為此,我使用了一個稱為"DeTree"的工具,它可以幫助我檢測並修復任何Kubernetes配置的錯誤。
6. 部署應用程式
在設置好Kubernetes集群後,我可以開始部署我的應用程式。通常,我會安裝Traffic作為反向代理服務,並使用Cert Manager管理證書。此外,我還會安裝Loki、Grafana和Prometheus進行日誌、監控和視覺化。在這個例子中,我只是簡單地部署了一個運行Nginx的網頁伺服器容器。
7. 結論
透過搭建這個低功耗的小型伺服器集群,我學到了很多關於低功耗伺服器、Intel NUC、Kubernetes和高可用性的知識。這些小型設備非常適合作為伺服器,特別是在集群中運行時。如果您打算搭建自己的Kubernetes集群,我強烈建議您遵循最佳實踐,並使用DeTree等工具來幫助您避免任何配置錯誤。
亮點:
- 在家裡建立個人Kubernetes集群
- 使用小型低功耗設備(Intel NUC)
- 使用Pi KVM遠程控制設備
- 使用Mass或Metal作為服務器引導和配置工具
- 搭建高可用性的Kubernetes集群
- 部署應用程式並測試高可用性
常見問題與解答
問題:Intel NUC和傳統桌面電腦有什麼不同?
答:Intel NUC是一種小型設備,專為伺服器和嵌入式應用而設計。它比傳統桌面電腦體積更小,但性能更強大。
問題:為什麼使用K3s而不是其他Kubernetes發行版?
答:K3s是一個輕量級的Kubernetes發行版,具有活躍的社區支持。它非常適合在資源有限的環境中運行。
問題:如何確保Kubernetes集群的高可用性?
答:可以通過在不同的節點上運行控制平面和etcd角色來實現Kubernetes集群的高可用性。
問題:應該遵循哪些Kubernetes最佳實踐?
答:應該使用工具來檢查Kubernetes配置是否符合最佳實踐,例如使用DeTree工具。
問題:低功耗伺服器的能源消耗如何?
答:通常情况下,每個低功耗伺服器的能源消耗約為15至25瓦特,具體取決於硬體配置和負載。