前提条件:

  • K8S集群中正确部署了virtual-kubelet(serverless Kubernetes 默认集成)

步骤1. 创建PV

将以下内容保存为pv.yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: d-2zehdahrwoa7srga8eqw
  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-2zehdahrwoa7srga8eqw"
使用kubectl创建PV:
# kubectl create -f pv.yaml
persistentvolume/d-2zehdahrwoa7srga8eqw created
# kubectl get pv d-2zehdahrwoa7srga8eqw
NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
d-2zehdahrwoa7srga8eqw   20Gi       RWO            Retain           Available           disk

步骤2. 创建PVC

将以下内容保存为pvc.yaml:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-disk
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: disk
  resources:
    requests:
      storage: 20Gi

使用kubectl创建PVC,绑定创建好的PV:

# kubectl create -f pvc.yaml
persistentvolumeclaim/pvc-disk created
# kubectl get pvc pvc-disk
NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-disk   Bound    d-2zehdahrwoa7srga8eqw   20Gi       RWO            disk           8s

步骤3. 创建Pod

将以下内容保存为pod.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: test-pvc-disk-static
spec:
  # ACK场景下可以通过nodeName指定调度到ECI
  # nodeName: virtual-node-eci-0
  containers:
  - image: nginx:latest
    name: test-container
    volumeMounts:
    - mountPath: /cache-test
      name: cache-volume
  volumes:
  - name: cache-volume
    persistentVolumeClaim:
      claimName: pvc-disk

使用kubectl创建ECI实例:

# kubectl create -f pod.yaml
pod/test-pvc-disk-static created
# kubectl get pod test-pvc-disk-static
NAME                   READY   STATUS    RESTARTS   AGE
test-pvc-disk-static   1/1     Running   0          50s
# kubectl exec -it test-pvc-disk-static bash
root@test-pvc-disk-static:/# ls /cache-test/
lost+found