日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用OSS實(shí)現(xiàn)持久化存儲(chǔ)-Flexvolume

當(dāng)容器發(fā)生宕機(jī)故障時(shí),有狀態(tài)服務(wù)容器存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)存在著丟失和不可靠等風(fēng)險(xiǎn)。使用持久化存儲(chǔ)可以解決該問(wèn)題。本文介紹如何使用OSS實(shí)現(xiàn)持久化存儲(chǔ)。

背景信息

阿里云對(duì)象存儲(chǔ)服務(wù)(OSS)提供海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù)。OSS支持同時(shí)被多個(gè)Pod掛載。

OSS使用場(chǎng)景:

  • 對(duì)磁盤(pán)I/O要求低。

  • 配置文件、圖片、小視頻等共享業(yè)務(wù)。

OSS使用方式:

  1. 手動(dòng)創(chuàng)建Bucket。

  2. 獲取AccessKey IDAccessKey Secret。

  3. 手動(dòng)創(chuàng)建PV及PVC。

前提條件

注意事項(xiàng)

  • 容器服務(wù)Kubernetes集群升級(jí)會(huì)重啟Kubelet,OSSFS驅(qū)動(dòng)跟隨一起重啟,導(dǎo)致OSS目錄不可用。這時(shí)使用OSS的Pod需要重建,可在YAML文件中增加健康檢查的配置,在容器內(nèi)OSS目錄不可用時(shí)自動(dòng)重啟Pod,重新掛載OSS。

  • 通過(guò)最新版本掛載的OSS已經(jīng)解決了此問(wèn)題。

創(chuàng)建PV

  1. 創(chuàng)建pv-oss.yaml文件。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-oss
      labels:
        alicloud-pvname: pv-oss
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      storageClassName: oss
      flexVolume:
        driver: "alicloud/oss"
        options:
          bucket: "docker"                        //請(qǐng)?zhí)鎿Q為您的Bucket名稱。
          path: /path                             //請(qǐng)?zhí)鎿Q為您的子目錄相對(duì)路徑。
          url: "oss-cn-hangzhou.aliyuncs.com"     //請(qǐng)?zhí)鎿Q為您的URL。
          akId: "***"                             //請(qǐng)?zhí)鎿Q為您的AccessKey ID。
          akSecret: "***"                         //請(qǐng)?zhí)鎿Q為您的AccessKey Secret。
          otherOpts: "-o max_stat_cache_size=0 -o allow_other"   //請(qǐng)?zhí)鎿Q為您的otherOpts。

    參數(shù)解釋?zhuān)?/p>

    • alicloud-pvname:PV的名稱,與PVC中的selector配合使用。

    • bucket:Bucket名稱。

    • path:表示掛載時(shí)相對(duì)Bucket根文件的目錄結(jié)構(gòu),默認(rèn)為/(v1.14.8.32-c77e277b-aliyun及之后版本支持)。

    • url:OSS Bucket的訪問(wèn)域名(Endpoint),請(qǐng)參見(jiàn)訪問(wèn)域名和數(shù)據(jù)中心。也可以在OSS管理控制臺(tái)查詢:登錄OSS管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇目標(biāo)Bucket,在概覽頁(yè)面的訪問(wèn)域名區(qū)域,查看Endpoint(地域節(jié)點(diǎn))。

    • akId:AccessKey ID。在容器服務(wù)管理控制臺(tái),單擊右上角user,選擇AccessKey 管理,設(shè)置AccessKey IDAccessKey Secret。

    • akSecret:AccessKey Secret。獲取方法同akId。

    • otherOpts:掛載OSS時(shí)支持定制化參數(shù),格式為:-o *** -o ***

  2. 執(zhí)行以下命令,創(chuàng)建PV。

    kubectl create -f pv-oss.yaml

預(yù)期結(jié)果:

  1. 登錄容器服務(wù)管理控制臺(tái)。
  2. 在控制臺(tái)左側(cè)導(dǎo)航欄中,單擊集群。

  3. 集群列表頁(yè)面中,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情。

  4. 在集群管理頁(yè)左側(cè)導(dǎo)航欄中,選擇存儲(chǔ) > 存儲(chǔ)卷,可以看到剛剛創(chuàng)建的PV。存儲(chǔ)卷

創(chuàng)建PVC

創(chuàng)建OSS存儲(chǔ)聲明PVC,使用selector篩選PV,精確配置PVC和PV的綁定關(guān)系。使用storageClassName,表示PVC只與OSS類(lèi)型的PV綁定。

  1. 創(chuàng)建pvc-oss.yaml文件。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-oss
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: oss
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-oss
  2. 執(zhí)行以下命令,創(chuàng)建PVC。

    kubectl create -f pvc-oss.yaml

