使用Helm charts在Kubernetes 1.4 MongoDB上部署

有人说:“如果你觉得国庆7天短的话,那么接下来上班的7天你就知道有多长了【二哈】”,今天周一,照列来一波干货来袭,喜欢来收。

2016年9月26日发布Kubernetes 1.4版本,其中包括几项新的功能。一个有趣的是使用扩展的状态的应用支持 Helm Charts。在这篇文章中,我们将使用Kubernetes 1.4的这个新功能部署MongoDB实例来Kubernetes。

他们的博客公告:
策划和预测试Helm Charts普通状态的应用,如MariaDB的,MySQL和詹金斯将可使用头盔包管理器的版本2单命令启动。

请记住,即使Helm只是官方Kubernetes的一部分,但是不要它的话法,将无法正常工作。如果你发现有任何问题,可以在GitHub上创建一个问题来需求解决。

什么是 Helm?

Helm,是Kubernetes的软件包管理器。Charts表示可以安装并组成的预配置Kubernetes资源包。

配置 Helm
Helm采用客户端机服务器模式。服务器部分被称为tiller,同时包括你运行Kubernetes集群。客户端部分被称为helm,安装在本地的开发系统上。

安装客户端Helm
首先我们安装需要的客户端,以便我们能在Kubernetes群集上安装helm。在helm的每个版本中大多数OS是二进制文件。去他们的GitHub库kubernetes 或者Helm,并找到最新版本。在这篇文章撰写时最新的版本是V2.0.0,alpha.4,所以我们将使用该版本。

注意:安装helm的同时请确保你已经把kubectl安装在相同环境下。这将使我们能够从开发环境的群集上安装helm。

运行下面的命令下载并解压二进制文件:

使用Helm charts在Kubernetes 1.4 MongoDB上部署
将二进制放到有用的地方:
使用Helm charts在Kubernetes 1.4 MongoDB上部署
验证是否安装正确:
使用Helm charts在Kubernetes 1.4 MongoDB上部署

安装 Helm server
现在,我们已经安装了客户端helm,我们可以用它在我们的Kubernetes群集上安装helm。要安装简单helm运行以下命令:

使用Helm charts在Kubernetes 1.4 MongoDB上部署
该命令完成后,您可以通过列出所有kube-system验证它安装helm:
使用Helm charts在Kubernetes 1.4 MongoDB上部署
现在,我们可以验证客户端和服务器部分被重新运行。我们应该看到这两个部分中列出的版本:(实际上,它指出在这个从GitHub的helm note,但在实践中使用命令,我只看到它显示了客户端版)
使用Helm charts在Kubernetes 1.4 MongoDB上部署

准备 GCE
为了让我们的Chart正常运行,我们需要得到一些底层架构。该图表将创建3 个MongoDB的实例,每个都需要有一个持久Kubernetes Persistent Volume。由于我们这篇文章使用GCE的云服务提供商,我们需要使用gcloud SDK第一设置3个 GCE永久磁盘。确保你在同一区域作为你kubernetes集群创建的磁盘。
使用Helm charts在Kubernetes 1.4 MongoDB上部署
不要担心警告,新的磁盘格式化,MongoDB会提醒我们。现在,我们有GCE PD的创建,我们需要创建相应的Kubernetes Persistent Volumes。创建一个名为GCE-pv.yaml的文件,内容如下:
使用Helm charts在Kubernetes 1.4 MongoDB上部署
保存文件,然后使用kubectl来创建它们
使用Helm charts在Kubernetes 1.4 MongoDB上部署
现在我们可以来安装Chart!

Charts
Charts是描述软件包的Kubernetes方式。chart基本上与描述了如何部署应用程序文件的目录。这与Puppet Modules非常相似,因为它们是描述应用程序代码的目录。
文件结构
顶层目录的名称是应用程序的名称。structore概述如下:
使用Helm charts在Kubernetes 1.4 MongoDB上部署
该Chart.yaml和values.yaml文件是唯一需要的文件,包括有关chart信息。

Chart.yaml
我不会把Chart.yaml文件的详细信息弄的那么繁杂。这种东西应该是帮助我们理解抽象的部署应用程序,就像MongoDB的那么容易,因为用apt或yum的安装。如果你真的想知道更多有关如何将文件的组织知识,你可以自行阅读相关知识。

MongoDB Chart

Incubator 状态

Chart被认为是“incubator status‘,这意味着它不符合下列条件之一是:

  • 提供了数据持久性的方法(如适用)
  • 支持应用升级
  • 允许应用程序配置的定制
  • 提供一个安全的默认配置

不要利用Kubernetes alpha功能

MongoDB chart使用大量的Kubernetesalpha功能这使得它处于孵化器的状态。

获取Chart

第一步,通过用git clone到本地存储库以获得图表。
使用Helm charts在Kubernetes 1.4 MongoDB上部署
安装 Chart
现在,可以用一个命令来安装我们的chart。
使用Helm charts在Kubernetes 1.4 MongoDB上部署
这将在默认的命名空间内为MongoDB创建Kubernetes服务和petset。从helm来看,先安装命令是PetSet发布的名称。这很重要,因为这是我们以后的一切引用。几分钟后,检查我们的pods的状态。

使用Helm charts在Kubernetes 1.4 MongoDB上部署
现在,我们在Kubernetes集群中有运行的的MongoDB集群。最后,我们将学习如何访问它,并验证一切工作。

验证 MongoDB 的运行
现在,我们的MongoDB在运行中,我们可以在上面运行一些命令来检查MongoDB是否在真正运行。
使用Helm charts在Kubernetes 1.4 MongoDB上部署
现在运行以下命令来找出哪一个是主要的MongoDB pods。
使用Helm charts在Kubernetes 1.4 MongoDB上部署
使用Helm charts在Kubernetes 1.4 MongoDB上部署
你可以从上面举的例子中看到,第二个pod是主MongoDB实例。

卸载
如果你想MongoDB停止运行,你可以使用“uninstall”命令。

使用Helm charts在Kubernetes 1.4 MongoDB上部署
结论
现在你有一个MongoDB的安装配置好并存储数据。我们用一个简单方法安装了它Kubernetes称为Helm。由于这仍然是相当新的技术,所以这篇文章只有几个chart可用,但我相信在不久的将来会有很多。

原文链接:http://billcloud.me/deploying-mongodb-on-kubernetes-1.4-using-helm-charts/
了解更多干货知识,可关注微信公众号“godocker”或“精灵云”