單機多卡集群部署QuickStart
樣例類型
假設客戶服務器IP地址為192.168.1.217
假設大容量數據盤在 /data
授權參數
- 在線授權模式 (-e LICENSE_SERVER=CN -e LICENSE_KEY=XGRIDS交付的AppKey)
- 離線授權模式 需要採用offline版本鏡像 (-e CODEMETER_SERVER=192.168.xx.xx)
- 離線授權服務器需按照說明書提前安裝好
使用MySQL8 docker版作為任務信息持久化數據庫
服務器配置確認
確認系統OS版本
推薦Ubuntu20.04以上
確認基礎軟件
docker以及顯卡驅動支持
確認NVIDIA驅動版本 > 545
nvidia-smi
確認開啟NVIDIA驅動常駐模式
sudo nvidia-smi -pm 1
Docker配置
編輯 /etc/docker/daemon.json,增加cfgoups配置(如果默認是systemd)和國內docker鏡像源等並重啟Docker
![這張圖片展示了/etc/docker/daemon.json的配置內容,配置核心內容為docker的runtime相關設置,其中關鍵部分「exec-opts": \["native.cgroupdriver=cgroupfs」\]被紅色方框標注突出顯示,該配置對應文檔中Docker配置環節要求修改的cfgoups配置,用於Docker的相關配置調整。](https://cdn-docs.xgrids.cloud/assets/05-daemon%E9%85%8D%E7%BD%AE-7yoQGycc.webp)
确认$ docker info
...
Cgroup Driver: cgroupfs # 如果看到Cgroup Driver = systemd,则可能发生容器丢显卡问题
Cgroup Version: 1
Consul服務註冊中心快速部署
拉取consul鏡像
docker pull hashicorp/consul:1.20
或者 如果外網無法連接
wget https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/consul-120.tar.gz
gunzip -c consul-120.tar.gz | docker load
啟動consul
docker run -d --restart always --name=consul -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8500:8500 -p 8600:8600 hashicorp/consul:1.20 agent -server -ui -node=n1 -bootstrap-expect=1 -client='0.0.0.0'
訪問地址
http://192.168.1.217:8500/ui/
MySQL數據庫快速部署
拉取mysql鏡像
docker pull mysql:8.0
或者
wget https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/mysql-8.tar.gz
gunzip -c mysql-8.tar.gz | docker load
啟動mysql8鏡像(支持字符集設定)
docker run -d --restart=always --name mysql8 -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci -e MYSQL_ROOT_PASSWORD=pwd123456 -e MYSQL_DATABASE=lcc-storage -v /data/lcc/mysql-data:/var/lib/mysql -p 3306:3306 mysql:8.0
💡
生產安全提示:上述命令用於快速體驗,可直接復制運行;生產環境請更換強密碼並使用專用最小權限數據庫賬號,限制 MySQL 3306 與 phpMyAdmin 的網絡訪問範圍,不要直接暴露到公網。
拉取phpmyadmin鏡像
docker pull phpmyadmin
或者
https://cdn-bukbb1.xgrids.cloud/developer/deploy/lcc/phpmyadmin.tar.gz
gunzip -c phpmyadmin.tar.gz | docker load
啟動phpmyadmin (數據庫管理界面)
docker run -d --restart=always --name phpmyadmin -e PMA_HOST=192.168.1.217 -e PMA_PORT=3306 -p 8098:80 phpmyadmin
部署後數據庫界面訪問地址
http://192.168.1.217:8098/index.php?route=/database/structure&db=lcc-storage
啟動LCC Docker容器集群
拉取和導入鏡像
啟動後的集群訪問地址
http://192.168.1.217:8080
啟動使用容器主節點(CLUSTER_MAIN)
(使用0號顯卡,命名為lcc-rebuild-0,使用端口8080 作為集群主節點)
特殊參數:某些服務器內的docker容器域名解析異常無法連接授權服務器,可增加參數 --dns 8.8.8.8
docker run -d --restart always --name=lcc-rebuild-0 --gpus "device=0" -e APP_MODE=CLUSTER_MAIN -e SERVICE_REGISTER=http://192.168.1.217:8500 -v /data:/data -v /data/lcc-work:/work -p 8080:8080 -e CODEMETER_SERVER=192.168.xx.xx -e WEBUI=ON -e JOB_QUEUE_CONTROL=ON -e SERVICE_ADDRESS=192.168.1.217 -e SERVICE_PORT=8080 -e DB_TYPE="mysql" -e DB_USER="root" -e DB_PASSWORD="pwd123456" -e DB_HOST="192.168.1.217" -e DB_PORT="3306" -e DB_NAME="lcc-storage" -e RESULT_AUTO_ZIP=ON --dns 8.8.8.8 lcc-rebuild-cloud-server:tag-v1.1.0-offline-252856e6-20250908-01
啟動第一個容器從節點 (CLUSTER_SUB)
(使1號顯卡,命名為lcc-rebuild-1,使用端口8081,集群的從節點)
docker run -d --restart always --name=lcc-rebuild-1 --gpus "device=1" -e APP_MODE=CLUSTER_SUB -e SERVICE_REGISTER=http://192.168.1.217:8500 -v /data:/data -v /data/lcc-work:/work -p 8081:8080 -e CODEMETER_SERVER=192.168.xx.xx -e WEBUI=OFF -e JOB_QUEUE_CONTROL=OFF -e SERVICE_ADDRESS=192.168.1.217 -e SERVICE_PORT=8081 -e DB_TYPE="mysql" -e DB_USER="root" -e DB_PASSWORD="pwd123456" -e DB_HOST="192.168.1.217" -e DB_PORT="3306" -e DB_NAME="lcc-storage" -e RESULT_AUTO_ZIP=ON --dns 8.8.8.8 lcc-rebuild-cloud-server:tag-v1.1.0-offline-252856e6-20250908-01
啟動其他節點(例如使用顯卡2的第二個從節點)
為了便於分辨多個容器,建議參數按順序修改參數中的數字索引。例如
參考第一個從節點的參數
--name=lcc-rebuild-1 --gpus "device=1" -p 8081:8080 -e SERVICE_PORT=8081
修改第二個從節點的參數:
--name=lcc-rebuild-2 --gpus "device=2" -p 8082:8080 -e SERVICE_PORT=8082
停止集群
docker stop lcc-rebuild-0
docker stop lcc-rebuild-1
...
刪除集群
docker rm lcc-rebuild-0
docker rm lcc-rebuild-1
...