差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:docker_swarm [2025/09/23 18:30] – [2. 建立擴充至三台當主控點] jonathan | tech:docker_swarm [2025/11/19 11:49] (目前版本) – [使用 portainer 進行 Web 統一控管] jonathan | ||
|---|---|---|---|
| 行 12: | 行 12: | ||
| - 貼上並執行加入指令 (請使用您自己產生的 Token 和 IP) < | - 貼上並執行加入指令 (請使用您自己產生的 Token 和 IP) < | ||
| - 回到主控點上 Exp. 192.168.11.186 查看狀態< | - 回到主控點上 Exp. 192.168.11.186 查看狀態< | ||
| + | <note tip> | ||
| + | * 到主控點執行 | ||
| + | - 取得加入成為 Manager 語法 : < | ||
| + | - 取得加入成為 Worker 語法 : < | ||
| + | </ | ||
| ===== 使用 portainer 進行 Web 統一控管 ===== | ===== 使用 portainer 進行 Web 統一控管 ===== | ||
| * 在主控點安裝 Portainer (參考 [[tech/ | * 在主控點安裝 Portainer (參考 [[tech/ | ||
| 行 19: | 行 23: | ||
| * 當 Agent 安裝成功後, | * 當 Agent 安裝成功後, | ||
| * 回到 Home 在 Environments 清單就可以看到 Portainer-186 , 點下去就可以開始管理這個 Swarm cluster \\ {{: | * 回到 Home 在 Environments 清單就可以看到 Portainer-186 , 點下去就可以開始管理這個 Swarm cluster \\ {{: | ||
| - | + | * 當每台 swarm node 重新啟動後 Portainer | |
| - | ===== 建立 watchtower 統一在主控點進行管理 | + | portainer-161: |
| - | * 可以直接在主控點下以下的命令建立 docker service< | + | portainer_agent |
| - | docker service | + | overall progress: 1 out of 1 tasks |
| - | | + | aeaia7g7xz3w: |
| - | | + | verify: Service portainer_agent converged |
| - | | + | |
| - | --mount type=bind,source=/ | + | |
| - | | + | |
| - | --cleanup \ | + | |
| - | --scope swarm | + | |
| </ | </ | ||
| + | ===== 建立 shepherd 統一在主控點進行管理 ===== | ||
| + | * stack yaml < | ||
| + | services: | ||
| + | shepherd: | ||
| + | image: containrrr/ | ||
| + | deploy: | ||
| + | mode: replicated | ||
| + | replicas: 1 | ||
| + | placement: | ||
| + | constraints: | ||
| + | - node.role == manager | ||
| + | restart_policy: | ||
| + | condition: on-failure | ||
| + | delay: 10s | ||
| + | max_attempts: | ||
| + | environment: | ||
| + | - TZ=Asia/ | ||
| + | - SLEEP_TIME=8h | ||
| + | # - WITH_REGISTRY_AUTH=true | ||
| + | # - REGISTRY_USER_FILE=/ | ||
| + | # - REGISTRY_PASSWORD_FILE=/ | ||
| + | - ROLLBACK_ON_FAILURE=true | ||
| + | - UPDATE_OPTIONS=--update-delay=1m --update-parallelism=1 --update-failure-action=rollback | ||
| + | - IGNORELIST_SERVICES=cleanup-scheduler_cleanup-scheduler | ||
| + | - NO_PROXY=localhost, | ||
| + | volumes: | ||
| + | - type: bind | ||
| + | source: / | ||
| + | target: / | ||
| + | </ | ||
| ===== FAQ ===== | ===== FAQ ===== | ||
| ==== 1. 移除特定 Worker host 方式 Exp. immich-237 ==== | ==== 1. 移除特定 Worker host 方式 Exp. immich-237 ==== | ||
| 行 68: | 行 97: | ||
| q4fxgqgi2sp42wntxynks3wqf | q4fxgqgi2sp42wntxynks3wqf | ||
| </ | </ | ||
| + | |||
| + | ==== 3. 建立 nfs volume 的作法 ==== | ||
| + | - 先在 NFS Server 建立分享目錄與權限設定 參考 - [[tech/ | ||
| + | - NFS Volume 的指定方式如下 Exp. NFS Serer: 192.168.1.159 , 分享目錄: | ||
| + | volumes: | ||
| + | mystack_nfs-data: | ||
| + | driver: local | ||
| + | driver_opts: | ||
| + | type: nfs | ||
| + | o: " | ||
| + | device: ":/ | ||
| + | </ | ||
| + | <note important> | ||
| + | * 啟動 stack 時**不會**如同本地 volume 自動建立出目錄, | ||
| + | * 如想要修改 NFS Volume 定義 | ||
| + | - 要將 stack 移除 Exp. < | ||
| + | - 進入 swarm **每個 node 移除 volume** Exp.< | ||
| + | - 重新部署 stack Exp. < | ||
| + | - 檢查新建立的 Volume 內容 Exp. < | ||
| + | </ | ||
| {{tag> | {{tag> | ||