本文為您介紹OSS、NAS、Git代碼倉庫、Docker鏡像和EmptyDir四種形式的儲存掛載,協助您靈活選擇掛載的儲存類型。
背景資訊
OSS掛載
OSS掛載需要使用者在EAS控制台對EAS進行一鍵授權,授權EAS讀取使用者的OSS目錄,詳情請參見開通並授權依賴的阿里雲產品。
設定檔如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_oss", "oss": { "endpoint": "oss-cn-shanghai-internal.aliyuncs.com", "path": "oss://bucket/path/" } } ] }
參數說明。
參數名
含義
mount_path
掛載服務執行個體中的目標路徑。
oss.endpoint
OSS的Endpoint地址,僅支援同地區內網地址掛載,需使用-internal地址的OSS Endpoint。
oss.path
OSS的源地址路徑,需以
oss://
開頭。
OSS掛載僅支援專屬資源群組服務,公用資源群組暫時不支援。
NFS掛載
NFS掛載僅支援同地區內網地址掛載,可以使用內網NAS地址,且需要打通到NAS所在vSwitch的直連網路,資源群組中網路打通請參見配置網路連通。
設定檔如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_nas", "nfs": { "path": "/", "readOnly": false, "server": "xxx.cn-shanghai.nas.aliyuncs.com" } } ] }
參數說明。
參數名
含義
mount_path
掛載服務執行個體中的目標路徑。
nfs.path
需要掛載的NAS中的源路徑。
nfs.readOnly
是否以唯讀方式掛載。
nfs.server
NAS掛載點的地址。
Git代碼倉庫掛載
Git代碼倉庫掛載可以將一個Git倉庫中的代碼以唯讀方式直接掛載到服務執行個體中,在執行個體啟動階段會對代碼進行拉取。目前不會即時同步最新代碼,如果代碼倉庫中的代碼發生變更,需要重啟服務執行個體才會生效。
設定檔如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_git", "git": { "repo": "https://codeup.aliyun.com/xxx/eas/aitest.git", "username": "username", "password": "password or access token" } } ] }
參數說明。
參數名
是否必選
含義
mount_path
是
掛載服務執行個體中的目標路徑。
git.repo
是
需要掛載的Git倉庫的HTTPS地址。暫不支援Git協議。
git.username
否
私人Git倉庫的登入使用者名稱。
git.password
否
私人Git倉庫的登入密碼。
git.branch
否
需要拉取的Git倉庫的分支,預設為master。
git.commit
否
需要拉取的Git倉庫的commit ID。
鏡像掛載
Docker Image的方式掛載並非直接將鏡像中的目錄直接掛載到服務執行個體中,而是通過Shared Volume先將要掛載的鏡像中的指定目錄中的檔案拷貝至本地Shared Volume中,在服務運行時掛載本地的Shared Volume,因此當要掛載的目錄中資料量較大時,會消耗較多的本機存放區,且會使服務執行個體啟動時間加長,請根據需要來使用該功能。
{ "name": "service_name", "storage": [ { "image": { "image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1", "path": "/path/to/mount/" }, "mount_path": "/data_image" } ] }
說明僅支援同地區內網地址掛載,如要掛載的鏡像是private的時,需通過dockerAuth參數來指定鏡像倉庫的鑒權資訊。鏡像部署中關於dockerAuth參數的使用說明,請參見服務部署:自訂鏡像。
參數說明。
參數名
含義
mount_path
掛載服務執行個體中的目標路徑。
image.image
需要掛載的內網鏡像倉庫地址。
image.path
需要掛載到服務執行個體中的鏡像中的路徑。
EmptyDir掛載
如果您希望執行個體運行時讀寫本地磁碟目錄,且執行個體異常重啟後寫入的內容不會丟失,則可以使用EmptyDir的儲存掛載方式。
設定檔如下所示。
{ "name": "service_name", "storage": [ { "empty_dir": {}, "mount_path": "/data_image" } ] }
參數說明。
參數名
含義
mount_path
掛載服務執行個體中的目標路徑。
empty_dir
表示類型為EmptyDir、值為空白的Map。暫不支援其他屬性的配置。
配置共用記憶體
您可以使用以下設定檔來配置共用記憶體。
{
"name": "service_name",
"storage": [
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
}
]
}
其中:
medium:指定為memory。
mount_path:指定為
/dev/shm
。size_limit:用來限制記憶體上限,單位為GB。
完整配置樣本
OSS、NFS、Git代碼倉庫、鏡像及EmptyDir掛載,完整配置樣本如下所示。
{
"name": "service_name",
"model_path": "http://path/to/model",
"processor": "pmml",
"storage": [
{
"mount_path": "/data_oss1",
"oss": {
"endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
"path": "oss://bucket1/path/"
}
},
{
"mount_path": "/data_oss2",
"oss": {
"endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
"path": "oss://bucket2/path/"
}
},
{
"mount_path": "/data_nfs1",
"nfs": {
"path": "/",
"readOnly": false,
"server": "xxx.cn-shanghai.nas.aliyuncs.com"
}
},
{
"mount_path": "/data_nfs2",
"nfs": {
"path": "/",
"readOnly": true,
"server": "yyy.cn-shanghai.nas.aliyuncs.com"
}
},
{
"image": {
"image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1",
"path": "/path/to/mount/"
},
"mount_path": "/data_image"
},
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
},
{
"mount_path": "/data_git",
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
"username": "username",
"password": "password or access token"
}
}
],
"metadata": {
"cpu": 1,
"instance": 1,
"resource": "eas-r-xxx"
}
}