PaaS中的存储:Minio和Deis

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客户端是lscpmkdirdiff等常见文件处理命令的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

您应该获得像这样的详细列表


1_zQ9cgN4ajFqYF1Az_rbBZQ.png


这证实了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已启动并正在运行。状态如下所示。


1_SvqKrkuqUiMsi0s9Dj5AoQ.png


您可以看到deis-minio窗格正在运行,确认Minio是Deis使用的默认对象存储。正如我在开始时所说的,Deis Workflow可以看作是几个Pod的集合,每个Pod都进行预定义的活动。在这里,您可以看到正在运行的各种吊舱。

如果您对使用Deis Workflow部署应用程序感兴趣,请单击此链接

当您使用它时,请帮助我们了解您的用例以及如何更好地帮助您!填写我们最好的Minio部署表格(只需不到一分钟的时间),并有机会在Minio网站上亮相,并向Minio社区展示您的Minio私有云设计。


上一篇 下一篇