专栏首页TKE学习分享腾讯云TKE持久化存储
原创

腾讯云TKE持久化存储

腾讯云TKE持久化存储

对于Kuberentes中,一些服务需要持久化的内容,我们一般都会使用一个共享的文件系统,类似与目前各个云厂商提供的对象存储服务,或文件系统服务,自建的话也有NFS、Ceph选择;

这里就简单的说一下我自身采用过的方式:

  • 持久化存储使用的云厂商的对象存储;
  • 使用Kubernetes中的PV与对象存储进行关联;
  • 而后PV与PVC关联;
  • 从而每个服务,使用Volume挂载该PVC,从而实现服务Pod下有持久化存储可以使用。

随着Kubernetes不断的功能完善,国内云厂商也在不断的适配,腾讯云TKE目前支持StorageClass,这样一种动态的添加持久化存储。

主要解决的问题:

在没有这种能力之前,集群管理员需要联系他们的云或者存储提供者来创建新的存储卷,成功以后再创建 PersistentVolume对象,才能够在 Kubernetes 中使用。动态卷供给能力让管理员不必进行预先创建存储卷,而是随用户需求进行创建。

StorageClass:可以定义多个 StorageClass 对象,并可以分别指定存储插件、设置参数,用于提供不同的存储卷。这样的设计让集群管理员能够在同一个集群内,定义和提供不同类型的、不同参数的卷(相同或者不同的存储系统)。这样的设计还确保了最终用户在无需了解太多的情况下,有能力选择不同的存储选项。

示例:这里我就采用腾讯云TKE进行快速的持久化存储创建

1、首先创建StorageClass;

新建

生成的yaml文件如下:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2020-06-18T07:29:23Z"
  name: sc-jingwei
  resourceVersion: "235169"
  selfLink: /apis/storage.k8s.io/v1/storageclasses/sc-jingwei
  uid: 43af2853-e5e2-4e47-86a3-be6aa9a870bb
parameters:
  paymode: POSTPAID
  type: CLOUD_PREMIUM
  zone: "160001"
provisioner: cloud.tencent.com/qcloud-cbs
reclaimPolicy: Retain
volumeBindingMode: Immediate

2、新建PVC;

如果是自己维护的Kubernetes集群,创建PVC的需要先创建PV,才能进行,但是由于这是TKE所以我们可以直接创建PVC即可,PV会根据PVC中的选择自动创建关联;

新建

生成的yaml文件如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: cloud.tencent.com/qcloud-cbs
  creationTimestamp: "2020-06-18T07:34:10Z"
  finalizers:
  - kubernetes.io/pvc-protection
  name: pvc-jingwei
  namespace: default
  resourceVersion: "235881"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/pvc-jingwei
  uid: 2679abc0-1430-4234-91b5-98cdc4aa78ce
spec:
  accessModes:
  - ReadWriteOnce
  dataSource: null
  resources:
    requests:
      storage: 100Gi
  storageClassName: sc-jingwei
  volumeMode: Filesystem
  volumeName: pvc-2679abc0-1430-4234-91b5-98cdc4aa78ce
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 100Gi
  phase: Bound

3、查看自动创建的PV;

4、自由测试;

这里我通过命令行来进行查看

[root@192-168-100-4 ~]# kubectl get sc
NAME         PROVISIONER                    AGE
sc-jingwei   cloud.tencent.com/qcloud-cbs   11m
[root@192-168-100-4 ~]# kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
pvc-2679abc0-1430-4234-91b5-98cdc4aa78ce   100Gi      RWO            Retain           Bound    default/pvc-jingwei   sc-jingwei              6m38s
[root@192-168-100-4 ~]# kubectl get pvc
NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-jingwei   Bound    pvc-2679abc0-1430-4234-91b5-98cdc4aa78ce   100Gi      RWO            sc-jingwei     6m43s

这里我们再自己创建一个deploymeny文件,使用Nginx的镜像进行确认pvc能否使用。

deployment yaml

apiVersion: apps/v1
kind: Deployment
metadata:
    name: deploy-nginx
    namespace: default
    labels:
        team: test
spec:
    replicas: 1
    selector:
        matchLabels:
            team: test
    template:
        metadata:
            labels:
                team: test
        spec:
            containers:
            - name: pod-nginx
              image: nginx:alpine
              imagePullPolicy: Always
              resources:
                requests:
                    cpu: "128m"
                    memory: "256Mi"
                limits:
                    cpu: "2"
                    memory: "4096Mi"
              ports:
              - containerPort: 42508
              readinessProbe:
                tcpSocket:
                    port: 80
                initialDelaySeconds: 5
                periodSeconds: 10
                timeoutSeconds: 1
                successThreshold: 1
                failureThreshold: 3
              livenessProbe:
                tcpSocket:
                    port: 80
                initialDelaySeconds: 15
                periodSeconds: 20
              volumeMounts:
              - name: config-volume
                mountPath: /etc/java/configs
                # 这里我随便挂载到一个目录,待会有这个目录就说明成功了。
            volumes:
                - name: config-volume
                  persistentVolumeClaim:
                    claimName: pvc-jingwei
            restartPolicy: Always

