详情页标题前

腾讯云对象存储使用腾讯云 EKS 部署

详情页1

弹性容器服务(Elastic Kubernetes Service,EKS)腾讯云容器服务推出的无须用户购买节点即可部署工作负载的容器服务模式。EKS 完全兼容原生 Kubernetes,支持使用原生方式购买及管理资源,按照容器真实使用的资源量计费。EKS 还扩展支持腾讯云的存储及网络等产品,同时确保用户容器的安全隔离、开箱即用。使用腾讯云 EKS 部署 GooseFS 可以充分利用 EKS 的弹性计算资源,构建按需按秒付费的对象存储(Cloud Object Storage,COS)存储访问加速服务。

架构说明

下图展示了使用腾讯云 EKS 部署 GooseFS 的通用架构。

腾讯云对象存储使用腾讯云 EKS 部署

如图中所示,整个架构由 EKS 托管组件、用户资源池和 COS 存储三大部分组成。其中用户资源池主要用于部署 GooseFS 集群,COS 存储作为远端存储系统,也支持替换为云 HDFS 这一公有云存储服务。具体构架过程中:GooseFS Master 和 Worker 都以 Kubernetes Statefulset 类型进行资源部署使用 Fluid 拉起 GooseFS 集群Fuse Client 集成在用户 Pod 的沙箱(Sandbox)中使用方式上保持与在标准 Kubernetes 一致

操作步骤

环境准备

1. 创建 EKS 集群,具体操作请参见 创建集群2. 开启集群访问,按实际情况选择内网或者外网,具体说明请参见 连接集群3. 执行 kubectl get ns 指令,确认集群可以使用:

   -> goosefs kubectl get ns   NAME              STATUS   AGE   default           Active   7h31m   kube-node-lease   Active   7h31m   kube-public       Active   7h31m   kube-system       Active   7h31m

4. 获取 helm,可参考 Helm 官方文档 进行操作。

安装 GooseFS

1. 输入 helm install 指令安装 chart 包,安装 fluid:

   -> goosefs helm install fluid ./charts/fluid-on-tke   NAME: fluid   LAST DEPLOYED: Tue Jul  6 17:41:20 2021   NAMESPACE: default   STATUS: deployed   REVISION: 1   TEST SUITE: None

2. 查看 fluid 相关的 pod 状态:

   -> goosefs kubectl -n fluid-system get pod   NAME                                         READY   STATUS    RESTARTS   AGE   alluxioruntime-controller-78877d9d47-p2pv6   1/1     Running   0          59s   dataset-controller-5f565988cc-wnp7l          1/1     Running   0          59s   goosefsruntime-controller-6c55b57cd6-hr78j   1/1     Running   0          59s

3. 创建 dataset,按实际需要修改相关变量,并执行 kubectl apply -f dataset.yaml 指令应用 dataset

   apiVersion: data.fluid.io/v1alpha1   kind: Dataset   metadata:     name: ${dataset-name}   spec:     mounts:     - mountPoint: cosn://${bucket-name}       name: ${dataset-name}       options:         fs.cosn.userinfo.secretKey: XXXXXXX         fs.cosn.userinfo.secretId: XXXXXXX         fs.cosn.bucket.region: ap-${region}         fs.cosn.impl: org.apache.hadoop.fs.CosFileSystem         fs.AbstractFileSystem.cosn.impl: org.apache.hadoop.fs.CosN         fs.cos.app.id: ${user-app-id}

4. 创建 GooseFS 集群,使用以下 yaml,并执行 kubectl apply -f runtime.yaml

    apiVersion: data.fluid.io/v1alpha1    kind: GooseFSRuntime    metadata:      name: slice1      annotations:        master.goosefs.eks.tencent.com/model: c6        worker.goosefs.eks.tencent.com/model: c6    spec:      replicas: 6 # worker 数量,虽然控制器支持扩容,但是goosefs当前不支持数据的自动re-balance      data:        replicas: 1  # goosefs 数据副本数      goosefsVersion:        imagePullPolicy: Always        image: ccr.ccs.tencentyun.com/cosdev/goosefs   # goosefs 集群使用的镜像以及版本        imageTag: v1.0.1      tieredstore:        levels:          - mediumtype: MEM # 支持MEM,HDD,SSD 分别对应 内存,高效云盘,SSD云盘            path: /data            quota: 5G   # 无论内存还是云盘都会生效,云盘最低为10G            high: "0.95"            low: "0.7"      properties:        goosefs.user.streaming.data.timeout: 5s        goosefs.job.worker.threadpool.size: "22"        goosefs.master.journal.type: UFS        # UFS或者EMBEDDED,单master时使用UFS    #    goosefs.worker.network.reader.buffer.size: 128MB        goosefs.user.block.size.bytes.default: 128MB    #    goosefs.user.streaming.reader.chunk.size.bytes: 32MB    #    goosefs.user.local.reader.chunk.size.bytes: 32MB        goosefs.user.metrics.collection.enabled: "false"        goosefs.user.metadata.cache.enabled: "true"        goosefs.user.metadata.cache.expiration.time: "2day"      master:        # 设定POD对应的虚拟机的规格,必填参数,不填写默认 1c1g        resources:          requests:            cpu: 8            memory: "16Gi"          limits:            cpu: 8            memory: "16Gi"        replicas: 1    #    journal:    #      volumeType: pvc    #      storageClass: goosefs-hdd        jvmOptions:          - "-Xmx12G"          - "-XX:+UnlockExperimentalVMOptions"          - "-XX:ActiveProcessorCount=8"          - "-Xms10G"      worker:        jvmOptions:          - "-Xmx28G"          - "-Xms28G"          - "-XX:+UnlockExperimentalVMOptions"          - "-XX:MaxDirectMemorySize=28g"          - "-XX:ActiveProcessorCount=8"        resources:          requests:            cpu: 16            memory: "32Gi"          limits:            cpu: 16            memory: "32Gi"      fuse:        jvmOptions:          - "-Xmx4G"          - "-Xms4G"          - "-XX:+UseG1GC"          - "-XX:MaxDirectMemorySize=4g"          - "-XX:+UnlockExperimentalVMOptions"          - "-XX:ActiveProcessorCount=24"

