前提条件:
- 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 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