Installer 指令
查閱 zeabur-installer 的規劃、安裝、健康檢查、加入節點與移除指令。
先用 plan 看設定會建立什麼,再以 root 執行 apply。安裝中斷時,修正原因後用同一份設定重跑 apply,每個步驟會先看現況,只補上缺少或不同的部分。
用網頁介面安裝見在一台伺服器安裝 Zeabur,用設定檔和指令安裝見用設定檔和指令安裝,YAML 欄位見 Installer 設定。已有 Kubernetes 叢集時,走把 Zeabur 裝進既有叢集。
zeabur-installer --versionzeabur-installer --helpzeabur-installer --config /etc/zeabur-installer/config.yaml plan每個子指令都接受 --config(-c),預設 /etc/zeabur-installer/config.yaml。
sudo zeabur-installer --config /etc/zeabur-installer/config.yaml plansudo zeabur-installer --config /etc/zeabur-installer/config.yaml plan --jsonplan 讀取設定、Catalog 和主機資訊,列出 RKE2、元件、Namespace、主機檔案、儲存類別、記憶體估算和提醒,接著執行和 apply 相同的主機檢查,不會改動主機。有檢查未通過時,它會說 apply 會停下。加 --json 輸出 JSON,這時不跑主機檢查。
沒有設定檔時,plan 用主機位址產生 sslip.io 測試名稱,搭配 local 憑證模式和 standard preset,讓你先看結果。apply 一定要有設定檔。
apply 依執行當下的設定重新計算安裝內容。plan 之後改了 YAML,apply 就照新的內容安裝。
sudo zeabur-installer --config /etc/zeabur-installer/config.yaml applysudo zeabur-installer doctor需要 Linux、systemd 和 root 權限。installer 先檢查主機、連接埠、磁碟和時間同步,有一項失敗就在寫入任何東西前停下。時鐘沒同步只會警告。server 要用 80、443、6443、9345、10250,worker 只用 80、443、10250。ServiceLB 在每個節點占用 80、443。
建立叢集時依序執行:
- 為選定的元件準備主機套件,例如 Longhorn 要用的 iSCSI 和 NFS client。
- 寫入 RKE2 設定、CIS 要求的 kernel 參數,以及稽核政策。稽核紀錄只有請求的 metadata,記下每個 Secret 請求,見機密的加密與存取紀錄。
- 下載 RKE2 到
/var/lib/rancher/zeabur-installer/downloads,用 installer 釘選的 SHA-256 核對,啟動rke2-server,等待 API 與節點就緒。 - 建立元件的 Namespace、基準 NetworkPolicy 和儲存類別。RKE2 CIS 在
kube-system的預設政策會擋掉外部連到 ServiceLB 的流量。節點上沒有 Traefik 時,從這個節點進來的請求會到不了 Traefik,所以 installer 另外加上kube-system/zeabur-installer-servicelb,只讓外部流量進 ServiceLB 的 Pod。 - 依 Catalog 順序安裝元件並等待就緒。每個 chart 和 manifest 檔都先下載,跟 Catalog 寫的 SHA-256 不一樣就停下。
zeabur: true時,先加上zeabur-system-hosts准入政策,不讓專案用 Zeabur 和 Zeabur Identity 的網域,見Zeabur 和 Zeabur Identity 的網域。再安裝 Zeabur Identity、讓 API server 信任它、註冊 OAuth client,最後安裝 Zeabur。API server 連 Zeabur Identity 用的憑證由 cert-manager 自動續期,見Zeabur Identity 的內部憑證。- 第一次安裝時印出第一位管理員的設定連結(24 小時內有效、只能用一次),並把安裝紀錄寫到
kube-system/zeabur-installerConfigMap。
完成後會印出 Zeabur 和 Zeabur Identity 的網址。開啟設定連結、新增通行密鑰,就能登入 Zeabur 看到叢集。local 模式要先讓瀏覽器信任 installer 產生的 CA。
apply 會把 installer 管理的檔案改回它產生的內容。自己的 RKE2 設定寫在 /etc/rancher/rke2/config.yaml.d/90-local.yaml,不要改 installer 產生的 config.yaml。
在伺服器執行:
sudo zeabur-installer gui在自己的電腦建立 SSH tunnel:
ssh -L 8085:127.0.0.1:8085 root@server.example.com開啟伺服器印出的完整連結。GUI 預設監聽 127.0.0.1:8085,用 --listen <address:port> 改位址。GUI 寫的是同一份設定檔,按下安裝時執行的也是同一個 apply。每一步的畫面見在一台伺服器安裝 Zeabur。
安裝完成後按 Ctrl-C 關閉 GUI,RKE2 和裝好的服務繼續執行。
doctor
Section titled “doctor”sudo zeabur-installer doctor在建立叢集的 server 上,doctor 檢查 RKE2 unit、API、安裝紀錄裡的元件、預設儲存類別、Zeabur 和 Zeabur Identity 的 Deployment、Zeabur Identity 的內部憑證、節點位址、基準網路政策、etcd 裡的 Secret 有沒有加密,以及 /var/lib/rancher 有沒有加密。它比對的是上次 apply 的紀錄,改過的 YAML 要重跑 apply 才算數。
在加入既有叢集的節點上,它檢查自己的 RKE2 unit、Node 是否就緒、到 server 的連線和延遲、磁碟加密。如果是 server,還會比對 Zeabur Identity 的驗證設定。
| 結束碼 | 意義 |
|---|---|
0 | 檢查通過 |
1 | 有警告 |
2 | 有故障 |
3 | 檢查無法執行,例如沒有用 root 執行 |
指令列打錯時也以 2 結束。要從自己的電腦透過 Kubernetes API 檢查,用 zeaburctl doctor,結束碼的意思相同。
node add 與 node sync
Section titled “node add 與 node sync”在既有 server 執行:
sudo zeabur-installer node addsudo zeabur-installer node add --role worker --ttl 30msudo zeabur-installer node add --role server --address 10.0.0.5| 選項 | 預設與用途 |
|---|---|
--role | worker,也接受 server |
--address | 預設是這個節點的 InternalIP,新主機用這個位址連到 supervisor |
--ttl | worker 權杖的有效期,預設 1h,可寫 30m、1h 等,最多 24h |
node add 印出新 VM 要用的 join YAML 和指令。新 VM 要和這台在同一家主機商、同一個區域,可用區不同沒關係。worker 用會過期的 bootstrap token。server 用叢集的 server token,不會過期,--ttl 對它沒有作用。輸出內容等同密碼,存到新主機時權限設為 0600。
新主機套用 join 設定後,在既有 server 執行:
sudo zeabur-installer node syncnode sync 讓 installer 建立的基準網路政策放行目前每個節點的流量,也就是每個節點 Pod 網段的第一個位址。新加入的 server 會自己同步。worker 加入後,一定要在 server 執行一次 node sync,在這之前網路政策會擋掉新節點的流量。node add 的輸出也會提醒這一步。網路和儲存的前提見加入節點。
uninstall
Section titled “uninstall”sudo zeabur-installer uninstall zeabur只移除 Zeabur,RKE2、Zeabur Identity、Catalog 元件和應用程式都保留。uninstall zeabur 也會刪掉 Zeabur 為成員建立的 RoleBinding 和 ClusterRoleBinding。
uninstall identity 會連 Zeabur Identity 一起移除,並清空 API server 對它的信任設定。執行前先依移除 Zeabur準備其他登入方式。叢集有多台 server 時,其他 server 要各自執行一次 sudo zeabur-installer apply 才會停止信任 Zeabur Identity 的權杖,指令會列出這些 server。
在加入的節點上執行 uninstall,它只印出要依序執行的指令:drain、刪除 Node、執行 RKE2 移除腳本、同步網路政策。這些步驟見新增與維護節點。
RKE2 移除後,uninstall --purge 清掉 installer 的下載快取、本機 CA 副本和設定,磁碟區保留。--purge 不能和 zeabur、identity 一起用。要保留叢集,就不要執行 RKE2 移除腳本或 --purge。
自己用的安裝
Section titled “自己用的安裝”設定檔是 use: personal 時,uninstall 不刪東西,只印出移除 KubeSolo 的指令,見自己用:在小機器上安裝。node add 和 node sync 不能用,因為 KubeSolo 只有一個節點。
- 主機檢查失敗:依輸出釋出連接埠或修正磁碟,再重跑
plan、apply。 - RKE2 沒啟動:看
sudo journalctl -u rke2-server,worker 看rke2-agent。 - 元件卡在 Helm 安裝:
doctor會指出kube-system裡的helm-install-<name>Job,看它的日誌。 - 新節點就緒但部分系統服務連不到:先在 server 執行
node sync,再看doctor的網路政策檢查。
要撤回安裝,依移除流程選擇只移除 Zeabur,或整台測試機一起清掉。刪掉應用程式的 Namespace 不會移除 Zeabur,只會刪掉應用程式。