PersistentVolume(PV):集群内的存储资源,例如节点是集群的资源。PV 独立于 Pod 的生命周期,根据不同的 StorageClass 类型创建不同类型的 PV。 PersistentVolumeClaim(PVC):集群内的存储请求。例如,PV 是 Pod 使用节点资源,PVC 则声明使用 PV 资源。当 PV 资源不足时,PVC 也可以动态创建 PV。
StorageClass 描述存储的类型,集群管理员可以为集群定义不同的存储类别。腾讯云 TKE 服务默认提供块存储类型的 StorageClass,通过 StorageClass 配合 PersistentVolumeClaim 可以动态创建需要的存储资源。
1.创建StoragClass
2.创建PVC通过界面挂载
3.创建PVC通过yaml文件挂载
4.验证挂载成功
点击并展开存储,点击StorageClass,进入 StorageClass 信息页面,点击新建。
根据实际需求,设置 StorageClass 参数。关键参数信息如下:
单击【创建StorageClass】,完成创建。
至此,storageclass创建完成!
2.1 创建PVC数据卷
展开存储,选择并点击PersitentVolumeClaim,点击新建。
输入PVC数据卷名称,输入容量大小(我这里填写10G,用于测试),其他参数默认,点击创建PersitentVolumeClaim
至此PVC创建完成!
2.2 将数据卷挂载至wordpress容器
现在我要将创建10G的PVC卷挂载至wordpress nginx容器的/tmp目录
界面方式挂载:
现在我要将创建10G的PVC卷挂载至wordpress nginx容器的/tmp目录
创建PVC流程,可参考步骤2中的2.1 创建PVC数据卷。
这里需要登录node节点机器,执行
# kubectl get deployment //查看deployment任务
# kubectl edit deployment wordpress //编辑deployment wordpress yaml文件,进行参数添加
添加如下框选处的YAML文件内容(pvc-data是之前创建PVC的名称),然后执行:wq保存退出即可。
修改后的wordpress yaml文件内容如下:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
generation: 1
labels:
k8s-app: wordpress
qcloud-app: wordpress
name: wordpress
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: wordpress
qcloud-app: wordpress
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: wordpress
qcloud-app: wordpress
spec:
containers:
- env:
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
image: ccr.ccs.tencentyun.com/liangfeng/test:test-nginx-201908051618-d852fb93feb0e32c386f4facb8550a3e1e679066
imagePullPolicy: IfNotPresent
name: nginx
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: /tmp
name: data-volume
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
- env:
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
image: ccr.ccs.tencentyun.com/liangfeng/test:test-php-201908051634-7ec4253f2f17431d387aadecbf3d2b79a690681f
imagePullPolicy: IfNotPresent
name: php
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: qcloudregistrykey
- name: tencenthubkey
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: pvc-data
在pod管理中,点击远程登录,再登录,此时进入nginx容器控制台,执行df -h,可以看到PVC 10G数据卷已挂载在/tmp目录,挂载成功!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。