Zeaburv0.1.0

在自己的叢集上,用專案和服務管理 Kubernetes

Zeabur 直接讀取 Kubernetes 物件,把 Namespace 整理成專案和服務,說明哪裡出了問題。改設定前,先列出這次會寫入哪些欄位,確認後才套用。

看全部 88 項功能

沒有自己的資料庫,也沒有自己的權限

從叢集讀取,確認後才寫回去

  1. 讀取

    依 selector、Service、HTTPRoute 和 volume 的關係,把 Deployment、PVC、Secret 這些物件組成服務。

  2. 呈現

    專案就是加了標籤的 Namespace。需要處理的服務排在最前面,旁邊就是記錄和事件。

  3. 寫入

    每一筆寫入先送 kube-apiserver dry run,全部通過才真正寫入。物件被別人改過,就不會寫入。

從部署到出問題

部署與設定

改之前,先看會發生什麼

映像檔、Compose、Git 或 YAML 都能部署。每次修改先列出會寫入的欄位、哪些服務會重新啟動、會不會掉資料,確認後才套用。

這組的 18 項功能
儲存 web 的變更前先檢查:2 個副本會逐一替換,服務不會中斷,資源也夠儲存 web 的變更前先檢查:2 個副本會逐一替換,服務不會中斷,資源也夠

網路與網域

網域、憑證和連線規則

加網域時列出要設的 DNS 紀錄,憑證自動續期。網址打不開時,連線檢查會指出卡在 DNS、入口還是服務。

這組的 12 項功能

資料與備份

資料庫和備份放在一起

選一種資料庫,由它自己的 operator 管。排程備份到 S3,需要時還原成新的資料庫,確認沒問題再把服務指過去。

這組的 13 項功能
只有一個執行個體的 PostgreSQL。它故障時沒有其他執行個體接手,所以 Zeabur 提醒你設定備份。只有一個執行個體的 PostgreSQL。它故障時沒有其他執行個體接手,所以 Zeabur 提醒你設定備份。

看出哪裡出錯

用一般話說哪裡壞了

服務不健康時,畫面說明原因,附上依據和下一步,不靠 AI。同一個原因拖垮好幾個服務時,只算一件事。

這組的 13 項功能
worker 重新啟動了 14 次。錯誤在重新啟動前那一次的記錄裡,旁邊就是開啟記錄的按鈕。worker 重新啟動了 14 次。錯誤在重新啟動前那一次的記錄裡,旁邊就是開啟記錄的按鈕。

團隊與權限

通行密鑰,加上你自己的權限

成員用通行密鑰登入,每個請求都帶著自己的權杖,能做什麼由 Kubernetes RBAC 決定。管理員另有專用帳號,只能用通行密鑰,權杖 5 分鐘就到期。

這組的 8 項功能
日常登入:通行密鑰按鈕和「使用 GitHub 繼續」日常登入:通行密鑰按鈕和「使用 GitHub 繼續」

叢集與節點

叢集本身也看得到

Kubernetes 支援到什麼時候、版本差多少、哪些元件落後,都在總覽上。加節點、維護、移除都有步驟,維護時會遵守 PodDisruptionBudget。

這組的 8 項功能
叢集頁:Kubernetes 1.34 即將停止支援、節點記憶體用到 91%、磁碟用到 88%。叢集頁:Kubernetes 1.34 即將停止支援、節點記憶體用到 91%、磁碟用到 88%。

全部功能

Zeabur main 上現在有的功能,每項一行。還沒做完的,後面寫著缺什麼。

