跳转至

04存储

考试大纲

存储:10%

  • 了解存储类、持久卷

  • 了解卷模式、访问模式和卷回收策略

  • 理解持久容量声明原语

  • 了解如何配置具有持久性存储的应用程序

PV

题目描述:

  • 设置配置环境 kubectl config use-context k8s

  • 创建名为 app-data 的 persistent volume,容量为 1Gi,访问模式为 ReadWriteMany。volume 类型为 hostPath,位于/srv/app-data

官方文档:

参考解答:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-data
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/srv/app-data"

PVC

题目描述:

  • 置配置环境 kubectl config use-context k8s

  • 创建一个新的 PersistentVolumeClaim:

  • 名称:pvvolume

  • class:csi-hostpath-sc

  • 容量:10Mi

  • 创建一个新的 pod,此 pod 将作为 volume 挂载到PersistentVolumeClaim:

  • 名称:web-server

  • image: nginx

  • 挂载路径: /usr/share/nginx/html

  • 配置新的 pod,以对 volume 具有 ReadWriteOnce 权限。

  • 最后,使用 kubectl edit 或者 kubectl patch 将 PersistentVolumeClaim 的容量扩展为 70Mi,并记录此次更改。

官方文档:

参考解答:

  • pvc 配置文件
cat > /cka/pvc.yaml <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvvolume
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 10Mi
  storageClassName: csi-hostpath-sc
EOF
  • pod 配置文件
cat > /cka/pod.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  containers:
    - name: nginx
      image: nginx
      volumeMounts:
      - mountPath: "/usr/share/nginx/html"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: pvvolume
EOF
  • 创建
# 创建 pvc
kubectl apply -f /cka/pvc.yaml
# 创建 pod
kubectl apply -f /cka/pod.yaml
  • 扩展 pvc 容量
kubectl edit pvc pvvolume --record