diff --git a/PVECluster_Architecture.md b/PVECluster_Architecture.md index 9beb067..81c24cc 100644 --- a/PVECluster_Architecture.md +++ b/PVECluster_Architecture.md @@ -1,6 +1,8 @@ # PVECluster 叢集架構文件 -> 最後更新:2026-05-29(新增「停電復電 SOP」;全 guest 設定 onboot=1 + startup 分層;停電後修復 K3s VM 根碟 ext4 損壞) +> 最後更新:2026-06-04(停電復原:CT118 由 DHCP 改 static `.118`、adminer 補 `--restart=always`;SOP 新增 IP 漂移與 Podman restart 策略檢查步驟) +> +> 2026-05-29(新增「停電復電 SOP」;全 guest 設定 onboot=1 + startup 分層;停電後修復 K3s VM 根碟 ext4 損壞) ## 一、叢集概覽 @@ -139,7 +141,7 @@ Proxmox Backup Server (192.168.42.30, VM 111) | **115** | CT115 | pve-02 | running | 2C | 2 GB | 40G (syno-lvm) | .42.115 | Lydia Prod — Python + Caddy + MSSQL Express | | **116** | CT116 | pve | running | 1C | 128 MB | 8G (syno-lvm) | .42.116 | Bark 推播通知 (finab/bark-server:8080) + Watchtower | | **117** | CT117 | pve-02 | running | 2C | 2 GB | 60G (syno-lvm) | .42.117 | Lydia Test — Python (:5000) + MSSQL Express | -| **118** | CT118 | pve-03 | running | 1C | 1 GB | 8G (syno-lvm) | DHCP | PostgreSQL 16 + Redis + Proxy Pool (10x Tor) + Podman | +| **118** | CT118 | pve-03 | running | 1C | 1 GB | 8G (syno-lvm) | .42.118 | PostgreSQL 16 + Redis + Proxy Pool (10x Tor) + Adminer (:8080) + Podman | | **124** | CT124 | pve-03 | running | 2C | 8 GB | 80G (syno-lvm) | .42.124 | Docker 服務集中台 (20+ 服務: NPM, Gitea, Karakeep, Vaultwarden, Jellyfin 等) + Tailscale (kernel-mode) + NetBird (100.71.40.35, ct124.netbird.selfhosted) | | **126** | CT126 | pve | running | 1C | 256 MB | 8G (syno-lvm) | .42.126 | Headscale v0.28.0 控制伺服器 (17 節點) + Tailscale + Watchtower | @@ -312,6 +314,9 @@ pct set -features nesting=1 -tty 2 修復成功後 console 應顯示 `EXT4-fs (sda1): re-mounted ... r/w`(不再被踢成唯讀)。 +5. **檢查 IP 是否回到 VMID pattern** — 所有 guest 應為 static IP(`192.168.42.`),不要靠 DHCP。若用 `ip=dhcp`,停電後 OpenWRT 重新分配可能漂到別的位址(例:2026-06-04 停電後 CT118 漂到 `.207`,導致以 `.118` 連 DB/Redis 的服務全斷)。修法:`pct set -net0 ...,ip=192.168.42./24,gw=192.168.42.10,...` 後 `pct reboot `。 +6. **檢查 Podman 容器 restart 策略** — Proxmox guest `onboot=1` 只保證容器 OS 開機;容器內的 Podman 服務需各自 `--restart=always`(靠 `podman-restart.service`,已 enabled,開機帶起所有 always 容器)才會自動回來。沒設策略的(曾發生於 CT118 的 `adminer`)停電後停在 `Created`,需手動 `podman start` 或帶 `--restart=always` 重建。注意 Podman 4.9.3 的 `podman update` 不支援 `--restart`,改策略只能重建容器。 + **開機自動啟動 / 分層策略**(22 台全設 `onboot=1`,每節點獨立依 order 啟動,`up` 為啟動後延遲秒數): | 層 | startup | 成員 |