PaaS中的存储:Minio和Deis
不管您是否注意到它,作为最终用户,存储都是我们今天使用的几乎所有软件的重要组成部分。但是,作为开发人员,重要的是能够以一种简单而又安全又快速的方式检索东西。正如我前面提到的,对象存储是一个伟大的方式来实现这一目标。我们还以WordPress为例,介绍了如何创建可靠的数据存储。在本文中,我们将看到基于Kubernetes的开源PaaS Deis如何使用Minio满足几乎所有存储需求。但首先,介绍。
戴斯
简而言之,Deis是一个平台,可让开发人员轻松部署和管理其应用程序。通过轻松,我的意思是开发者可以用一个简单的部署他们的代码混帐推 - DEIS处理所有的建筑,包装和部署过程。我们将在一段时间内看到它是如何做到的。借助Deis,开发人员还可以管理应用程序配置,创建或回滚发行版,获取大量日志记录等等。可通过命令行或REST API使用Deis。在Deis网站上了解更多信息。
目前,有两种Deis口味。首先是基于Kubernetes的Deis Workflow(Deis v2.0)。Deis Workflow目前处于测试阶段,因此请注意,随着时间的推移,某些事情会发生变化。其次是基于CoreOS的Deis v1.13.0。这是一个长期的支持版本,此产品线没有计划进一步的功能。Deis Workflow应该是Deis的继任者,因此,我们将讨论仅限于Deis Workflow。
小野
Minio是用Golang编写的简约对象存储服务器。Minio服务器,客户端和SDK与Amazon S3云存储服务的API兼容。如果您想知道所有这些元素是什么— Minio服务器可让您以安全,可靠和易于检索的方式存储非结构化数据文件。Minio客户端是ls,cp,mkdir,diff等常见文件处理命令的S3兼容实现。Minio SDK允许您将Minio API嵌入自己的应用程序中。
如有任何关于Minio的疑问,请访问我们的Gitter频道。我们在那里很活跃,很乐意为您提供帮助!
迪诺的Minio
为了更好地理解,可以将Deis看作是一组独立的组件,可以使用Kubernetes系统和对象存储服务器进行通信。Deis中提供了三种部署方法
Buildpack部署:Deis支持基于Heroku buildpacks部署应用程序。使用这种方法,您可以部署已经在Heroku上运行的应用程序或遵循Heroku最佳实践的应用程序。
Dockerfile部署:Deis支持通过Dockerfiles进行应用程序部署。因此,您可以简单地推送代码,然后Dockerfile创建要部署的Docker映像。
Docker映像部署:您还可以通过现有的Docker映像部署应用程序。为此,您必须在本地创建映像并将其推送到公共Docker映像注册表(例如DockerHub)。然后使用Deis pull从注册表直接部署应用程序。
三种部署方法以及Postgres,注册表和构建器组件之类的Deis Workflow内部组件都在后台广泛使用Minio:
Buildpack部署使用Minio来存储代码和代码。
Dockerfile部署使用Minio存储Dockerfile和相关的工件。
Docker Image部署使用Minio作为Workflow运行的内部Docker注册表的后备存储。
内部工作流数据库存储用户登录信息,SSH密钥等。它将所有数据备份到Minio。
Minio和Deis在行动
要在使用Deis Workflow时看到Minio的实际效果,您需要安装Deis Workflow。当Deis Workflow的所有Pod运行时,您可以在其中看到Minio pod。该Pod负责备份关键用户和应用程序数据。您可以按照以下步骤安装Deis Workflow:
安装Helm Classic和Deis Workflow CLI工具:Deis CLI可让您与Deis Workflow进行交互。理想情况下,应将客户端安装在$ PATH中,以避免出现任何-bash:命令未找到错误。因此,将目录更改为/ usr / local / bin,然后运行以下命令安装Deis客户端:
$ curl -sSL http://deis.io/deis-cli/install-v2.sh | bash
通过以下方法检查它是否工作正常:
$ deis version
接下来,您需要安装Helm Classic。Helm是Kubernetes的软件包经理。我们将使用它来管理Kubernetes集群中的软件。通过以下方式安装:
$ curl -sSL https://get.helm.sh | bash
再次,检查安装是否成功。
$ helmc version
启动Kubernetes集群:下一步是启动Kubernetes集群。我已将AWS EC2用作后端云。您可以选择使用Google Container Engine,甚至使用自己的笔记本电脑。由于我们将使用命令行界面与AWS进行交互,因此您需要安装AWS和Kubernetes CLI工具。
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" $ unzip awscli-bundle.zip $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws $ curl -O https://storage.googleapis.com/kubernetes-release/release/v1.2.3/bin/darwin/amd64/kubectl $ chmod +x kubectl
完成后,输入
$ aws configure
并添加密钥ID,秘密访问密钥,默认区域名称和输出格式。您现在可以通过CLI与您的AWS账户进行交互。现在在合适的位置创建一个文件夹,该文件夹将用作您的Kubernetes安装目录。然后下载并解压缩Kubernetes
$ curl -sSL https://storage.googleapis.com/kubernetes-release/release/v1.2.4/kubernetes.tar.gz -O $ tar -xvzf kubernetes.tar.gz$ cd kubernetes
现在配置Kubernetes环境
$ export KUBE_ENABLE_INSECURE_REGISTRY=true $ export KUBE_AWS_ZONE=us-west-1c $ export KUBERNETES_PROVIDER=aws $ export MASTER_SIZE=t2.medium $ export NODE_SIZE=t2.large $ export NUM_NODES=2 $ export MINION_ROOT_DISK_SIZE=100
现在您已经准备好,使用以下命令启动集群
$ ./cluster/kube-up.sh
安装Deis Workflow:要安装Deis Workflow,我们需要使用Helm软件包管理器。首先检查它是否可以连接到您的Kubernetes集群。
$ helmc target
您应该获得像这样的详细列表

这证实了Helm可以与您的Kubernetes集群通信(我们在上一步中启动)。下一步是将Deis图表回购添加到Helm。
$ helmc repo add deis https://github.com/deis/charts
然后安装Deis Workflow
$ helmc fetch deis/workflow-rc1 $ helmc generate -x manifests workflow-rc1 $ helmc install workflow-rc1
这将完成安装过程。但是您必须再等一些,才能准备好吊舱。您可以使用以下命令检查进度
$ kubectl --namespace = deis获取容器
一旦所有窗格显示就绪状态,就可以确保Deis Workflow已启动并正在运行。状态如下所示。

您可以看到deis-minio窗格正在运行,确认Minio是Deis使用的默认对象存储。正如我在开始时所说的,Deis Workflow可以看作是几个Pod的集合,每个Pod都进行预定义的活动。在这里,您可以看到正在运行的各种吊舱。
如果您对使用Deis Workflow部署应用程序感兴趣,请单击此链接。
当您使用它时,请帮助我们了解您的用例以及如何更好地帮助您!填写我们最好的Minio部署表格(只需不到一分钟的时间),并有机会在Minio网站上亮相,并向Minio社区展示您的Minio私有云设计。