全部產品
Search
文件中心

Elastic Container Instance:為ECI執行個體掛載NAS資料卷

更新時間:Jul 26, 2024

NAS是阿里雲提供的一種可共用訪問、彈性擴充、高可靠以及高效能的Distributed File System。本文介紹如何為ECI執行個體掛載NAS資料卷。

注意事項

  • NAS按照使用量進行計費,支援隨用隨付、資源套件和SCU付費方式。更多資訊,請參見NAS計費概述

  • NAS檔案系統必須和執行個體處於同一VPC內。

  • NAS為共用儲存,一個NAS可以掛載到多個執行個體上。此時,如果多個執行個體同時修改相同資料,需要應用自行執行資料同步。

  • 在卸載NAS前,請勿刪除NAS掛載點,否則可能會造成作業系統無響應。

準備工作

使用阿里雲Apsara File Storage NAS作為資料卷前,請先建立NAS檔案系統和掛載點。具體操作,請參見建立檔案系統管理掛載點

配置說明(OpenAPI)

調用CreateContainerGroup介面建立ECI執行個體時,您可以通過Volume相關參數聲明資料卷,然後通過Container.VolumeMount相關參數為容器掛載資料卷。相關參數說明如下,更多資訊,請參見CreateContainerGroup

聲明資料卷

通過Volume相關參數聲明資料卷時,需要先明確Volume的名稱和類型。再根據Volume.N.Type的取值,進一步配置該類型資料卷的相關參數。

聲明NAS資料卷時,支援以下兩種方式:

  • 掛載NFS類型的資料卷

    名稱

    類型

    樣本值

    描述

    Volume.N.Name

    String

    nas-demo

    資料卷名稱。

    Volume.N.Type

    String

    NFSVolume

    取值為NFSVolume,表示建立一個NFS類型的資料卷。

    Volume.N.NFSVolume.Server

    String

    3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com

    NFS伺服器位址。

    如果使用阿里雲Apsara File Storage NAS,則此處為NAS檔案系統的掛載點地址。

    Volume.N.NFSVolume.Path

    String

    /share

    NFS資料卷路徑。

    Volume.N.NFSVolume.ReadOnly

    Boolean

    false

    NFS資料卷的讀取許可權。取值範圍:

    • true:唯讀

    • false:可讀可寫

    預設為false。

  • 通過FlexVolume外掛程式掛載資料卷

    名稱

    類型

    樣本值

    描述

    Volume.N.Name

    String

    nas-demo

    資料卷名稱。

    Volume.N.Type

    String

    FlexVolume

    取值為FlexVolume,表示通過FlexVolume外掛程式掛載資料卷。

    Volume.N.FlexVolume.Driver

    String

    alicloud/nas

    使用FlexVolume外掛程式掛載資料卷時的驅動類型。取值為alicloud/nas時,表示掛載阿里雲Apsara File Storage NAS。

    Volume.N.FlexVolume.Options

    String

    {"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share","vers":"3","options":"nolock,tcp,noresvport"}

    FlexVolume對象選項列表。為KV形式,採用JSON傳遞。

    通過FlexVolume掛載NAS時,Options表示NAS資料卷的配置參數,可配置的參數如下:

    • server:NAS的掛載點地址。

    • path:NAS路徑下的子目錄,以 / 開頭。

      • 請填寫NAS中已存在的子目錄。如果NAS根目錄下沒有此子目錄,會在建立後再掛載。

      • 極速型NAS的子目錄需要以/share開頭。

      • 可以不填此項,預設掛載到NAS根目錄。

    • vers:掛載NAS的NFS協議版本號碼。推薦使用v3,極速型NAS僅支援v3。

    • options:掛載NAS時定製化參數,格式為"xxx,xxx,xxx",例如nolock,tcp,noresvport

掛載資料卷

聲明資料卷後,可以通過VolumeMount相關參數將資料卷掛載到容器中。

名稱

類型

樣本值

描述

Container.N.VolumeMount.N.Name

String

test-volume

要掛載到容器的資料卷的名稱,對應Volume.N.Name的值。

