您可以在阿里雲Container Service Kubernetes 叢集中使用阿里雲 OSS 資料卷。

目前,僅支援 OSS 靜態儲存卷,不支援 OSS 動態儲存裝置卷。您可以通過以下方式使用 OSS 靜態儲存卷:

  • 直接使用 volume 方式
  • 使用 PV/PVC

前提條件

使用 OSS 靜態儲存卷之前,您需要先在 OSS 管理主控台上建立 Bucket。

使用說明

  • OSS 為共用儲存,可以同時為多個 Pod 提供共用儲存服務。
  • bucket:目前只支援掛載 Bucket,不支援掛載 Bucket 下面的子目錄或檔案。
  • url: OSS endpoint,掛載 OSS 的接入網域名稱。
  • akId: 使用者的 access id 值。
  • akSecret:使用者的 access secret 值。
  • otherOpts: 掛載 OSS 時支援定製化參數輸入,格式為: -o *** -o ***

注意事項

如果您的 Kubernetes 叢集是在 2018 年 2 月 6 日之前建立的,那麼您使用資料卷之間需要先安裝安裝外掛程式。使用 OSS 資料卷必須在部署 flexvolume 服務的時候建立 Secret,並輸入 AK 資訊。

使用 OSS 靜態卷

直接使用 volume 方式

使用oss-deploy.yaml 檔案建立 Pod。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-oss-deploy
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-flexvolume-oss
        image: nginx
        volumeMounts:
          - name: "oss1"
            mountPath: "/data"
      volumes:
        - name: "oss1"
          flexVolume:
            driver: "alicloud/oss"
            options:
              bucket: "docker"
              url: "oss-cn-hangzhou.aliyuncs.com"
              akId: ***
              akSecret: ***
              otherOpts: "-o max_stat_cache_size=0 -o allow_other"

使用 PV/PVC(目前不支援動態 pv)

步驟 1 建立 PV

您可以使用 yaml 檔案或者通過Container Service控制台介面建立 PV。

使用 yaml 檔案建立 PV

使用oss-pv.yaml檔案建立 PV。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-oss
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  storageClassName: oss
  flexVolume:
    driver: "alicloud/oss"
    options:
      bucket: "docker"
      url: "oss-cn-hangzhou.aliyuncs.com"
      akId: ***
      akSecret: ***
      otherOpts: "-o max_stat_cache_size=0 -o allow_other"

通過控制台介面建立 OSS 資料卷

  1. 登入Container Service管理主控台
  2. 在 Kubernetes 菜單下,單擊左側導覽列中的叢集 > 儲存,進入資料卷列表頁面。
  3. 選擇所需的叢集,單擊頁面右上方的建立


  4. 在建立資料卷對話方塊中,配置資料卷的相關參數。
    • 資料卷類型:本樣本中為 OSS。
    • 資料卷名:建立的資料卷的名稱。資料卷名在叢集內必須唯一。本例為 pv-oss。
    • 資料卷總量:所建立資料卷的容量。
    • 訪問模式:預設為 ReadWriteMany。
    • AccessKey IDAccessKey Secret:訪問 OSS 所需的 AccessKey。
    • Bucket ID:您要使用的 OSS bucket 的名稱。單擊選擇Bucket,在彈出的對話方塊中選擇所需的 bucket 並單擊選擇
    • 訪問網域名稱:如果 Bucket 和 ECS 執行個體位於不同地區(Region),請選擇外網網域名稱;如果位於相同地區,需要根據叢集網路類型進行選擇,若是 VPC 網路,請選擇VPC網域名稱,若是傳統網路,請選擇內網網域名稱
    • 標籤:為該資料卷添加標籤。


  5. 完成配置後,單擊建立

步驟 2 建立 PVC

使用oss-pvc.yaml檔案建立 PVC。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-oss
spec:
  storageClassName: oss
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

步驟 3 建立 Pod

使用oss-pod.yaml 建立 Pod。

apiVersion: v1
kind: Pod
metadata:
  name: "flexvolume-oss-example"
spec:
  containers:
    - name: "nginx"
      image: "nginx"
      volumeMounts:
          - name: pvc-oss
            mountPath: "/data"
  volumes:
  - name: pvc-oss
    persistentVolumeClaim:
        claimName: pvc-oss

使用 OSS 動態磁碟區

目前暫不支援。