下載鏡像
無(wú)docker環(huán)境下載dockerhub鏡像神器:https://github.com/NotGlop/docker-drag
執(zhí)行以下命令,等待鏡像下載成功:
(python36) λ python docker_pull.py heartexlabs/label-studio:latest
Creating image structure in: tmp_label-studio_latest
e0b25ef51634: Pull complete [28566292]
702cc8b0adfe: Pull complete [108]
d91b7f982fe1: Pull complete [204121976]
ee20c0e6fb44: Pull complete [196]
74bece47633d: Pull complete [4991356]
c991bd470a7e: Pull complete [790]
081b73192926: Pull complete [108507390]
9ee52cdf9d74: Pull complete [16544265]
9d3a73b090cc: Pull complete [8223]
205e14f8e69f: Pull complete [172]
df2d0b18cb3a: Pull complete [7362275]
085c492e76d4: Pull complete [21058465]
Docker image pulled: heartexlabs_label-studio.tar
上傳SWR
前提條件:準(zhǔn)備一臺(tái)計(jì)算機(jī),要求安裝的容器引擎版本必須為1.11.2及以上
操作步驟:
Step 1. 以root用戶登錄容器引擎所在的虛擬機(jī)
Step 2. 上傳鏡像壓縮包到虛擬機(jī)
Step 3. 執(zhí)行以下命令加載鏡像壓縮包馆铁,等待鏡像加載完成
λ docker load -i heartexlabs_label-studio.tar
c5ec52c98b31: Loading layer [==================================================>] 75.14MB/75.14MB
71d1ffdc1226: Loading layer [==================================================>] 1.536kB/1.536kB
2cee64127f27: Loading layer [==================================================>] 576MB/576MB
1e98066136b8: Loading layer [==================================================>] 2.56kB/2.56kB
179b4476cc27: Loading layer [==================================================>] 16.01MB/16.01MB
c8948c5c948f: Loading layer [==================================================>] 3.584kB/3.584kB
8a6b1e27a6a6: Loading layer [==================================================>] 452.2MB/452.2MB
9de36f8e252e: Loading layer [==================================================>] 41.05MB/41.05MB
4433ef6618fe: Loading layer [==================================================>] 40.96kB/40.96kB
041f9091862b: Loading layer [==================================================>] 2.56kB/2.56kB
3b1566e05418: Loading layer [==================================================>] 27.02MB/27.02MB
edcd410d12a1: Loading layer [==================================================>] 37.49MB/37.49MB
Loaded image: heartexlabs/label-studio:latest
Step 4. 獲取SWR登錄訪問指令硕舆,并復(fù)制到節(jié)點(diǎn)上執(zhí)行
生成臨時(shí)登錄指令 或查看 如何獲取長(zhǎng)期有效登錄指令 润绎。
Step 5. 執(zhí)行以下命令上傳鏡像至SWR
λ sudo docker tag heartexlabs/label-studio:latest swr.cn-east-3.myhuaweicloud.com/modelarts-idm/label-studio:v1
λ sudo docker push swr.cn-east-3.myhuaweicloud.com/modelarts-idm/label-studio:v1
# sudo docker tag [{鏡像名稱}:{版本名稱}] swr.cn-east-3.myhuaweicloud.com/{組織名稱}/{鏡像名稱}:{版本名稱}
# sudo docker push swr.cn-east-3.myhuaweicloud.com/{組織名稱}/{鏡像名稱}:{版本名稱}
CCE部署鏡像
前提條件:
準(zhǔn)備一個(gè)CCE集群
操作步驟:
Step 1. 使用鏡像創(chuàng)建無(wú)狀態(tài)工作負(fù)載
- 基本信息:指定實(shí)例數(shù)量:1
- 容器配置:選擇剛上傳的SWR鏡像:label-studio:v1赠堵,選擇總是拉取鏡像
Step 2. 綁定ELB+EIP
- 選擇剛創(chuàng)建的工作負(fù)載剂跟,配置訪問方式
- 創(chuàng)建負(fù)載均衡沼本,服務(wù)親和—集群級(jí)別敬察,負(fù)載均衡器—共享型漠畜,端口配置—服務(wù)端口:443(支持自定義) + 容器端口:8080(label-studio啟動(dòng)時(shí)默認(rèn)綁定8080端口)
- 負(fù)載均衡器綁定EIP
Step 3. 數(shù)據(jù)持久化—掛載OBS對(duì)象存儲(chǔ)
- 選擇剛創(chuàng)建的工作負(fù)載,配置容器管理—數(shù)據(jù)存儲(chǔ)—存儲(chǔ)卷聲明PVC:添加存儲(chǔ)卷聲明
公網(wǎng)訪問
https://{EIP地址}:443/
數(shù)據(jù)持久化
掛載持久化數(shù)據(jù)卷
Step 1. 選擇對(duì)應(yīng)CCE集群—容器存儲(chǔ)——?jiǎng)?chuàng)建存儲(chǔ)卷聲明:SC名稱—obs-standard坞靶。
Step 2. 選擇label-studio對(duì)應(yīng)的工作負(fù)載—容器管理—數(shù)據(jù)存儲(chǔ)—存儲(chǔ)卷聲明PVC:綁定剛創(chuàng)建的PVC:對(duì)應(yīng)的掛載路徑為:/label-studio/data
Step 3. 等待實(shí)例重新部署完成憔狞,登錄labelstudio,創(chuàng)建項(xiàng)目彰阴。然后刪除示例重新部署瘾敢,label-studio中數(shù)據(jù)還在,表示持久化成功尿这。
掛載PG數(shù)據(jù)庫(kù)
Step 1. 下載pg數(shù)據(jù)庫(kù)鏡像簇抵,并上傳至SWR,方法參考本章第一節(jié)
λ docker pull postgres
Step 2. 選擇PG鏡像部署工作負(fù)載:
- 設(shè)置環(huán)境變量:POSTGRES_PASSWORD={pwd}
- 設(shè)置數(shù)據(jù)存儲(chǔ):建議掛載數(shù)據(jù)盤射众,此處實(shí)驗(yàn)僅掛載本地存儲(chǔ)碟摆,掛載路徑
/postgres->/var/lib/postgresql/data
Step 3. label-studio配置PG數(shù)據(jù)庫(kù),選擇label-studio實(shí)例—容器管理—環(huán)境變量:
- DJANGO_DB default
- POSTGRE_NAME postgres
- POSTGRE_USER postgres
- POSTGRE_PASSWORD {pwd}
- POSTGRE_PORT 5432 (pg默認(rèn)端口)
- POSTGRE_HOST 10.0.0.72 (對(duì)應(yīng)數(shù)據(jù)庫(kù)實(shí)例IP)
Step 4. 等待實(shí)例重新部署完成叨橱,登錄labelstudio焦履,創(chuàng)建項(xiàng)目探颈。然后刪除示例重新部署纠炮,label-studio中數(shù)據(jù)還在惠毁,表示持久化成功。
問題及解決方案
- 問題1. 工作負(fù)載綁定ELB時(shí)栖博,ELB未自動(dòng)添加后端服務(wù)器組,導(dǎo)致公網(wǎng)訪問失敗厢洞。
解決:手動(dòng)給ELB設(shè)置后端服務(wù)器組仇让,添加云服務(wù)器,選擇工作負(fù)載實(shí)例所在的節(jié)點(diǎn)(進(jìn)入工作負(fù)載躺翻,查看實(shí)例列表丧叽,獲取所在節(jié)點(diǎn)IP)和后端端口(進(jìn)入集群—服務(wù)發(fā)現(xiàn),選擇對(duì)應(yīng)的負(fù)載均衡公你,點(diǎn)擊右側(cè)更多—查看YAML踊淳,獲取nodePort)。