Container.N.VolumeMount.N.MountPath

String

/usr/share

掛載目錄。

容器掛載目錄下的內容會被資料卷的內容直接覆蓋,請準確填寫。

Container.N.VolumeMount.N.SubPath

String

/usr/sub

資料卷下的子目錄。方便執行個體將同一個資料卷下的不同目錄掛載到容器的不同目錄。

Container.N.VolumeMount.N.ReadOnly

Boolean

false

掛載目錄是否唯讀。預設為false。

Container.N.VolumeMount.N.MountPropagation

String

None

資料卷的掛載傳播設定。掛載傳播允許將容器掛載的卷共用到同一ECI執行個體中的其他容器,甚至可以共用到同一宿主機上的其他ECI執行個體。取值範圍:

  • None:該卷不感知任何後續在此卷或其子目錄上執行的掛載操作。

  • HostToContainer:該卷將會感知到後續在此卷或其子目錄上的掛載操作。

  • Bidirectional:和HostToContainer類似,能感知掛載操作。另外,該卷將被傳播回宿主機和使用同一卷的所有ECI執行個體的所有容器。

預設值:None。

說明

Init容器也支援掛載資料卷,參數與上表類似,只需要將Container改為InitContainer。

配置說明(控制台)

通過Elastic Container Instance售賣頁建立ECI執行個體時,您可以在容器組配置地區聲明資料卷,然後在容器配置地區,將資料卷掛載到容器中。

聲明資料卷

  1. 容器組配置地區,展開進階配置

  2. 儲存處選擇NAS持久化儲存頁簽,單擊添加

  3. 配置NAS資料卷的相關參數。

    • 名稱:NAS資料卷的名稱。

    • 掛載點:NAS檔案系統的掛載點。

    • Path:NAS檔案系統中要掛載的路徑。

    • 唯讀:資料讀取許可權。預設可讀可寫,可按需選中唯讀。

    nas

掛載資料卷

  1. 容器配置地區選取項目容器,展開該容器的進階配置。

  2. 開啟儲存開關後單擊添加。

    此處可添加的資料卷為配置容器組時聲明的資料卷。

    nas2

說明

如果要為多個容器掛載資料卷,請選擇其他容器,重複上述操作。

配置樣本

  1. 建立一台ECI執行個體A,並為其掛載NAS資料卷。

    調用CreateContainerGroup介面建立執行個體A所採用的參數樣本如下,更多資訊,請參見CreateContainerGroup

    ContainerGroupName=test-nas-a
    SecurityGroupId=sg-bp1daxpbz9lzpvvc****
    VSwitchId=vsw-bp1gds63lmlm7ib05****
    #聲明資料卷
    Volume.1.Name=nas-demo
    Volume.1.Type=NFSVolume
    Volume.1.NFSVolume.Server=3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com
    Volume.1.NFSVolume.Path=/share
    #為容器掛載資料卷
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=nas-demo
    Container.1.VolumeMount.1.MountPath=/data-a
  2. 串連執行個體A,在掛載目錄下新增一個檔案。

    關於如何串連ECI執行個體,請參見串連ECI執行個體

    nas3

  3. 刪除執行個體A。

  4. 建立一台ECI執行個體B,並為其掛載同一個NAS資料卷。

    ContainerGroupName=test-nas-b
    SecurityGroupId=sg-bp1daxpbz9lzpvvc****
    VSwitchId=vsw-bp1gds63lmlm7ib05****
    #聲明資料卷
    Volume.1.Name=nas-demo
    Volume.1.Type=FlexVolume
    Volume.1.FlexVolume.Driver=alicloud/nas
    Volume.1.FlexVolume.Options={"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share"}
    #為容器掛載資料卷
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=nas-demo
    Container.1.VolumeMount.1.MountPath=/data-b
  5. 串連執行個體B,確認掛載目錄下的檔案。

    由於執行個體A與執行個體B掛載了同一個NAS資料卷,且NAS資料卷是持久化儲存,因此刪除執行個體A後,仍可以通過執行個體B,擷取NAS中通過執行個體A新增的檔案。

    nas4