这里我在命令行就直接应用了

切入容器查看

经过确认,此方式没用问题!

总结:

通过使用腾讯云TKE的存储服务,可以快速的创建的PVC,PV会根据PVC的需求对应创建,并自动增加云硬盘。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《TKE学习》TKE服务中的存储(六)

    baron
  • TKEStack 容器混合云能力介绍(1):统一基石

    刘晨,腾讯云后台开发工程师,TKEStack社区核心成员,负责TKEStack的设计开发维护及混合云项目相关工作。 胡晓亮,腾讯云专家工程师,专注云原生领域。...

    腾讯云原生
  • 2月容器产品技术月报|元宵节快乐~回答问题领奖品啦!

    ? 2021年2月 ? ? VOL:10 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 2月上新 ?...

    腾讯云原生
  • 在 TKE 中使用 Velero 迁移复制集群资源

    李全江(jokey),腾讯云容器工程师,热衷于云原生领域。目前主要负责腾讯云 TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 概述 ...

    腾讯云原生
  • 12月容器月报 | 降低 65% 业务成本的弹性容器EKS「竞价实例」上线

    ? 2020年12月 ? ? VOL:08 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 12月上新...

    腾讯云原生
  • 容器服务 TKE 存储插件与云硬盘 CBS 最佳实践应用

    蔡靖,腾讯高级后台开发工程师,拥有多年大规模 Kubernetes 集群开发运维经验。目前负责腾讯云TKE存储组件的功能特性实现,以及稳定性与性能的提升。 引...

    腾讯云原生
  • Fluid + GooseFS 助力云原生数据编排与加速快速落地

    谢远东,腾讯高级工程师,云原生机器学习社区 Kubeflow Member、 云原生数据编排与加速框架 Fluid(CNCF Sandbox) 核心开发者、Is...

    CNCF
  • Fluid + GooseFS 助力云原生数据编排与加速快速落地

    谢远东,腾讯高级工程师,云原生机器学习社区 Kubeflow Member、 云原生数据编排与加速框架 Fluid(CNCF Sandbox) 核心开发者、I...

    腾讯云原生
  • TKE扩展组件资源设置

    聂伟星
  • 小报温馨提示:您的弹性容器服务正在配送

    2019年匆匆而去,留下的是我们每一个人所有的努力,在新的一年里,它们将陪伴着我们继续新的征程,见证新的里程。年初是奋斗的季节,年末是收获的时刻,2019年的最...

    腾讯云原生
  • 腾讯云 Serverless 弹性容器服务 EKS x 可信云:首批+先进级认证

    ? 2021年7 月 27日 - 28日,由中国信息通信研究院指导,中国通信标准化协会主办,云计算开源产业联盟承办的 2021 可信云大会在北京召开。大会上,...

    腾讯云原生
  • 使用腾讯云容器服务TKE VS 自建k8s 集群

    TKE(Tencent Kubernetes Engine) 是腾讯云提供的容器服务PAAS 平台,基于kubernetes, 集成了腾讯云vpc网络,负载均衡...

    caryguo
  • 于广游:TKE——贯穿云端,一站式云原生容器 PaaS 平台

    12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数...

    云加社区技术沙龙
  • 9月容器产品技术月报 | 腾讯云原生专题上线啦

    ? 2020年9月 ? ? VOL:05 ? ? ? ? 容器产品新特性 9月上新 ? ? 腾讯云边缘服务TKE Edge 从中心云管理边缘云资源的容器系统 ...

    腾讯云原生
  • 6月月报|容器女团齐庆建党百年

    ? ‍ 2021年6月 ‍ ? ? VOL:14 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 ...

    腾讯云原生
  • TKE独立集群(2)

    master 上腾讯云开发的服务,简单查看服务,不深究服务的作用;master节点默认不开放22端口,这里我打开了

    何飞良
  • 腾讯云TKE-搭建prometheus监控(三)

    文章《腾讯云TKE-搭建prometheus监控》基于prometheus,手把手教你如何在TKE上搭建全面的平台和业务监控,为业务保驾护航。这是系列文章的第三...

    赵思晨
  • 容器场景选择什么 Linux 版本?

    洪志国,腾讯云工程师,负责 TKE 产品容器运行时,K8s,Mesh 数据面等基础组件研发。 陈鹏,腾讯云工程师,负责腾讯云 TKE 的售中、售后的技术支持,...

    腾讯云原生
  • tke-kms-plugin插件开源

    tke-kms-plugin是Kubernetes腾讯云KMS provider插件,支持腾讯云容器服务TKE集群(及用户在腾讯云的自建K8s集群)利用腾讯云...

    腾讯大讲堂

扫码关注云+社区

领取腾讯云代金券