首页 > 其他分享 >READM

READM

时间:2023-01-17 17:22:15浏览次数:45  
标签:Compose MinIO 部署 READM Docker docker minio

minio 部署

Minio介绍

1.1 Minio简介

MinIO 是高性能的对象存储,是为海量数据存储、人工智能、大数据分析而设计的,它完全兼容Amazon S3接口,单个对象最大可达5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。MinIO主要采用Golang语言实现,,客户端与存储服务器之间采用http/https通信协议。

1.2 部署方式

  • 单机部署
  • 分部署部署

1.3 Minio网址

2.1 在docker中运行单节点模式

2.1.1 前置条件

您的机器已经安装docker.

2.1.2 docker 部署MinIO

MinIO 需要一个持久卷来存储配置和应用数据。不过, 如果只是为了测试一下, 您可以通过简单地传递一个目录(在下面的示例中为/ data)启动MinIO。这个目录会在容器启动时在容器的文件系统中创建,不过所有的数据都会在容器退出时丢失。

docker run -p 9000:9000 minio/minio server /data

要创建具有永久存储的MinIO容器,您需要将本地持久目录从主机操作系统映射到虚拟配置~/.minio 并导出/data目录。 为此,请运行以下命令

GNU/Linux 和 macOS

docker run -p 9000:9000 --name minio1 \
  -v /mnt/data:/data \
  -v /mnt/config:/root/.minio \
  minio/minio server /data

Windows

Copydocker run -p 9000:9000 --name minio1 \
  -v D:\data:/data \
  -v D:\minio\config:/root/.minio \
  minio/minio server /data

2.2 在docker中运行分布式模式

分布式MinIO可以通过 Docker Compose 或者 Swarm mode进行部署。这两者之间的主要区别是Docker Compose创建了单个主机,多容器部署,而Swarm模式创建了一个多主机,多容器部署。

这意味着Docker Compose可以让你快速的在你的机器上快速使用分布式MinIO-非常适合开发,测试环境;而Swarm模式提供了更健壮,生产级别的部署。

2.2.1 MinIO部署快速入门

MinIO是一个云原生的应用程序,旨在在多租户环境中以可持续的方式进行扩展。编排(orchestration)平台为MinIO的扩展提供了非常好的支撑。

云原生这个词代表的是一些思想的集合,比如微服务部署,可伸缩,而不是说把一个单体应用改造成容器部署。一个云原生的应用在设计时就考虑了移植性和可伸缩性,而且可以通过简单的复制即可实现水平扩展。现在兴起的编排平台,像Swarm、Kubernetes以及DC/OS,让大规模集群的复制和管理变得前所未有的简单,哪里不会点哪里。

容器提供了隔离的应用执行环境,编排平台通过容器管理以及复制功能提供了无缝的扩展。MinIO继承了这些,针对每个租户提供了存储环境的隔离。

MinIO是建立在云原生的基础上,有纠删码、分布式和共享存储这些特性。MinIO专注于并且只专注于存储,而且做的还不错。它可以通过编排平台复制一个MinIO实例就实现了水平扩展。

在一个云原生环境中,伸缩性不是应用的一个功能而是编排平台的功能。

现在的应用、数据库,key-store这些,很多都已经部署在容器中,并且通过编排平台进行管理。MinIO提供了一个健壮的、可伸缩、AWS S3兼容的对象存储,这是MinIO的立身之本,凭此在云原生应用中占据一席之地。

2.2.3 Docker Compose 部署MinIO

Docker Compose允许定义和运行单主机,多容器Docker应用程序。

使用Compose,您可以使用Compose文件来配置MinIO服务。 然后,使用单个命令,您可以通过你的配置创建并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建立基于分布式MinIO的开发,测试和分期环境的好方法。
https://github.com/minio/minio/blob/master/docs/orchestration/docker-compose
GNU/Linux and macOS

docker-compose pull
docker-compose up

Windows

docker-compose.exe pull
docker-compose.exe up

现在每个实例都可以访问,端口从9001到9004,请在浏览器中访问http://127.0.0.1:9001/

注意事项
默认情况下Docker Compose file使用的是最新版的MinIO server的Docker镜像,你可以修改image tag来拉取指定版本的MinIO Docker image.

默认情况下会创建4个minio实例,你可以添加更多的MinIO服务(最多总共16个)到你的MinIO Comose deployment。添加一个服务

  • 复制服务定义并适当地更改新服务的名称。
  • 更新每个服务中的命令部分。
  • 更新要为新服务公开的端口号。 另外,请确保分配给新服务的端口尚未使用。
  • 关于分布式MinIO的更多资料,请访问这里.

Docker compose file中的MinIO服务使用的端口是9001到9004,这允许多个服务在主机上运行。

2.2.2 Docker Swarm 部署MinIO

Docker Engine在Swarm模式下提供集群管理和编排功能。 MinIO服务器可以在Swarm的分布式模式下轻松部署,创建一个多租户,高可用性和可扩展的对象存储。

