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

如何在ACK集群中使用CPFS存儲卷服務

您可以在阿里云容器服務Kubernetes版(ACK)中使用文件存儲CPFS(Cloud Paralleled File System)。本文介紹如何在ACK中安裝Flexvolume插件,并通過CPFS數(shù)據(jù)卷的方式為應用(Pod)提供CPFS服務。

前提條件

重要 ACK CPFS存儲卷服務目前只支持CPFS 1.0版,不支持2.0版本。

背景信息

CPFS是一種并行文件系統(tǒng)。CPFS的數(shù)據(jù)存儲在集群中的多個數(shù)據(jù)節(jié)點,并可由多個客戶端同時訪問,從而能夠為大型高性能計算機集群提供高IOPS、高吞吐、低時延的數(shù)據(jù)存儲服務。CPFS是共享存儲服務類型,適合于容器服務場景對資源共享、高性能的要求,在大數(shù)據(jù)、AI、基因計算等高性能場景中使用容器服務和CPFS是一個推薦的解決方案。有關CPFS詳情,請參見什么是文件存儲CPFS

步驟一、部署插件

ACK中使用CPFS依賴以下兩個驅動類組件:
  • CPFS容器驅動:即為Flexvolume-cpfs插件,對Centos各個版本都兼容,部署Flexvolume-cpfs即可完成安裝。
  • CPFS客戶端驅動:為CPFS掛載時的客戶端(類似于nfs-client),驅動與操作系統(tǒng)內核是強依賴。容器場景中安裝CPFS客戶端驅動有以下方式:
    • 手動安裝驅動。請參見掛載文件系統(tǒng)
    • Flexvolume-cpfs部署時自動安裝驅動,但只支持部分內核版本。
      您可以通過在節(jié)點上執(zhí)行命令uname -a查看內核版本。目前容器場景下您可以在以下內核版本中安裝CPFS客戶端驅動。
      3.10.0-957.5.1
      3.10.0-957.21.3
      3.10.0-1062.9.1
    說明
    • 目前Flexvolume只支持安裝CPFS Client驅動,不支持cpfs-client驅動升級,即發(fā)現(xiàn)節(jié)點安裝了CPFS客戶端,不再繼續(xù)安裝驅動。
    • 升級Flexvolume版本,只會升級Flexvolume驅動(容器驅動),而不會升級cpfs-client版本。
    • 在已經(jīng)部署了cpfs-client、lustre驅動的節(jié)點上安裝cpfs flexvolume不會再安裝新版本的cpfs-client。
    • cpfs-client驅動升級需要手動進行。具體操作,請參見掛載文件系統(tǒng)
  1. 在集群節(jié)點中部署YAML模板。
    1. 在客戶端計算機中獲取集群KubeConfig并通過kubectl工具連接集群
    2. 創(chuàng)建名為flexvolume-cpfs.yaml的文件,將以下內容拷貝至文件中。
      apiVersion: apps/v1
      kind: DaemonSet
      metadata:
        name: flexvolume-cpfs
        namespace: kube-system
        labels:
          k8s-volume: flexvolume-cpfs
      spec:
        selector:
          matchLabels:
            name: flexvolume-cpfs
        template:
          metadata:
            labels:
              name: flexvolume-cpfs
          spec:
            hostPID: true
            hostNetwork: true
            tolerations:
            - operator: "Exists"
            priorityClassName: system-node-critical
            affinity:
              nodeAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:
                  nodeSelectorTerms:
                  - matchExpressions:
                    - key: type
                      operator: NotIn
                      values:
                      - virtual-kubelet
            containers:
            - name: flexvolume-cpfs
              image: registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.96-0d85fd1-aliyun
              imagePullPolicy: Always
              securityContext:
                privileged: true
              env:
              - name: ACS_CPFS
                value: "true"
              - name: FIX_ISSUES
                value: "false"
              livenessProbe:
                exec:
                  command:
                  - sh
                  - -c
                  - ls /acs/flexvolume
                failureThreshold: 8
                initialDelaySeconds: 15
                periodSeconds: 60
                successThreshold: 1
                timeoutSeconds: 15
              volumeMounts:
              - name: usrdir
                mountPath: /host/usr/
              - name: etcdir
                mountPath: /host/etc/
              - name: logdir
                mountPath: /var/log/alicloud/
              - mountPath: /var/lib/kubelet
                mountPropagation: Bidirectional
                name: kubeletdir
            volumes:
            - name: usrdir
              hostPath:
                path: /usr/
            - name: etcdir
              hostPath:
                path: /etc/
            - name: logdir
              hostPath:
                path: /var/log/alicloud/
            - hostPath:
                path: /var/lib/kubelet
                type: Directory
              name: kubeletdir
        updateStrategy:
          rollingUpdate:
            maxUnavailable: 10%
          type: RollingUpdate
    3. 執(zhí)行以下命令部署上述YAML文件至集群節(jié)點中。
      kubectl create -f flexvolume-cpfs.yaml
  2. 檢查部署情況。
    1. 執(zhí)行以下命令查看存儲插件的部署情況。
      kubectl get pod -nkube-system | grep flex

      預期輸出:

      flexvolume-97psk                                  1/1     Running   0          27m
      flexvolume-cpfs-dgxfq                             1/1     Running   0          98s
      flexvolume-cpfs-qpbcb                             1/1     Running   0          98s
      flexvolume-cpfs-vlrf9                             1/1     Running   0          98s
      flexvolume-cpfs-wklls                             1/1     Running   0          98s
      flexvolume-cpfs-xtl9b                             1/1     Running   0          98s
      flexvolume-j8zjr                                  1/1     Running   0          27m
      flexvolume-pcg4l                                  1/1     Running   0          27m
      flexvolume-tjxxn                                  1/1     Running   0          27m
      flexvolume-x7ljw                                  1/1     Running   0          27m
      說明 以flexvolume-cpfs開頭的Pod表示部署的CPFS存儲卷插件。不含CPFS字樣的flexvolume Pod表示集群默認部署的NAS、云盤、OSS存儲卷插件。兩個插件可以同時部署。
    2. 執(zhí)行以下命令查看cpfs-client驅動是否安裝完成。
      rpm -qa | grep cpfs

      預期輸出:

      kmod-cpfs-client-2.10.8-202.el7.x86_64
      cpfs-client-2.10.8-202.el7.x86_64
    3. 執(zhí)行以下命令查看mount.lustre是否安裝完成。
      which mount.lustre

      預期輸出:

      /usr/sbin/mount.lustre

