移除 Zeabur,保留服務
移除 Zeabur 管理介面,保留應用程式、資料與仍在使用的 Kubernetes 元件。
只移除 Zeabur 的 chart 或執行 zeabur-installer uninstall zeabur,既有服務會留在 Kubernetes,繼續由原生控制器與 operator 執行。保留 ingress、憑證、儲存與備份等相依元件,就能改用 kubectl、Helm 或原本的 GitOps 工具管理服務。
用 zeaburctl ui 在本機開啟介面時,按 Ctrl-C 關掉就好。它沒有在叢集裡安裝任何東西,已套用的變更會留在叢集。
需要能管理 Zeabur 安裝物件的 kubeconfig。installer 安裝則需要原 server 的 root 權限。先確認移除管理介面後,仍有不依賴該介面的叢集存取方式。
- 用 kubectl 連上目標叢集,確認 context 與目前權限。installer 主機可用 root 保管的
/etc/rancher/rke2/rke2.yaml,不要將這份管理員認證資訊交給一般成員。 - 記下 Zeabur 的安裝方式、release 名稱與 Namespace。下文 Helm 範例使用 release
zeabur、Namespacezeabur,自行安裝時要換成實際名稱。 - 關閉開著的容器終端機、kubectl 終端機與節點終端機,並把檢查過的變更套用或放棄。移除後這些連線會中斷,還沒套用的變更也會失效。
- 若成員還需要用 Zeabur Identity 的身分操作,保留 Identity,並先安排替代 RBAC 與准入政策。Chart 提供的成員角色和 Zeabur 建立的成員 binding 都會在移除時刪掉。
- 對重要資料依原本的備份工具完成備份,確認還原所需的 Secret、目的地與控制器都在。此流程不刪應用程式磁碟區。
在自己的電腦確認連線並記下服務現況:
kubectl config current-contextkubectl get nodeskubectl get namespaces -l zeabur.com/projectkubectl get deployments,statefulsets,daemonsets,cronjobs,services,ingresses,pvc \ --namespace shop將 shop 換成要保留的專案。記下重要服務的公開網址,移除前後都開啟一次。資料庫與物件儲存也以現有用戶端確認能連線。
若使用 installer,且主機上沒有另外安裝的 kubectl,可在該主機用以下完整路徑執行後文的 kubectl 操作:
sudo /var/lib/rancher/rke2/bin/kubectl \ --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes哪些物件與行為留下
Section titled “哪些物件與行為留下”| 項目 | 移除 Zeabur 後 |
|---|---|
| 應用程式 Namespace、Deployment、StatefulSet、Service、CronJob | 保留,副本與排程由 Kubernetes 繼續管理 |
| Ingress、HTTPRoute、憑證與 DNS 設定 | 保留,轉送與憑證續期仍需要原本的 ingress/Gateway、cert-manager 與 DNS 元件 |
| PVC、PV 與儲存系統 | 保留,仍需儲存 driver、provisioner 或 Longhorn |
| 資料庫、物件儲存的原生 CR 與 Secret | 保留,仍需所屬 operator |
| Build、Git 認證資訊與自動部署設定 | 保留,後續建置與自動部署仍需 Zeabur Builder、有使用時的 Keel 及 registry |
| 備份排程、備份認證資訊與已存的備份 | 保留,仍需各資料庫 operator、K8up 或 Velero,以及備份目的地 |
| Reloader、監控、告警、通知設定 | 各自保留,依原控制器繼續執行 |
專案的 zeabur.com/project 標籤與顯示資訊 | 保留,不影響工作負載執行 |
| 成員的 RoleBinding/ClusterRoleBinding | installer 移除時一起刪除。helm uninstall 會留下,要自己刪 |
zeabur-s3-destinations | Chart 標記保留的 Namespace,登錄的目的地與金鑰留在其中 |
| Zeabur Identity | 只移除 Zeabur 時保留,其使用者與其他 OAuth client 繼續留在原 Namespace |
備份使用的金鑰已複製到各備份所在的 Namespace,不會在執行時回頭讀取 S3 目的地清單。刪除清單不會撤銷那些金鑰,也不會刪掉遠端備份。
維護頁與自訂錯誤頁在專案內有自己的工作負載、Service 與設定。移除 Zeabur 不會把維護中的網域自動切回應用程式。需要恢復流量時,先依維護模式完成切換。
移除管理介面
Section titled “移除管理介面”依原安裝方式選一條路。若 Flux 或 Argo CD 還在同步 Zeabur,先在它的設定來源移除 Zeabur 安裝項目,再由原工具卸載,避免控制器重新建立它。
Installer 安裝
Section titled “Installer 安裝”在最初建立叢集的 server 執行:
sudo zeabur-installer \ --config /etc/zeabur-installer/config.yaml \ uninstall zeabur指令刪除 kube-system 的 HelmChart zeabur、zeabur Namespace,以及 Zeabur 建立的成員 RoleBinding 與 ClusterRoleBinding。RKE2、Zeabur Identity、Catalog 元件與專案 Namespace 都保留。
zeabur Namespace 內的 OAuth client Secret、變更權杖金鑰、zeabur-settings 與其他物件會跟著刪除。若曾把額外工作負載放進此 Namespace,先搬走。需要保留叢集顯示名稱或 metrics store 選擇時,先記下設定。
保留 installer 設定與下載目錄可繼續管理節點。此時不要執行 uninstall --purge。之後重跑原本 zeabur: true 設定的 apply,會再次安裝 Zeabur。
Helm 安裝
Section titled “Helm 安裝”先確認 release 與它管理的物件:
helm list --all-namespaceshelm status zeabur --namespace zeaburkubectl get deployments,services,ingresses,configmaps,secrets --namespace zeabur這裡的 get secrets 只列出名稱與摘要,不加 -o yaml。確認選到的是 Zeabur release 後卸載:
helm uninstall zeabur --namespace zeabur --waitChart 管理的 Deployment、Service、Ingress/HTTPRoute、ServiceAccount、生成的變更金鑰與可選的 Proxy 會移除,成員角色與 Namespace 准入政策也會移除。Zeabur 執行時建立的成員 binding 不屬於 chart,會留下來,刪除方式見成員權限與准入政策。
你預先建立的 OAuth client Secret、外部指定的變更金鑰或 CA ConfigMap 不屬於 chart,會保留。透過介面建立的 zeabur-settings ConfigMap 也不由 chart 卸載。先檢查這些物件是否仍有用途,再逐一刪除。不需要為了移除介面刪除整個 Namespace。
確認服務繼續執行
Section titled “確認服務繼續執行”再次查看同一個專案:
kubectl get deployments,statefulsets,daemonsets,cronjobs,services,ingresses,pvc \ --namespace shopkubectl get pods --namespace shopkubectl get storageclasses應用程式與磁碟區都還在,公開網址與資料庫連線的結果和移除前相同。Zeabur 的網址不再有介面,之後用 kubectl、Helm 或原本的 GitOps 工具調整設定。
確認資料庫與備份 operator 還在,並在下一次原排程執行後查看備份結果。卸載 Zeabur chart 也會卸載其 Proxy。VictoriaLogs 本身留下,但 Zeabur 的歷史日誌入口會消失。
成員權限與准入政策
Section titled “成員權限與准入政策”Chart 卸載會移除 zeabur-member、專案的聚合 ClusterRole、其規則集,以及 zeabur-project-namespace ValidatingAdmissionPolicy 與 binding。zeabur-installer uninstall zeabur 還會刪除 Zeabur 建立的成員 binding。
installer 加上的 zeabur-system-hosts 政策和 binding 會留下,Zeabur Identity 的網域繼續受保護。zeabur Namespace 刪掉後,它的 binding 找不到 Ingress,不再擋任何路由。不需要時依Zeabur 和 Zeabur Identity 的網域刪除或改成 Warn。
仍要讓成員存取叢集時,先用自己的 RBAC 設定接手,確認每個角色實際能讀寫的範圍。若替代角色保留 patch namespaces,也要保留相等的欄位限制。chart 政策移除後,單靠 RBAC 無法把 patch 限定在顯示名稱、描述與圖示。既有的 Pod Security 與 NetworkPolicy 標籤會保留。
用 helm uninstall 移除時,成員 binding 會留下。確認不再使用舊授權後一次刪除:
kubectl delete rolebindings,clusterrolebindings --all-namespaces \ -l app.kubernetes.io/managed-by=zeabur,zeabur.com/member保留 Identity 時,其他 client 或 kubeconfig 仍可能以 zeabur:<username> 身分登入,刪除前先確認它們不再依賴這些 binding。
清理短暫工具與登錄資訊
Section titled “清理短暫工具與登錄資訊”關閉終端機後,先列出仍留下的 tools Pod 與節點終端機 Pod。tools Pod 都在 zeabur-terminals Namespace,移除 chart 時會跟著 Namespace 一起刪除:
kubectl get pods --namespace zeabur-terminals -l zeabur.com/toolskubectl get pods --all-namespaces -l zeabur.com/node-shell=true確認沒有使用中的終端機後,再依清單中的實際名稱與 Namespace 刪除:
kubectl delete pod <pod-name> --namespace <namespace>tools Pod 到了最長執行時間會自己結束,但 Zeabur 移除後就沒有人刪除它們的物件。除錯容器會留到原本的 Pod 被替換為止。只為了移除它而重新啟動應用程式,會中斷那個副本,可以等下次部署時一起處理。
節點終端機裡做過的主機修改不會因刪除終端機 Pod 自動還原。
S3 目的地
Section titled “S3 目的地”zeabur-s3-destinations 會保留登錄的目的地與金鑰。要繼續管理備份可留下它。確定不再需要清單與原始認證資訊後,先查看物件,再刪除此專用 Namespace:
kubectl get configmaps,secrets --namespace zeabur-s3-destinationskubectl delete namespace zeabur-s3-destinations這只刪登錄清單與其中的 Secret,不刪遠端 bucket、備份,也不刪已複製到其他 Namespace 的 Secret。要撤銷金鑰,另到儲存服務停用它,並先更新仍使用它的備份。
同時移除 Zeabur Identity
Section titled “同時移除 Zeabur Identity”若仍有其他 client、使用者 kubeconfig 或自動化使用 Zeabur Identity,先保留它。把這些登入來源搬到替代認證系統、確認不靠 Identity 也能管理叢集後,在一台 server 執行:
sudo zeabur-installer uninstall identity多 server 叢集還要在其他每台 server 執行 sudo zeabur-installer apply,那台 server 才會停止信任 Identity 權杖。指令結束時會列出這些 server 的名稱。指令也會清空 kube-system/zeabur-identity-authn ConfigMap,之後加入的 server 不會信任 Identity。
自行安裝 Identity 的叢集依原安裝來源處理。卸載 Zeabur chart 不會替你移除 Identity 的 OAuth client 或 Kubernetes API 的 issuer 設定。
整個叢集都不用時
Section titled “整個叢集都不用時”要保留服務就停在前面的流程。確定整個 RKE2 叢集都不用,且重要資料已備份、還原所需認證資訊另有保存時,才在主機執行:
sudo /usr/local/bin/rke2-uninstall.shsudo zeabur-installer uninstallsudo zeabur-installer uninstall --purgeRKE2 腳本移除 Kubernetes 與其資料,所有依賴它的工作負載會停止。下一個 uninstall 列出 installer 殘留檔案,--purge 清除下載快取、本機 CA 副本、設定,以及 installer 寫給 Longhorn 的 module/multipath 設定檔。Longhorn 主機套件會保留。
/var/lib/zeabur/storage 的 local-path 資料與 /var/lib/longhorn 的 replica 資料都不由 --purge 刪除。保留原始資料目錄還需要對應的 PV/PVC 與儲存系統資訊才能重新接回服務。確認已有可還原的備份後,再決定這些目錄如何處理。
只要拿掉一台加入的節點時,在節點的操作選單選 移除節點,見新增與維護節點。不要在服務仍需使用該節點的 local-path 資料時直接退出節點。
移除沒有完成時
Section titled “移除沒有完成時”- Zeabur 又出現:檢查 Flux、Argo CD、RKE2 HelmChart 或自動化是否仍有安裝來源。先移除來源,再由原管理工具卸載。
- Namespace 卡在
Terminating:查看 Namespace 狀態與殘留物件的 finalizers,先恢復對應控制器或完成其清理,不要直接移除儲存或資料庫 finalizer。 - 服務網址在移除後失效:比對 Ingress/HTTPRoute、ingress controller、Gateway、憑證與後端 Pod,確認沒有把共同依賴一起刪除。
- 成員無法操作但服務正常:chart 的成員角色和 binding 已經移除,依替代 RBAC 重新授權。
需要重新安裝管理介面時,使用單機 installer 流程或既有叢集流程,不要刪除既有專案再建立。