部署與設定18

  • 部署容器映像檔填上映像檔就能跑,會讀出連接埠,也能用私有 registry。
  • 匯入 Docker Compose貼上 compose.yaml,逐項列出會改變或略過的設定,資料庫可換成 operator 管的版本。還沒做完: 只有 build: 的服務、UDP 和主機路徑會略過
  • 從 Git 建置用 Railpack 或 Dockerfile 建置,可指定子資料夾,建置變數不會留在映像檔裡。還沒做完: 要裝 Zeabur Builder
  • 上傳資料夾不用 Git 儲存庫,把資料夾或 .zip 拖進網頁,或用 zeaburctl up 上傳,再建置。還沒做完: 要裝 Zeabur Builder
  • 用 GitHub App 部署私有儲存庫替叢集建立 GitHub App,成員直接挑儲存庫部署,不用另外設定部署金鑰。還沒做完: 要裝 Zeabur Builder
  • 新提交自動部署每分鐘看一次分支,有新提交就建置並換上新映像檔。還沒做完: 要另外裝 Keel
  • 排程工作照 cron 和時區執行指令,可以立即執行、暫停,也能決定保留幾筆紀錄。
  • 用 YAML 建立和編輯物件表單沒有的設定直接寫 YAML,建立或編輯任何類型,包含自訂資源。
  • 回滾到之前的版本部署紀錄列出每個版本,可以比較差異,再回到其中一版。
  • 先檢查變更再套用列出要寫進叢集的差異再套用。有人先改過就拒絕,請你重新檢查。
  • 副本、資源與健康檢查調整副本、CPU 和記憶體,設定就緒、存活和啟動檢查。
  • 暫停或重新啟動整個專案一次停掉專案所有服務再恢復,或分批重新啟動。
  • 環境變數逐列或用 .env 格式編輯,值預設放在 Secret。
  • 共用變數一組變數給多個服務讀,看得到誰在讀。
  • 設定改了自動重新啟動共用設定或機密一改,讀它的服務自動重新啟動。還沒做完: 要叢集有 Reloader
  • 嚴格或相容的安全設定服務選嚴格時,以非 root 執行、不能提升權限、移除所有 capabilities。
  • 把既有的 Namespace 加進 Zeabur叢集裡的 Namespace 按一下就變成專案。Helm、Argo CD、Flux 管的服務不讓你改錯。
  • 應用程式範本從 Zeabur Catalog 挑一個應用程式,填好網域和欄位,檢查後部署。

網路與網域12

  • 公開網域與 HTTPS列出要加的 DNS 紀錄,憑證自動簽發與續期。
  • 萬用字元憑證用 DNS-01 簽發,支援 Cloudflare、Route 53、Google Cloud DNS、DigitalOcean、Azure DNS。
  • 上傳自己的憑證貼上 PEM,先核對日期、網域和金鑰是否配對。
  • 網域轉址用 301 或 302 轉到另一個網域,路徑保留。還沒做完: 只在 Traefik 上
  • 訪客密碼替網域加帳號密碼,登入後才看得到。還沒做完: 只在 Traefik 上
  • 維護模式網域暫時顯示維護頁,服務照跑,關掉後流量自動回來。
  • 自訂錯誤頁服務回 502、503、504 時,顯示專案自己的 HTML。還沒做完: 只在 Traefik 上
  • Gateway API網域可以用 HTTPRoute 提供。
  • 開放連接埠到網際網路不經網域,直接開一個 TCP 連接埠,例如讓資料庫對外。
  • 連線規則隔離服務,或只讓特定服務連進來,連入和連出分開列出。
  • 連線檢查網址打不開時,從叢集內和你的瀏覽器兩邊查,指出卡在哪一段。
  • 限制能連入和連出的 IP只讓指定的 IP 開啟網域,也限制服務能連到哪些 IP。還沒做完: 網域限制只在 Traefik 上

資料與備份13

  • 資料庫PostgreSQL、MongoDB、MySQL、MariaDB、Dragonfly,各由自己的 operator 管。
  • 多執行個體資料庫MongoDB、MySQL 可以跑 1、3 或 5 個執行個體。
  • 把資料庫接到服務勾選服務就加上 DATABASE_URL 這類變數,密碼留在 Secret。
  • 資料庫排程備份每天或每週備份到 S3,看得到每次的結果。還沒做完: MySQL、Dragonfly 不能立即備份
  • 還原成新資料庫從備份還原出新的資料庫,確認沒問題再把服務指過去。
  • PostgreSQL WAL 封存持續把 WAL 存到 S3。還沒做完: 還原只能選某一份備份,不能選時間點
  • 下載資料庫傾印檔在瀏覽器下載 pg_dump、mongodump、mysqldump 的結果。
  • S3 物件儲存建立 SeaweedFS 和儲存貯體,一鍵把端點和金鑰加到服務。還沒做完: Beta,只有一份資料
  • 磁碟區掛載、選本機或複寫儲存、擴充容量、設唯讀。
  • 磁碟區備份用 K8up 定期備份到 S3,可調保留規則。還沒做完: 還原要管理員自己做
  • 叢集備份與還原用 Velero 備份整個叢集或選定的專案,從介面還原 Namespace。還沒做完: 只有管理員能還原
  • 共用 S3 目的地登錄一次,三種備份都能選。換金鑰時一起更新。
  • 瀏覽檔案在瀏覽器看容器和磁碟區的檔案,上傳、下載、預覽、改名、刪除。

