全部产品
Search
文档中心

静态挂载云盘(PVC)

更新时间: 2021-10-12

本文介绍如何通过PV/PVC的方式静态挂载阿里云云盘。

前提条件

  • K8s集群中已正确部署Virtual kubelet(VK)。

    阿里云ASK集群已默认集成VK,其它集群需要您自行部署VK。更多信息,请参见对接概述

  • 已创建云盘。

    • 如果需要新创建云盘,您可以登录ECS管理控制台进行操作,创建时,请选择VK配置的vSwitch所对应的地域和可用区。具体操作,请参见创建云盘

    • 如果使用之前创建的云盘,请确保待挂载的云盘所属的地域和可用区与VK配置的vSwitch相对应,且该云盘未进行分区格式化。

步骤一:创建PV

  1. 准备PV的YAML配置文件。

    创建pv.yaml文件,文件内容如下:

    注意

    PV的名称(name)必须和云盘ID(volumeId)保持一致。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: d-2zehdahrwoa7srga****
      labels:
        failure-domain.beta.kubernetes.io/zone: cn-beijing-h
        failure-domain.beta.kubernetes.io/region: cn-beijing
    spec:
      capacity:
        storage: 20Gi
      storageClassName: disk
      accessModes:
        - ReadWriteOnce
      flexVolume:
        driver: "alicloud/disk"
        fsType: "ext4"
        options:
          volumeId: "d-2zehdahrwoa7srga****"
  2. 创建PV。

    kubectl create -f pv.yaml
  3. 查看结果。

    kubectl get pv d-2zehdahrwoa7srga****

    预期返回:

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
    d-2ze8rnte0alhf60v****   20Gi       RWO            Retain           Available           disk                    16s

步骤二:创建PVC

  1. 准备PVC的YAML配置文件。

    创建pvc.yaml文件,文件内容如下:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-disk
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: disk
      resources:
        requests:
          storage: 20Gi
  2. 创建PVC。

    kubectl create -f pvc.yaml
  3. 查看结果。

    kubectl get pvc pvc-disk

    预期返回:

    NAME       STATUS   VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    pvc-disk   Bound    pv-disk   20Gi       RWO            disk           40s

步骤三:创建Pod

  1. 准备Pod的YAML配置文件。

    创建pod.yaml文件,文件内容如下:

    注意

    创建的Pod必须和云盘处于同一可用区下,否则Pod无法挂载云盘。

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-pvc-disk-static
    spec:
      containers:
      - image: nginx:latest
        name: test-container
        volumeMounts:
        - mountPath: /cache-test
          name: cache-volume
      volumes:
      - name: cache-volume
        persistentVolumeClaim:
          claimName: pvc-disk
  2. 创建Pod。

    kubectl create -f pod.yaml
  3. 查看结果。

    使用ls命令查看Pod内的文件目录,已生成云盘对应的挂载目录/cache-test

    静态挂载云盘