初步学习minio
初步学习minio
什么是minio
MinIO是一个高性能的对象存储服务,API兼容Amazon S3。它非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据等。MinIO是一个轻量级的服务,可以很简单的部署在内部环境中,而又具备云存储服务那种高扩展性。
minio的优点
- 兼容Amazon S3 API:支持多语言,易于迁移
- 高性能:读写速度快
- 高可扩展性:可以线性扩展到PB级数据
- 数据安全:支持数据加密,访问控制等
- 成本低:开源软件,降低存储成本
minio组件
MinIO主要包含以下组件:
- minio server:对象存储服务器
- minio client:命令行客户端,用于访问minio service
- SDK客户端:各种语言的SDK,方便应用程序访问minio service
minio基本概念
- Bucket:用于组织存放Object的容器,该容器必须是全局唯一的。
- Object:存储在Bucket中的数据内容,每个Object拥有Key(文件名)、Value(数据内容)和Version ID。
- Keys:类似Object的文件名,用于唯一标识一个Object。
- Region:物理位置,用于说明Bucket位于的物理位置。
操作minio
MinIO提供了命令行客户端minio client,可以通过它来进行简单的对象存储操作:
- 创建Bucket:
minio mb mybucket
- 上传Object:
minio cp myphoto.jpg mybucket
- 下载Object:
minio cp mybucket/myphoto.jpg ./myphoto.jpg
- 删除Object:
minio rm mybucket/myphoto.jpg
- 列出Bucket:
minio ls mybucket
此外,MinIO提供多种语言的SDK,可以很容易的在应用程序中使用MinIO服务进行对象存储操作。
好的,我们也可以不通过Helm Chart,直接使用Kubernetes资源对象来部署MinIO服务:
k8s部署minio
主要步骤如下:
准备镜像
可以通过Dockerfile构建MinIO镜像,或者直接使用公共镜像minio/minio
准备Deployment
用Deployment管理MinIO Pod,指定镜像、端口、访问凭证等信息。
准备Service
创建Service,对外暴露MinIO服务。
准备PersistentVolume
如果需要持久存储,需要准备PersistentVolume。
准备Deployment/StatefulSet
根据单节点或者多节点,使用Deployment或者StatefulSet进行部署。
配置应用
应用需要配置访问MinIO的endpoint、accessKey、secretKey等信息。
相比Helm Chart,直接部署需要准备更多的YAML定义,但可以更自由的定制部署逻辑。
需要注意配置持久存储、服务发现、密钥管理、监控告警等辅助功能。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鲸!