步驟二、使用CPFS數(shù)據(jù)卷

在ACK中使用CPFS數(shù)據(jù)卷,需要您先到CPFS控制臺創(chuàng)建一個CPFS卷和掛載點。參見創(chuàng)建文件系統(tǒng)
重要 創(chuàng)建CPFS掛載點時,選擇的VPC網(wǎng)絡需要和ACK集群在同一個VPC內。

在以下示例中,獲取的掛載點為 《cpfs-*-alup.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp:cpfs--ws5v.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp》;文件系統(tǒng)ID為 《0237ef41》

  1. 創(chuàng)建PV。
    1. 創(chuàng)建名為pv-cpfs.yaml的文件,拷貝以下內容至文件中。
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-cpfs
        labels:
          alicloud-pvname: pv-cpfs
      spec:
        capacity:
          storage: 5Gi
        accessModes:
          - ReadWriteMany
        flexVolume:
          driver: "alicloud/cpfs"
          options:
            server: "cpfs-****-alup.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp:cpfs-***-ws5v.cn-shenzhen.cpfs.nas.aliyuncs.com@tcp"
            fileSystem: "0237ef41"
            subPath: "/k8s"
            options: "ro"
      參數(shù)描述
      server配置為CPFS的掛載點。
      fileSystem配置為CPFS文件系統(tǒng)ID。
      subPath配置為期望掛載的CPFS子目錄,相對于文件系統(tǒng)根目錄。
      options可選,掛載配置選項。
    2. 執(zhí)行以下命令創(chuàng)建PV。
      kubectl create -f pv-cpfs.yaml
  2. 創(chuàng)建PVC。
    1. 創(chuàng)建pvc-cpfs文件,并拷貝以下內容至文件中。
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: pvc-cpfs
      spec:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 5Gi
        selector:
          matchLabels:
            alicloud-pvname: pv-cpfs
    2. 執(zhí)行命令kubectl create -f pvc-cpfs創(chuàng)建PVC。
  3. 創(chuàng)建應用。
    1. 創(chuàng)建nas-cpfs文件,并拷貝以下內容至文件中。
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nas-cpfs
        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-cpfs
                  mountPath: "/data"
            volumes:
              - name: pvc-cpfs
                persistentVolumeClaim:
                  claimName: pvc-cpfs
    2. 執(zhí)行命令kubectl create -f nas-cpfs創(chuàng)建應用。

執(zhí)行結果

執(zhí)行以下命令檢查Pod掛載情況。

kubectl get pod

預期輸出:

NAME                        READY   STATUS    RESTARTS   AGE
nas-cpfs-79964997f5-kzrtp   1/1     Running   0          45s

執(zhí)行以下命令進入Pod查看掛載目錄。

kubectl exec -ti nas-cpfs-79964997f5-kzrtp sh
mount | grep k8s

預期輸出:

192.168.1.12@tcp:192.168.1.10@tcp:/0237ef41/k8s on /data type lustre (ro,lazystatfs)

執(zhí)行以下命令進入Pod所在節(jié)點,查看掛載目錄。

mount | grep cpfs

預期輸出:

192.168.1.12@tcp:192.168.1.10@tcp:/0237ef41/k8s on /var/lib/kubelet/pods/c4684de2-26ce-11ea-abbd-00163e12e203/volumes/alicloud~cpfs/pv-cpfs type lustre (ro,lazystatfs)