看出哪裡出錯13

  • 出了什麼問題服務有問題時,一句話說原因和怎麼處理,附上依據,按鈕直接帶你去改。
  • 需要處理首頁列出停擺的服務,叢集概覽列出 Kubernetes 版本、節點和元件的問題。
  • 缺少的設定指出沒有就緒檢查、沒有記憶體上限、沒有備份的設定,附上修正按鈕。
  • 日誌可以篩選、排除、看前一次執行、下載。
  • 日誌的歷史紀錄看所有副本寫過的日誌,包含已被取代的。還沒做完: 要開啟 Zeabur Proxy 並裝日誌儲存服務
  • 終端機在瀏覽器開 shell,容器沒有 shell 時自動加一個除錯容器。
  • kubectl 終端機內建 kubectl 和 helm 的短暫終端機,用你自己的權限。
  • 用量每個副本目前的 CPU 和記憶體,對照上限,歷史圖標出記憶體不足和重新啟動。還沒做完: 要裝 metrics-server,歷史要有指標儲存服務
  • 事件副本排到哪個節點、健康檢查失敗、記憶體超過上限,這類 Kubernetes 事件最新的在前。還沒做完: Kubernetes 只保留大約一小時
  • 通知管道Slack、Discord、Telegram、Email、Webhook、ntfy、Gotify,叢集和專案分開設定。
  • 異常警示部署失敗、反覆當機、記憶體不足、備份失敗、憑證快到期都會通知。
  • 執行期警示(Falco)裝了 Falco 時,在介面看警示,也能送到通知管道。
  • zeaburctl doctor從自己的電腦檢查叢集版本、元件和登入設定。

團隊與權限8

叢集與節點8

  • 叢集元件檢查叢集裝了哪些元件,由 Zeabur 安裝,或產生 Helm、HelmChart、Flux、Argo CD 格式自己裝。
  • 叢集名稱、網域與用量歷史改叢集名稱,選用量歷史的來源,設定新服務用的網域。
  • 從外部機密庫同步機密連接 OpenBao、Vault、1Password 或 AWS Secrets Manager,把機密同步成叢集裡的 Secret。
  • 加入節點產生有時效的權杖和指令,在新機器執行就加入。還沒做完: 只限 Zeabur Installer 裝的叢集
  • 節點維護模式停機前把副本移走,遵守 PodDisruptionBudget,列出移不走的。
  • 移除節點移走副本、刪掉 Node,再給你在那台機器要跑的清除指令。
  • 節點終端機管理員在瀏覽器拿到主機 shell,每次開啟都留紀錄。
  • 多台控制平面三台以上的伺服器,少一台照常運作。還沒做完: 要在主機上用指令加

安裝12

移除 Zeabur4

  • 移除後服務照跑專案和網域都是一般 Kubernetes 物件,移除 Zeabur 後網站照常回應。
  • 選擇移除多少只移除 Zeabur、連 Zeabur Identity 一起,或整台機器清掉。
  • 權限交接寫清楚移除後哪些角色會消失,怎麼用自己的 RBAC 接手。
  • 移除後備份照跑備份由 operator、K8up、Velero 自己執行,不靠 Zeabur。

能做什麼,需要準備什麼

功能範圍叢集裡需要
從 Git 部署推送後自動建置並部署Zeabur Builder
映像檔與 Compose部署容器映像檔,匯入 Docker Compose 服務不用另外安裝
資料庫建立、備份與還原對應的資料庫 operator,例如 CloudNativePG
物件儲存建立 S3 物件儲存與儲存貯體SeaweedFS operator
公開網域加上網域與 HTTPS,顯示維護與錯誤頁面ingress controller 或 Gateway,以及 cert-manager
管理叢集成員權限、節點、警示通知、叢集備份、元件管理員權限

從手邊的環境開始

三種裝法開啟的是同一套介面,差別在 Zeabur 跑在哪裡、用誰的憑證。