基於 Kubernetes 建置的開源 PaaS 平台 Cozystack 1.4 現已發布。該專案旨在為託管服務提供者提供一個即用型平台,並為建構私有雲和公有雲提供框架。該平台可直接安裝在伺服器上,涵蓋提供託管服務所需的所有基礎設施準備。 Cozystack 可讓您啟動和設定 Kubernetes 叢集、資料庫以及 虛擬機平台程式碼已發佈在 GitHub 上,並以 Apache-2.0 授權分發。
該平台包含一個基於 Kube-OVN 的開源網路基礎設施(fabric)實現,並使用 Cilium 進行服務網格組織,使用 MetalLB 進行服務公告。儲存採用 LINSTOR,它提供 ZFS 作為底層儲存層,並使用 DRBD 進行複製。此外,還包含一個基於 VictoriaMetrics 和 Grafana 的預先配置監控堆疊。啟動 虛擬機 該平台採用 KubeVirt 技術,可讓您直接在 Kubernetes 容器中運行傳統虛擬機,並且已與叢集 API 完成所有必要的集成,可在裸機 Kubernetes 叢集中啟動託管 Kubernetes 叢集。在這個平台上,您可以一鍵部署 Kafka、FerretDB、PostgreSQL、Cilium、Grafana、Victoria Metrics 等服務。
Cozystack 1.4.0 的主要特性:
- 我們推出了基於 cozystack-ui 專案的新管理介面。舊的 openapi-ui 和 BFF 技術堆疊已被替換為基於 React 19 和 TypeScript 建構的前端,可直接與 Kubernetes API 互動。此外,該介面現在支援虛擬機動態 VNC WebSocket URL、透過 ConfigMap 進行運行時品牌化、讀取應用程式目錄的 ApplicationDefinition 以及重定向舊的 /openapi-ui/* URL。
- 租戶叢集中的工作節點已實現持久性儲存。工作節點虛擬機器現在透過 KubeVirt dataVolumeTemplates 使用 PVC 磁碟,而不是 emptyDisk。這確保了虛擬機器重新啟動後 kubelet 憑證、kubeconfig 和 containerd 狀態得以保留。 ephemeralStorage 欄位已重新命名為 diskSize,並在 NodeGroup 層級新增了 storageClass 設定。舊值將在遷移過程中自動轉換。
- 新增了資源預設方案,類似雲端服務提供者使用的虛擬機器類型。預設的描述格式如下: 。其中,t1、c1、s1、u1 和 m1 系列分別代表不同的 CPU 和記憶體比例,尺寸從 nano 到 4xlarge。總共有 40 種不同的型號可供選擇。舊的預設名稱會儲存為舊版別名,並自動遷移,而不會更改實際的 CPU 和記憶體限制。
- 託管應用程式的聲明式備份系統已擴展。備份策略控制器現在支援 PostgreSQL、MariaDB、ClickHouse 和 FoundationDB 的備份策略。目前支援 BackupClass、Plan、BackupJob 和 RestoreJob,以及排程備份、臨時備份、原廠復原和還原到復原。資料上傳到與 S3 相容的物件存儲,憑證透過 Kubernetes Secret 傳輸。
- HAMi 2.8.1 新增了可選的 hami 系統包,用於在租戶叢集中共用存取 NVIDIA GPU。使用者工作負載可以從 nvidia.com/gpu、nvidia.com/gpumem 和 nvidia.com/gpucores 請求資源,從而允許多個 Pod 共享 vGPU。啟用此功能需要通過 hami.enabled 參數,並且需要 NVIDIA GPU Operator。
- 新增了統一的 publishing.proxyProtocol 設置,用於在執行 ingress-nginx 的主機上啟用代理協定。啟用後,Ouroboros 將自動部署,從而消除叢集對其公共名稱的請求的環回 NAT 問題。對於租戶集群,可以使用 addons.ouroboros.enabled 插件。
- cozystack-operator 新增了 HelmRelease 產生設定:間隔、重試間隔、安裝逾時、升級逾時和最大歷史記錄。重試策略已切換為 RetryOnFailure,並且可以透過 release.cozystack.io/helm-install-timeout 註解為單一應用程式指定逾時時間。這解決了租戶叢集冷啟動時出現的一些問題。
- 對於租戶 Kubernetes 工作節點,kubelet 會自動計算 CPU 和記憶體資源預留。叢集自動擴縮容註解現在反映的是已分配的資源,而不是 CPU 和記憶體的總量。
- 以下核心平台組件已更新:Talos 1.13.0、cert-manager 1.20.2、Cilium 1.19.3、NVIDIA GPU Operator 26.3.1、etcd-operator 0.4.3、KubeVirt 1.8.2、cozy-proxy 0.3.0 和 linstorc 1.1061.1.proxy 0.3.0 和 lin.10。新增軟體包:HAMi 2.8.1 和 Ouroboros 0.7.2。
- 改進的診斷功能:cozyreport 現在可以收集有關 Flux、cert-manager、主機環境、應用程式、應用程式定義和租戶資源的信息,並產生一個 summary.txt 文件,其中包含當前問題的簡要摘要。新增了 Grafana 儀表板和 GPU 監控資料收集規則。
- MongoDB、Kafka、租戶 Kubernetes 引導程式、etcd、Velero、Kamaji、LINSTOR、SeaweedFS、Harbor、物件儲存控制器、API 和其他元件中已實作錯誤修復。 API 中 TenantNamespace Get 和 Watch 處理程序中的 IDOR 漏洞已修復。
升級時請注意,由於遷移到持久性 PVC 磁碟,租用戶叢集工作節點將被順序取代一次。平台升級前運行的 KubeVirt 虛擬機器在升級到 KubeVirt 1.8.2 後需要冷啟動,因為舊版 virt-launcher 進程的即時遷移可能會因 QEMU 版本變更而失敗。此外,PostgreSQL 參數現在會進行類型檢查並對照禁用清單進行驗證,cert-manager 1.20 預設使用 UID/GID 65532 啟動容器。
來源: opennet.ru
