前提条件:
- K8S集群中正确部署了virtual-kubelet(serverless Kubernetes 默认集成)
- 已经在virtual-kubelet配置的同VSwitch创建NAS挂载点
步骤1. 创建PV
将以下内容保存为nas_pv_static.yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nas-static
spec:
capacity:
storage: 5Gi
storageClassName: nas
persistentVolumeReclaimPolicy: Recycle
accessModes:
- ReadWriteMany
flexVolume:
driver: "alicloud/nas"
options:
server: "1a93e496ef-fuu9.cn-beijing.nas.aliyuncs.com"
path: "/"
vers: "3"
使用kubectl创建PV:
# kubectl create -f nas_pv_static.yaml
persistentvolume/pv-nas-static created
# kubectl get pv pv-nas-static
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-nas-static 5Gi RWX Recycle Available nas 97s
步骤2. 创建PVC
将以下内容保存为nas_pvc_static.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nas
spec:
accessModes:
- ReadWriteMany
storageClassName: nas
resources:
requests:
storage: 5Gi
使用kubectl创建PVC:
# kubectl create -f nas_pvc_static.yaml
persistentvolumeclaim/pvc-nas created
# kubectl get pvc pvc-nas
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-nas Bound pv-nas-static 5Gi RWX nas 7s
步骤3. 创建Pod
将以下内容保存为pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: test-pvc-nas
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-nas
使用kubectl创建ECI实例:
# kubectl create -f pod.yaml
pod/test-pvc-nas created
# kubectl get pod test-pvc-nas
NAME READY STATUS RESTARTS AGE
test-pvc-nas 1/1 Running 0 76s
# kubectl exec -it test-pvc-nas bash
root@test-pvc-nas:/# ls /cache-test/
subpath