預(yù)期結(jié)果:

  1. 登錄容器服務(wù)管理控制臺(tái)
  2. 在控制臺(tái)左側(cè)導(dǎo)航欄中,單擊集群。

  3. 集群列表頁(yè)面中,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情。

  4. 在集群管理頁(yè)左側(cè)導(dǎo)航欄中,選擇存儲(chǔ) > 存儲(chǔ)卷,可以看到剛剛創(chuàng)建的PVC。PVC

創(chuàng)建應(yīng)用

  1. 創(chuàng)建oss-static.yaml文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oss-static
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-oss
                mountPath: "/data"
              - name: pvc-oss
                mountPath: "/data1"
            livenessProbe:
              exec:
                command:
                - sh
                - -c
                - cd /data
              initialDelaySeconds: 30
              periodSeconds: 30
          volumes:
            - name: pvc-oss
              persistentVolumeClaim:
                claimName: pvc-oss
    說(shuō)明

    健康檢查livenessProbe的詳細(xì)內(nèi)容及解釋?zhuān)?qǐng)參見(jiàn)OSS存儲(chǔ)卷概述。

  2. 執(zhí)行以下命令,創(chuàng)建Deployment。

    kubectl create -f oss-static.yaml d

預(yù)期結(jié)果:

  1. 登錄容器服務(wù)管理控制臺(tái)。
  2. 在控制臺(tái)左側(cè)導(dǎo)航欄中,單擊集群。

  3. 集群列表頁(yè)面中,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的應(yīng)用管理。

  4. 在集群管理頁(yè)左側(cè)導(dǎo)航欄中,選擇工作負(fù)載 > 無(wú)狀態(tài),可以看到剛剛創(chuàng)建的Deployment。Deployment

OSS的持久化存儲(chǔ)

  1. 執(zhí)行以下命令,查看部署的deployment所在Pod的名稱。

    kubectl get pod

    預(yù)期輸出:

    NAME                             READY   STATUS    RESTARTS   AGE
    oss-static-66fbb85b67-dqbl2      1/1     Running   0          1h
  2. 執(zhí)行以下命令,查看/data路徑下的文件。

    kubectl exec oss-static-66fbb85b67-dqbl2 -- ls /data | grep tmpfile
    說(shuō)明

    /data路徑下為空,沒(méi)有文件。

  3. 執(zhí)行以下命令,在/data路徑下創(chuàng)建文件tmpfile。

    kubectl exec oss-static-66fbb85b67-dqbl2 -- touch /data/tmpfile
  4. 執(zhí)行以下命令,查看/data路徑下的文件。

    kubectl exec oss-static-66fbb85b67-dqbl2 -- ls /data | grep tmpfile

    預(yù)期輸出:

    tmpfile
  5. 執(zhí)行以下命令,刪除名稱為oss-static-66fbb85b67-dqbl2的Pod。

    kubectl delete pod oss-static-66fbb85b67-dqbl2

    預(yù)期輸出:

    pod "oss-static-66fbb85b67-dqbl2" deleted
  6. 同時(shí)在另一個(gè)窗口中,執(zhí)行以下命令,查看Pod刪除及Kubernetes重建Pod的過(guò)程。

    kubectl get pod -w -l app=nginx

    預(yù)期輸出:

    NAME                             READY   STATUS    RESTARTS   AGE
    oss-static-66fbb85b67-dqbl2      1/1     Running   0          78m
    oss-static-66fbb85b67-dqbl2   1/1   Terminating   0     78m
    oss-static-66fbb85b67-zlvmw   0/1   Pending   0     <invalid>
    oss-static-66fbb85b67-zlvmw   0/1   Pending   0     <invalid>
    oss-static-66fbb85b67-zlvmw   0/1   ContainerCreating   0     <invalid>
    oss-static-66fbb85b67-dqbl2   0/1   Terminating   0     78m
    oss-static-66fbb85b67-dqbl2   0/1   Terminating   0     78m
    oss-static-66fbb85b67-dqbl2   0/1   Terminating   0     78m
    oss-static-66fbb85b67-zlvmw   1/1   Running   0     <invalid>
  7. 執(zhí)行以下命令,查看Kubernetes重建的Pod名稱。

    kubectl get pod

    預(yù)期輸出:

    NAME                             READY   STATUS    RESTARTS   AGE
    oss-static-66fbb85b67-zlvmw      1/1     Running   0          40s
  8. 執(zhí)行以下命令,查看/data路徑下的文件,剛剛創(chuàng)建的文件tmpfile并沒(méi)有被刪除,說(shuō)明OSS上的數(shù)據(jù)可持久保存。

    kubectl exec oss-static-66fbb85b67-zlvmw -- ls /data | grep tmpfile

    預(yù)期輸出:

    tmpfile