专栏首页TKETKE操作指南 - PV,PVC,StoragClass配置使用(十三)
原创

TKE操作指南 - PV,PVC,StoragClass配置使用(十三)

在讲解TKE存储,我们先了解以下几个概念。

简介

PersistentVolume(PV):集群内的存储资源,例如节点是集群的资源。PV 独立于 Pod 的生命周期,根据不同的 StorageClass 类型创建不同类型的 PV。 PersistentVolumeClaim(PVC):集群内的存储请求。例如,PV 是 Pod 使用节点资源,PVC 则声明使用 PV 资源。当 PV 资源不足时,PVC 也可以动态创建 PV。

StorageClass 描述存储的类型,集群管理员可以为集群定义不同的存储类别。腾讯云 TKE 服务默认提供块存储类型的 StorageClass,通过 StorageClass 配合 PersistentVolumeClaim 可以动态创建需要的存储资源。

注意事项

  • CBS 盘不支持跨可用区挂载。若挂载 CBS 类型 PV 的 Pod 迁移到其他可用区,将会导致挂载失败。
  • TKE 控制台不支持 CBS 盘扩缩容,请自行前往 CBS 控制台执行操作。

配置步骤

1.创建StoragClass

2.创建PVC通过界面挂载

3.创建PVC通过yaml文件挂载

4.验证挂载成功

1.创建Storagclass

点击并展开存储,点击StorageClass,进入 StorageClass 信息页面,点击新建。

根据实际需求,设置 StorageClass 参数。关键参数信息如下:

  • 名称:自定义。(我填写的是cbs)
  • 计费模式:根据实际需求进行选择。(我选择的是按量计费)
  • 可用区:根据实际需求进行设置,默认为 “随机可用区”。(我这里选择广州二区)
  • 云盘类型:根据实际需求进行选择。(我选择的是普通盘)
  • 回收策略:根据实际需求进行选择。(我选择的是删除)

单击【创建StorageClass】,完成创建。

至此,storageclass创建完成!

2.创建PVC通过界面挂载

2.1 创建PVC数据卷

展开存储,选择并点击PersitentVolumeClaim,点击新建

输入PVC数据卷名称,输入容量大小(我这里填写10G,用于测试),其他参数默认,点击创建PersitentVolumeClaim

至此PVC创建完成!

2.2 将数据卷挂载至wordpress容器

现在我要将创建10G的PVC卷挂载至wordpress nginx容器的/tmp目录

界面方式挂载:

3.创建PVC通过yaml文件挂载

现在我要将创建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

4.验证挂载成功

pod管理中,点击远程登录,再登录,此时进入nginx容器控制台,执行df -h,可以看到PVC 10G数据卷已挂载在/tmp目录,挂载成功!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TKE标准化 - 通过Dockerfile制作标准化Docker基础镜像和业务镜像(一)

    Gitlab Dockerfile文件会引用腾讯云镜像仓库中的Docker基础镜像,将源代码添加至Docker基础镜像中,打包成Docker业务镜像。部署是基于...

    亮哥说TKE
  • TKE操作指南 - 部署wordpress 容器服务上(十)

    根据TKE操作指南 - 自动化构建,生成Wordpress Docker业务镜像(四)我们已经知道道nginx和php wordpress业务镜像地址

    亮哥说TKE
  • TKE操作指南 - 容器业务部署标准化总结(十六)

    /data/logs/$module_name($module_name指应用名,一般为java应用)

    亮哥说TKE
  • 刘紫千:2D的困局,运营商的机会

    大数据文摘
  • maven 手动安装本地jar包

    秋白
  • Spring MVC 参数的绑定方法

    在Spring MVC中,常见的应用场景就是给请求的Url绑定参数。本篇就介绍两种最最基本的绑定参数的方式: 基于@RequestParam 这种方法一般...

    用户1154259
  • VUE实现全国主要空气质量demo(涟漪效果),并且自适应。

    我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite...

    用户4344670
  • java支付宝开发-异常-01-"sub_code":"isv.invalid-app-id","sub_msg":"无效的AppID参数"

    后来检查了一下,发现是因为 我支付宝网关写错了。沙箱环境和正式环境 的支付宝网关不同,如下

    shirayner
  • Double DQN——解决DQN中的过估计问题

    本篇教程是基于Deep Q network(DQN)的教程,缩减了在DQN方面的介绍,着重强调Double DQN和DQN的不同之处。

    CristianoC
  • 为什么前后端分离了,你比从前更痛苦?

    来源:https://my.oschina.net/xbl/blog/2246297

    程序猿DD

扫码关注云+社区

领取腾讯云代金券