
对象存储服务作为云计算的一种存储服务方式,已经成为公有云平台的标配。
其中亚马逊AWS的S3对象存储,被很多公有云平台采用,使用非常广泛。
如果自己搭建Kubernetes集群,可以用MinIO来实现S3对象存储服务。
操作系统:Debian 12,Kubernetes 1.28.4
一、安装
MinIO有多种安装方式,可以安装到Linux、Windows、Docker和Kubernetes下面。
如果用它来做备份,那么最好还是安装到独立主机上面。安装到Docker比较方便。
1.安装Docker
找一台独立主机作为MinIO服务器,运行下列命令
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. 安装MinIO
运行下列命令
mkdir -p /home/minio/data
docker run \
-dt \
-p <minio-server-ip>:9000:9000 \
-p <minio-server-ip>:9001:9001 \
--name minio \
-v /home/minio/data:/data \
-e "MINIO_ROOT_USER=<username>" \
-e "MINIO_ROOT_PASSWORD=<password>" \
quay.io/minio/minio server /data --console-address ":9001"
其中<minio-server-ip>是MinIO服务器的IP地址,根据实际情况修改。<username>和<password>是MinIO的管理员账号和密码,可以自己设定。/home/minio/data是服务器上数据的存储目录,根据实际情况修改。
二、测试
1.设置
访问http://<minio-server-ip>:9001,输入MinIO的管理员账号和密码,登录进去。
点击Buckets->Create Backet+,Backet Name输入test,点击Create Backet,创建一个名为test的Backet。
点击 Access Keys->create access key+,把自动生成的Access Key和Secret Key 复制粘贴出来,Name输入test,点击Create,创建访问密钥。
2.使用POSTMAN进行测试
访问https://www.postman.com/downloads/,下载POSTMAN并安装。
打开POSTMAN,新建HTTP request,GET地址栏输入http://<minio-server-ip>:9000/test,Authentication选择AWS Signature,输入上面生成的Access Key和Secret Key,Service Name输入S3,点击Send,返回如下输出
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>test</Name>
<Prefix></Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
</ListBucketResult>
在电脑上创建一个文件1.txt ,内容随便。
在Minio的管理界面,点击Bucket->test->右上角的Browse Bucket->Upload->Upload File,把1.txt上传到Bucket。
在POSTMAN的GET地址栏输入http://<minio-server-ip>:9000/test/1.txt,应该返回1.txt文件里面的内容。
现在MinIO已经安装测试完成了。
参考:
https://medium.com/@martin.hodges/object-storage-in-your-kubernetes-cluster-using-minio-ad838decd9ce