该文章主要介绍了存储卷在TKE上的使用。
PV,PVC,StoragClass配置使用
StoragClass配置使用
StorageClass 描述存储的类型,集群管理员可以为集群定义不同的存储类别。腾讯云 TKE 服务默认提供块存储类型的 StorageClass,通过 StorageClass 配合 PersistentVolumeClaim 可以动态创建需要的存储资源。
找到你的集群,选择存储中的storaeclass,点击新建
根据实际需求,设置 StorageClass 参数。关键参数信息如下:
计费模式:根据实际需求进行选择。(我选择的是按量计费)
可用区:根据实际需求进行设置,默认为 “随机可用区”。(我这里选择广州三区)
云盘类型:根据实际需求进行选择。(我选择的是高性能云硬盘)
回收策略:根据实际需求进行选择。(我选择的是删除)
单击【创建StorageClass】,完成创建。
至此,storageclass创建完成!
PVC的配置使用
创建PVC
PersistentVolumeClaim(PVC):集群内的存储请求。例如,PV 是 Pod 使用节点资源,PVC 则声明使用 PV 资源。当 PV 资源不足时,PVC 也可以动态创建 PV。
点击存储,选择PVC,再点击新建
填写pvc名称,我这里写的是nwx-test-pvc,选择命名空间为test,读写权限为单机读写,SC选择我们之前创建的nwx-sc,大小为10G。
PVC已经创建完成
控制台配置挂载PVC
我们把新建的pvc挂载到之前的nginx服务中,我们可以通过修改yaml和在控制台修改配置进行挂载
找到我们之前创建的deployment,然后点击pod配置修改
数据卷选择我们之前创建的PVC,然后在挂载点钟选择挂载的PVC和挂载路径,我们这里挂载到/tmp
修改yaml挂载PVC
在控制台修改yaml
命令修改yaml
[root@VM_0_13_centos ~]# kubectl get deployment -n test
[root@VM_0_13_centos ~]# kubectl edit deployment new-nginx -n test
完整的yaml文件
apiVersion: apps/v1beta2
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "2"
creationTimestamp: "2020-06-02T09:36:11Z"
generation: 2
labels:
k8s-app: new-nginx
qcloud-app: new-nginx
name: new-nginx
namespace: test
resourceVersion: "8614784222"
selfLink: /apis/apps/v1beta2/namespaces/test/deployments/new-nginx
uid: 7e77455e-a4b4-11ea-9c35-e28957d7d0b3
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: new-nginx
qcloud-app: new-nginx
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: new-nginx
qcloud-app: new-nginx
spec:
containers:
- env:
- name: RUNTIME
valueFrom:
configMapKeyRef:
key: RUNTIME
name: nginx-env
optional: false
- name: TZ
valueFrom:
configMapKeyRef:
key: TZ
name: nginx-env
optional: false
image: ccr.ccs.tencentyun.com/tmptest/nwx-nginx
imagePullPolicy: IfNotPresent
name: new-my-nginx
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
securityContext:
privileged: false
procMount: Default
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /tmp
name: data-volume
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: test-secret
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: nwx-pvc1
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2020-06-03T02:41:32Z"
lastUpdateTime: "2020-06-03T02:41:32Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: "2020-06-02T09:36:11Z"
lastUpdateTime: "2020-06-03T02:51:59Z"
message: ReplicaSet "new-nginx-86774775f6" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
observedGeneration: 2
readyReplicas: 1
replicas: 1
updatedReplicas: 1
验证PVC是否挂载成功
PV的配置使用
动态创建PV
PersistentVolume(PV):集群内的存储资源,例如节点是集群的资源。PV 独立于 Pod 的生命周期,根据不同的 StorageClass 类型创建不同类型的 PV。
当我们在PVC中引用对应的SC,会动态的创建PV。
静态创建CBS类型PV
静态PV支持三种类型,CFS和COS需要去扩展组件中安装组件
安装COS和CFS组件
静态创建CBS类型pv,选择关联的SC即可
静态创建CFS类型PV并关联到PVC
先要创建好CFS类型的SC
在集群的同一个私有网络下创建NFS
静态创建pv,并关联之前的sc和新建的NFS
创建PVC,关联创建的nfs类型pv,创建成功,即可引用
创建成功,可以在yaml中或者控制台修改deployment配置进行挂载
静态创建CBS类型PV并关联到PVC
首先在云服务器中创建你所需要的CBS卷
创建pv,选择你创建的云盘
创建PVC,选择你的容量,注意,如果你之前创建了多个PV,PVC关联的规则选择容量大于或等于当前PVC设置的容量大小的静态创建的PersistentVolume
创建成功,可以在yaml中或者控制台修改deployment配置进行挂载