题目内容
设置配置环境:
[candidate@node-1] $ kubectl config use-context ok8s
Task
创建一个新的 PersistentVolumeClaim:
名称: pv-volume
Class: csi-hostpath-sc
容量: 10Mi
创建一个新的 Pod,来将 PersistentVolumeClaim 作为 volume 进行挂载:
名称:web-server
Image:nginx:1.16
挂载路径:/usr/share/nginx/html
配置新的 Pod,以对 volume 具有 ReadWriteOnce 权限。
最后,使用 kubectl edit 或 kubectl patch 将 PersistentVolumeClaim 的容量扩展为 70Mi,并记录此更改。
考点相关内容分析
PVC
PersistentVolumeClaim 是 Kubernetes 中的一种资源对象,用于请求持久化存储资源。当应用程序需要使用持久化存储时,可以创建一个 PersistentVolumeClaim,该声明描述了对存储的需求,比如存储大小和访问模式等。然后 Kubernetes 系统会根据这些声明去匹配可用的 PersistentVolume,并自动将其绑定到相应的 Pod 上,从而提供持久化存储支持。PVC 可以与 StatefulSet、Deployment 等资源一起使用,以确保应用程序的数据持久性和可靠性。
PVC常见操作
- 查看 PVC
$ kubectl get pvc
- 查看 PVC
$ kubectl describe pvc <pvc_name>
- 删除 PVC
$ kubectl delete pvc <pvc_name>
PVC yaml 格式示例:
apiVersion: v1 # Kubernetes API 版本
kind: PersistentVolumeClaim # 资源类型为持久卷声明
metadata:
name: myclaim # PVC 的名称
spec:
accessModes: # 访问模式
- ReadWriteOnce # 读写一次
volumeMode: Filesystem # 卷模式为文件系统
resources: # 资源请求
requests:
storage: 8Gi # 请求 8GB 的存储空间
storageClassName: slow # 存储类名称为 slow
selector: # 选择器用于选择 PV
matchLabels: # 匹配标签
release: "stable" # 匹配 release=stable 的标签
matchExpressions: # 匹配表达式
- {key: environment, operator: In, values: [dev]} # 匹配环境为 dev 的标签
题目操作步骤
- (标准步骤) 进入题目指定集群
$ kubectl config use-context ok8s
- 创建一个 pvc.yaml 复制官网示例修改
$ vim pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-volume
spec:
storageClassName: csi-hostpath-sc
accessModes:
- ReadWriteOnce
resources:
request:
storage: 10Mi
$ kubectl apply -f pvc.yaml
- 创建 Pod
$ vim pvc-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: web-server
spec:
containers:
- name: nginx
image: nginx:1.16
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: pv-volume
$ kubectl apply -f pvc-pod.yaml
4. 修改 pvc 配置文件
$ kuectl edit pvc pv-volume --record
将 storage: 10Mi 改为 storage: 70Mi
检查命令
确保 pod 是 running 的
$ kubectl get pod web-server
参考链接:https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes