如何为 Longhorn 扩展对象存储能力
作者:
王海龙,Rancher 中国社区技术经理,Linux Foundation APAC Evangelist,负责 Rancher 中国技术社区的维护和运营。拥有 8 年的云计算领域经验,经历了 OpenStack 到 Kubernetes 的技术变革,无论底层操作系统 Linux,还是虚拟化 KVM 或是 Docker 容器技术都有丰富的运维和实践经验。
在云原生环境中,非常重要的环节之一就是提供一个可以使用标准协议与客户端交互的存储系统。大家可能会马上联想到简单存储服务 S3 (Simple Storage Service)。S3 是一个庞大的协议,涵盖了存储桶、对象、密钥、版本控制、ACL 和区域等关键概念。
Longhorn 是 Kubernetes 的分布式块存储系统,除了支持块存储以外,还提供了文件系统能力。那么,Longhorn 能否充当 S3 的服务器,并提供单一的 AWS S3 API 接口来访问后端数据存储呢?
当然可以!但是你可能需要一个 S3 网关来向外部客户端提供对数据的访问权限。
s3gw 项目让这一切设想变的可行!
什么是 s3gw?
s3gw 是一项与 S3 兼容的服务,专注于在任何 PVC 支持的 Kubernetes 环境中进行部署,包括 Longhorn。s3gw 自成立以来,关注重点一直在云原生部署上。但是,如果附加了某种形式的存储,s3gw 是可以部署在许多场景中的。
s3gw 基于 Ceph 的 RADOSGW (RGW),但它是作为独立服务运行的,没有 RADOS 集群,并且依赖于 SUSE 存储团队持续开发的存储后端。目前 s3gw 仍处于开发的早期阶段,但它已经可以用于测试和使用一些 S3 功能。
以上介绍来自 s3gw 官网的直译。大家可以把 s3gw 看作一个减配版的 minio。只不过 s3gw 为了补充 Rancher 产品组合,目前将重心放在和 Longhorn 的适配上,但该工具不限于 Rancher 产品。另外,s3gw 采用的是 Apache License, Version 2.0
,而 minio 部分组件采用的是 GNU AGPLv3 license
。
接下来,本文将介绍如何安装和使用 s3gw。
部署 s3gw
s3gw 依赖一个基础的 Kubernetes 集群和 Longhorn。本次介绍将通过 Rancher 创建一个下游 K3s 集群,然后通过 Rancher 应用商店在下游 K3s 集群中安装 Longhorn 和 s3gw。
部署 Rancher 和 K3s
为了节省篇幅,部署 Rancher 和 K3s 的步骤就不在本文中详细描述,大家可参考 Rancher 和 K3s 文档进行部署。
演示环境:
- 操作系统:Ubuntu 20.04.5 LTS
- Rancher 版本:rancher/rancher:v2.7.0
- 下游 K3s 版本:v1.24.8+k3s1
- s3gw chart:0.8.0
- Longhorn chart:101.1.0+up1.3.2
部署 Longhorn
通过 Rancher 部署 Longhorn 非常简单,只需要进入下游 K3s 集群,在 Rancher 仪表板左侧 Apps 下的 Charts 选择 Longhorn 便可开始部署 Longhorn:
安装非常简单,你不需要更改 chart 中的任何默认值。最后,如果一切顺利,你应该会看到 Rancher 的控制台显示:
安装 Longhorn 后,你只需单击左侧 Rancher 菜单中的 Longhorn 菜单即可重定向到 Longhorn 的仪表板:
新安装的 Longhorn 显示仍然没有应用程序使用持久卷。
部署 s3gw
和 Longhorn 一样,你仍然可以使用 Apps 来安装 S3gw,你会在合作伙伴存储库中找到可用的 s3gw,如下所示:
你也可以为 s3gw 设置一些自定义的参数。
本次 Demo 取消了 Create Storage Class
选项,并且修改 Storage Class
为 longhorn
。因为 Longhorn 已经通过 Rancher App 进行部署,并且名称为 longhorn
。
安装完成后,如果一切顺利,你应该会看到 Rancher 的控制台显示:
在 Longhorn 仪表板上,你可以验证应用程序是否正在使用 Longhorn 持久卷:
以上,我们就完成了 s3gw 的安装,接下来,我们就可以验证 S3gw 的使用!
验证 s3gw
默认情况下,s3gw chart 配置一个 ingress,该 ingress 指向具有 FQDN 的 S3 网关:s3gw.local
。因此,你必须在 /etc/hosts 中定义 s3gw.local 指向主机物理接口之一的 IP 地址。
如果部署 s3gw 时启用了 S3 UI,那么也需要将 S3 UI 的 FQDN 加到映射文件中,例如:
35.182.248.120 s3gw.local 35.182.248.120 s3gw-ui.local
要测试 S3 gateway,你可以依赖 s3cmd,它是一个流行的命令行 S3 客户端。
安装后,你可以从 https://raw.githubusercontent.com/aquarist-labs/s3gw-core/main/env/s3cmd.cfg 获取 s3cmd 配置文件并将其用于 s3gw。
需要修改文件中的
access_key
和secret_key
接下来,你需要做的就是创建一个目录,将 s3cmd.cfg 放入其中,最后调用 s3cmd。
创建 bucket
$ s3cmd -c s3cmd.cfg mb s3://foo
上传文件到 bucket 中
让我们创建一个 1mb 的文件,填充一些随机数据并将其放入存 bucket 中:
$ dd if=/dev/random bs=1k count=1k of=obj.1mb.bin $ s3cmd -c s3cmd.cfg put obj.1mb.bin s3://foo
列出 bucket 中包含的对象
$ s3cmd -c s3cmd.cfg ls s3://foo 2022-12-02 02:05 1048576 s3://foo/obj.1mb.bin
删除 bucket
$ s3cmd -c s3cmd.cfg rm s3://foo/obj.1mb.bin
Rancher 备份对接 S3gw
Rancher 可以通过 rancher-backup operator
来备份和恢复任何 Kubernetes 集群上的 Rancher,备份文件可以保存在 S3 兼容的对象存储中。这样我们就可以利用 rancher-backup operator
将 Rancher 备份通过 s3gw 存储在 longhorn 中。
要实现以上的需求,只需要在创建 Rancher 备份时选择 Use an S3-compatible object store
,并设置 s3gw 的连接参数即可,以下是示例:
备份创建成功后,可以通过 s3cmd 确认 Rancher 备份是否上传到 s3gw:
$ s3cmd -c s3cmd.cfg ls s3://foo 2022-12-02 02:09 1048576 s3://foo/obj.1mb.bin 2022-12-02 02:55 826155 s3://foo/rancher-backup-demo-455e4847-d18f-4ae5-a960-90ecc5768986-2022-12-02T02-55-36Z.tar.gz
S3gw UI
s3gw Web UI 提供了一种与 s3gw 服务交互的直观方式,包括用户和存储桶管理,以及对象资源管理器。
要访问 s3gw Web UI,可以使用在 chart 中配置的 S3 UI FQDN 访问 S3 Web UI(本例为:s3gw-ui.local),并使用 chart 中设置的 Access key
和 Secret key
作为凭证登录 S3 Web UI(本例为:test/test):
下面是当前 UI 版本的一些屏幕截图,但请记住,我们仍在积极开发它,它的功能还不完整。
总 结
本文主要介绍了如何在 Rancher 中安装 Longhorn/s3gw 以及使用 S3 网关系统。K3s、Rancher 和 Longhorn 是建立一个具有弹性和高性能存储环境的强大工具,如果你需要将存储暴露给外部客户端,那么 s3gw 是一个非常好的选择。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
艾博德加入 openKylin,为社区提供教育信息化解决方案!
近日,深圳市艾博德科技股份有限公司(以下简称“艾博德”)签署openKylin社区CLA(Contributor License Agreement 贡献者许可协议),正式加入openKylin开源社区。 艾博德成立于2007年,拥有15年教育信息化行业经验,目前已发展成为一家智慧教育整体解决方案提供商及运营服务商,专业从事智慧教育云平台、课堂互动教学软件、电子白板软件及红外触摸屏、交互式电子白板、激光投影机、多媒体教学一体机、液晶触摸一体机等具有健全的开发、生产管理体系和完善的销售、服务机构,是集科、工、贸为一体的国家高新技术企业和重点软件企业。 在加入openKylin社区后,艾博德将积极参与社区合作,为openKylin提供教育信息化解决方案,推广并将需要的相关产品和软件融入openKylin系统,共同构建一个开放、丰富的软硬件生态体系。 社区会员持续招募中 目前,openKylin社区会员招募正在火热进行中,欢迎更多企业伙伴加入,携手共建,打造桌面操作系统顶级社区,推动国产操作系统产业生态健康发展。详情可查看:【https://mp.weixin.qq.com/s/yk82DE...
- 下一篇
2022年12月中国数据库排行榜:OceanBase立足创新登榜首,华为腾讯排名上升树雄心
不经一番寒彻骨,怎得梅花扑鼻香。2022年12月的墨天轮中国数据库流行度排行榜火热出炉,本月共有249个数据库参与排名,相比上月新增3个数据库。本月排行榜前十用一句话可以概括为:榜单前十一片红,TODO 格局重洗牌,TDSQL 排名上升,数据库行业以“动”迎冬。 2022年12月排行榜TOP10得分详情表 目 录 一、榜单前十格局生变 二、后来之秀势如破竹 三、搜索引擎数据库风口已至 四、结 语 一、榜单前十格局生变 本月排行榜中,排名前十较上月有所变动。相比上月榜单前十得分情况,本月八成数据库热度指数上升。榜单前四中“双O组合”势不可挡,TDSQL 助力海外银行排名上升。接下来将具体分析榜单前十各国产数据库的最新进展。 OceanBase 本月得分较上月上涨7.5%,反超累计霸榜34个月的 TiDB,摘得桂冠。这也是其自2019年12月位列榜首后,第二次重夺第一。近日,OceanBase 从257项各类申报成果中脱颖而出,第三次入选世界互联网领先科技成果。截至目前,其已经申请发明专利350多项,获得授权发明专利200多项,主导和参与国家/行业标准10多项。OceanBase 立足创新...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8