服務(wù)存儲掛載
本文為您介紹OSS、NAS、Git代碼倉庫、Docker鏡像和EmptyDir四種形式的存儲掛載,幫助您靈活選擇掛載的存儲類型。
背景信息
OSS掛載
OSS掛載需要用戶在EAS控制臺對EAS進(jìn)行一鍵授權(quán),授權(quán)EAS讀取用戶的OSS目錄,詳情請參見開通并授權(quán)依賴的阿里云產(chǎn)品。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_oss", "oss": { "endpoint": "oss-cn-shanghai-internal.aliyuncs.com", "path": "oss://bucket/path/" } } ] }
參數(shù)說明。
參數(shù)名
含義
mount_path
掛載服務(wù)實(shí)例中的目標(biāo)路徑。
oss.endpoint
OSS的Endpoint地址,僅支持同區(qū)域內(nèi)網(wǎng)地址掛載,需使用-internal地址的OSS Endpoint。
oss.path
OSS的源地址路徑,需以
oss://
開頭。
OSS掛載僅支持專屬資源組服務(wù),公共資源組暫時(shí)不支持。
NFS掛載
NFS掛載僅支持同地域內(nèi)網(wǎng)地址掛載,可以使用內(nèi)網(wǎng)NAS地址,且需要打通到NAS所在vSwitch的直連網(wǎng)絡(luò),資源組中網(wǎng)絡(luò)打通請參見配置網(wǎng)絡(luò)連通。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "mount_path": "/data_nas", "nfs": { "path": "/", "readOnly": false, "server": "xxx.cn-shanghai.nas.aliyuncs.com" } } ] }
參數(shù)說明。
參數(shù)名
含義
mount_path
掛載服務(wù)實(shí)例中的目標(biāo)路徑。
nfs.path
需要掛載的NAS中的源路徑。
nfs.readOnly
是否以只讀的方式掛載。
nfs.server
NAS掛載點(diǎn)的地址。
Git代碼倉庫掛載
Git代碼倉庫掛載可以將一個(gè)Git倉庫中的代碼以只讀的方式直接掛載到服務(wù)實(shí)例中,在實(shí)例啟動(dòng)階段會對代碼進(jìn)行拉取。目前不會實(shí)時(shí)同步最新代碼,如果代碼倉庫中的代碼發(fā)生變更,需要重啟服務(wù)實(shí)例才能生效。
配置文件如下所示。
{ "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" } } ] }
參數(shù)說明。
參數(shù)名
是否必選
含義
mount_path
是
掛載服務(wù)實(shí)例中的目標(biāo)路徑。
git.repo
是
需要掛載的Git倉庫的HTTPS地址。暫不支持Git協(xié)議。
git.username
否
私有Git倉庫的登錄用戶名。
git.password
否
私有Git倉庫的登錄密碼。
git.branch
否
需要拉取的Git倉庫的分支,默認(rèn)為master。
git.commit
否
需要拉取的Git倉庫的commit ID。
鏡像掛載
Docker Image的方式掛載并非直接將鏡像中的目錄直接掛載到服務(wù)實(shí)例中,而是通過Shared Volume先將要掛載的鏡像中的指定目錄中的文件拷貝至本地Shared Volume中,在服務(wù)運(yùn)行時(shí)掛載本地的Shared Volume,因此當(dāng)要掛載的目錄中數(shù)據(jù)量較大時(shí),會消耗較多的本地存儲,且會使服務(wù)實(shí)例啟動(dòng)時(shí)間加長,請根據(jù)需要來使用該功能。
{ "name": "service_name", "storage": [ { "image": { "image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1", "path": "/path/to/mount/" }, "mount_path": "/data_image" } ] }
說明僅支持同區(qū)域內(nèi)網(wǎng)地址掛載,如要掛載的鏡像是private的時(shí),需通過dockerAuth參數(shù)來指定鏡像倉庫的鑒權(quán)信息。鏡像部署中關(guān)于dockerAuth參數(shù)的使用說明,請參見服務(wù)部署:自定義鏡像。
參數(shù)說明。
參數(shù)名
含義
mount_path
掛載服務(wù)實(shí)例中的目標(biāo)路徑。
image.image
需要掛載的內(nèi)網(wǎng)鏡像倉庫地址。
image.path
需要掛載到服務(wù)實(shí)例中的鏡像中的路徑。
EmptyDir掛載
如果您希望實(shí)例運(yùn)行時(shí)讀寫本地磁盤目錄,且實(shí)例異常重啟后寫入的內(nèi)容不會丟失,則可以使用EmptyDir的存儲掛載方式。
配置文件如下所示。
{ "name": "service_name", "storage": [ { "empty_dir": {}, "mount_path": "/data_image" } ] }
參數(shù)說明。
參數(shù)名
含義
mount_path
掛載服務(wù)實(shí)例中的目標(biāo)路徑。
empty_dir
表示類型為EmptyDir、值為空的Map。暫不支持其他屬性的配置。
配置共享內(nèi)存
您可以使用以下配置文件來配置共享內(nèi)存。
{
"name": "service_name",
"storage": [
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
}
]
}
其中:
medium:指定為memory。
mount_path:指定為
/dev/shm
。size_limit:用來限制內(nèi)存上限,單位為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"
}
}