5. 检查集群状态以及 PVC 状态:

   -> goosefs kubectl get pod   NAME              READY   STATUS    RESTARTS   AGE   slice1-master-0   2/2     Running   0          8m8s   slice1-worker-0   2/2     Running   0          8m8s   slice1-worker-1   2/2     Running   0          8m8s   slice1-worker-2   2/2     Running   0          8m8s   slice1-worker-3   2/2     Running   0          8m8s   slice1-worker-4   2/2     Running   0          8m8s   slice1-worker-5   2/2     Running   0          8m8s   -> goosefs kubectl get pvc   slice1 Bound default-slice1 100Gi ROX fluid 7m37s       # PVC名称与dataset名称一致,100Gi是一个虚拟值用作占位

数据加载

预加载数据只需要使用如下的 yaml 创建一个 resource 即可,yaml 示例如 kubectl apply -f dataload.yaml,执行后对应的响应示例如下:

   apiVersion: data.fluid.io/v1alpha1   kind: DataLoad   metadata:     name: slice1-dataload   spec:     # 配置需要执行数据加载的 dataset信息     dataset:       name: slice1       namespace: default

创建后,可以通过 kubectl get dataload slice1-dataload 观察状态。

业务 Pod 挂载 PVC

用户业务容器按照 k8s 标准用法使用,具体请参见 Kubernetes 官方文档

销毁 GooseFS 集群

销毁 GooseFS 集群可以通过 delete 指令进行删除,可以指定删除 master 和 worker 节点。该操作属高危操作,请确保业务 pod 中没有对 Goosefs 的 IO 操作之后执行。

   -> goosefs kubectl get sts   NAME            READY   AGE   slice1-master   1/1     14m   slice1-worker   6/6     14m   -> goosefs kubectl delete sts slice1-master slice1-worker   statefulset.apps "slice1-master" deleted   statefulset.apps "slice1-worker" deleted



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/144885.html

(0)
上一篇 2023年12月9日 上午1:53
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云Serverless应用中心部署 Hexo 博客-同尘科技

    操作场景 该任务指导您通过 Serverless Website 组件,快速构建一个 Serverless Hexo 站点。 前提条件 已安装 Node.js(2020年9月1日起,Serverless 组件不再支持 Node.js10.0 以下版本,请注意升级)已安装 Git如您未安装上述应用程序,可以参见 Hexo 安装说明。 操作步骤 1. 安装 1.…

    腾讯云 2023年12月9日
  • 腾讯云对象存储COS 音视频播放器概述

    本文主要介绍 COS 音视频云端处理与端侧播放如何进行实际应用,文中的实践案例涵盖音视频处理所支持的协议、功能以及如何播放 COS 音视频文件的操作指引,并结合 腾讯云数据万象(CI) 丰富的音视频处理能力,为您提供更多的产品功能使用思路并获得更好的播放性能体验。 协议支持 音视频协议 URL 地址格式 PC 浏览器 移动端浏览器 MP3 https://.…

    腾讯云 2023年12月9日
  • 阿里云RDS数据库Statement Concurrency Control-云淘科技

    为了应对突发的数据库请求流量、资源消耗过高的语句访问以及SQL访问模型的变化, 保证MySQL实例持续稳定运行,阿里云提供基于语句规则的并发控制CCL(Concurrency Control),并提供了工具包(DBMS_CCL)便于您快捷使用。 前提条件 实例版本如下: MySQL 8.0 MySQL 5.7 注意事项 CCL的操作不产生日志,所以CCL的操…

    阿里云数据库 2023年12月9日
  • 腾讯云对象存储媒体信息接口

    简介 本文档提供关于媒体信息接口的 API 概览和 SDK 示例代码。 API 操作名 操作描述 GetMediaInfo 查询文件信息 用于查询媒体文件的信息 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 查询文件信息 功能说明 用于查询媒体文件的信息。使用此接口需要在控制台开通存储桶的媒体处理功能。说明GetMed…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSJava创建存储空间-云淘科技

    存储空间(Bucket)是存储对象(Object)的容器。对象都隶属于存储空间。本文介绍如何创建存储空间。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以从环境变量读取访问凭…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。