从Docker Engine v1.13.0 (Docker Compose v3.0)开始, Docker Swarm和Compose 二者cross-compatible。这允许将Compose file用作在Swarm上部署服务的模板。 我们使用Docker Compose file创建分布式MinIO设置。

  1. 前提条件
    熟悉Swarm mode key concepts.
    Docker engine v1.13.0运行在[networked host machines]集群上(https://docs.docker.com/engine/swarm/swarm-tutorial/#/three-networked-host-machines).

2.2.4 Kubernetes 部署MinIO

Kubernetes的部署和状态集提供了在独立,分布式或共享模式下部署MinIO服务器的完美平台。 在Kubernetes上部署MinIO有多种选择,您可以选择最适合您的。

MinIO Helm Chart通过一个简单的命令即可提供自定义而且简单的MinIO部署。更多关于MinIO Helm部署的资料,请访问这里.

你也可以浏览Kubernetes MinIO示例 ,通过.yaml文件来部署MinIO。
http://docs.minio.org.cn/docs/master/deploy-minio-on-kubernetes

docker-compose-secrets.yaml

docker swarm 集群部署minio 文档

version: '3.7'
# Settings and configurations that are common for all containers
x-minio-common: &minio-common
  image: quay.io/minio/minio:RELEASE.2023-01-12T02-06-16Z
  command: server --console-address ":9001" http://minio{1...4}/data{1...2}
  expose:
    - "9000"
    - "9001"
  # environment:
    # MINIO_ROOT_USER: minioadmin
    # MINIO_ROOT_PASSWORD: minioadmin
  networks:
    - minio_distributed
  deploy:
    mode: replicated
      replicas: 6
    restart_policy:
      delay: 10s
      max_attempts: 10
      window: 60s
    placement:
      constraints:
        - node.role==manager
       # - node.labels.minio1==true
  secrets:
    - secret_key
    - access_key
  healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
    interval: 30s
    timeout: 20s
    retries: 3
services:
  minio1:
    <<: *minio-common
    hostname: minio1
    volumes:
      - ./data1-1:/data1
      - ./data1-2:/data2
  minio2:
    <<: *minio-common
    hostname: minio2
    volumes:
      - ./data2-1:/data1
      - ./data2-2:/data2
  minio3:
    <<: *minio-common
    hostname: minio3
    volumes:
      - ./data2-1:/data1
      - ./data2-2:/data2
  minio4:
    <<: *minio-common
    hostname: minio4
    volumes:
      - ./data4-1:/data1
      - ./data4-2:/data2
  nginx:
    image: nginx:1.19.2-alpine
    hostname: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - "9000:9000"
      - "9001:9001"
    depends_on:
      - minio1
      - minio2
      - minio3
      - minio4
# volumes:
#  data1-1:
#  data1-2:
#  data2-1:
#  data2-2:
#  data3-1:
#  data3-2:
#  data4-1:
#  data4-2:
networks:
  minio_distributed:
    driver: overlay
secrets:
  secret_key:
    external: true
  access_key:
    external: true

修改说明

1.使用Docker secrets进行MinIO Access和Secret密钥自定义

echo "testAccess" | docker secret create access_key -
echo "testSecret_key" | docker secret create secret_key -

将生成的密钥填入docker-compose.yml
x-minio-common.secrets
参考:
http://docs.minio.org.cn/docs/master/minio-docker-quickstart-guide
2.docker-compose.yml设置的是在一台服务器上运行4个节点,

发布

  docker stack deploy --compose-file=docker-compose-secrets.yaml minio_stack

[nginx.conf](nginx.conf':include :type=code')

标签:Compose,MinIO,部署,READM,Docker,docker,minio
From: https://www.cnblogs.com/nicaine/p/17058337.html

相关文章

  • tracer ftrace笔记(12)—— trace文档翻译与实验——README
    基于Linux-5.10.110一、翻译/sys/kernel/tracing#catREADMEtracingmini-HOWTO:#echo0>tracing_on//禁用trace的快速方法#echo1>tracing_on//重新启用tr......
  • readme-git
       https://blog.csdn.net/mChales_Liu/article/details/1043795261刚创建的idea项目和git联系忽略历史强制拉取gitpulloriginmaster--allow-unrelated-his......
  • Readme Driven Development
    原文链接名词解释RDD:ReadmeDrivenDevelopmentTDD:TestDrivenDevelopmentBDD:Behavior-DrivenDevelopmentXP:ExtremeProgrammingSCRUM:迭代式增量......
  • ThreadMBean
    packagecom.google.thread3;importjava.lang.management.ManagementFactory;importjava.lang.management.ThreadInfo;importjava.lang.management.ThreadMXBean;......
  • matlab使用readmidi以后统计
    这个算法速度很慢就是了,更改算法后发现break和continue和我像的不一样,还是先保持这个全部遍历的clearall;[nmatnstr]=readmidi('再回首.mid');Cchannel=8;%统计nstr里面......
  • README
    山海个人笔记note所爱隔山海山海亦可平你只管做剩下的交给时间更新记录2022.10.1914:10tf-idf实现sanic服务框架实践pet-prompt解读kpt-prompt解读2022.1......
  • .MD语法入门,教你写好readme文档
    .md即markdown文件的基本常用编写语法,是一种快速标记、快速排版语言,现在很多前段项目中的说明文件readme等都是用.md文件编写的,而且很多企业也在在鼓励使用这种编辑方式,特......
  • Gitea 1.18 功能前瞻(其二):文件树导航、基于 YAML 格式创建的工单模板、在多种语言的 RE
    Gitea1.18的发布日期临近了,这里收集并展示了一些新版本中的前端界面新特性。1.我们在代码评审页面的侧边栏引入了树形结构的文件导模块当你打开合并请求-文件变动......
  • vueSource_README
    1.准备1.[].slice.call(lis):将伪数组转换为真数组2.node.nodeType:得到节点类型3.Object.defineProperty(obj,propertyName,{}):给对象添加/修改属性(指定描述符......
  • vueTest_README
    1.Vue.js是什么?1).一位华裔前Google工程师(尤雨溪)开发的前端js库2).作用:动态构建用户界面3).特点: *遵循MVVM模式 *编码简洁,体积小,运行效率高,移动/PC......