创建掌舵私人仓库

时间:2019-03-04 20:03:04

标签: docker kubernetes cloud kubernetes-helm

当前,我们需要为头盔图表存储库选择一个解决方案:

  1. 我们需要一个私有的存储库(在列表中受用户名/密码保护)
  2. 轻松为我们的客户提供多租户。我们将能够向客户发送唯一的凭据。
  3. 支持多个版本和分支(开发,登台,生产)。
  4. 很高兴获得每个用户的基本统计信息,版本,反之亦然。

我们尝试保存到GitHub,但我们无法为每个客户提供凭据。 目前,我们正在测试chartmuseum

哪种产品可以为我们的问题提供最大程度的完整且易于维护的解决方案?

1 个答案:

答案 0 :(得分:-1)

Drekar中的头盔图表用法

  • 手提篮头盔
  • 方法1-手动管理/ charts下的子图表-已解压缩
  • 方法2-手动管理/ charts下的子图表-已归档
  • 方法3-使用requirements.yaml文件管理子图表
  • Values.yaml特殊效果
  • 覆盖父图表中的子图表值

Helm是Kubernetes的软件包管理器,类似于apt或yum或pip等。在继续之前,需要了解一些关于Helm的概念。 三大概念

图表是Helm软件包。它包含在Kubernetes集群中运行应用程序,工具或服务所需的所有资源定义。可以将其视为类似于Homebrew公式,Apt dpkg或Yum RPM文件的Kubernetes。

存储库是可以收集和共享图表的地方。就像Perl的CPAN归档文件或Fedora软件包数据库一样,但适用于Kubernetes软件包。

Release是在Kubernetes集群中运行的图表的实例。一个图表通常可以多次安装到同一群集中。并且每次安装时,都会创建一个新版本。考虑一个MySQL图表。如果要在群集中运行两个数据库,则可以两次安装该图表。每个人都有其自己的发行版,而后者又具有自己的发行版名称。

考虑到这些概念,我们现在可以像这样解释头盔:

Helm将图表安装到Kubernetes中,为每次安装创建一个新版本。要查找新图表,可以搜索Helm图表存储库。 手提篮头盔

Helm是一个简化安装和管理Kubernetes应用程序的工具。就像Kubernetes的apt / yum / homebrew一样。

Helm has two parts: a client (helm) and a server (tiller)
Tiller runs inside of your Kubernetes cluster, and manages releases (installations) of your charts.
Helm runs on your laptop, CI/CD, or wherever you want it to run.
Charts are Helm packages that contain at least two things:
    A description of the package (Chart.yaml)
    One or more templates, which contain Kubernetes manifest files
Charts can be stored on disk, or fetched from remote chart repositories (like Debian or RedHat packages)

方法1-手动管理/ charts下的子图表-已解压缩

所有子图都可以在Charts目录下手动管理。这些是实际未打包的头盔图表。

方法2-手动管理/ charts下的子图表-已归档

所有子图都可以在Charts目录下手动管理。这些只是图表的软件包版本。您可以使用以下命令打包图表:

头盔包

方法3-使用requirements.yaml文件管理子图表

使用helm命令和需求文件管理子图。

第三种方法是使用类似于docker注册表的Chart仓库服务器,称为Chart musuem。 https://chartmuseum.com/

的更多信息

您将子图表依赖项添加到主头盔仓库中的requirements.yaml中

依赖项:
-名称:kube101-redis-chart
  版本:1.0.0
  信息库:http://cm.xxyyzz.com/
-名称:elasticsearch
  版本:6.5.4-alpha3
  信息库:https://helm.elastic.co
-名称:memcached
  版本:2.5.0
  信息库:https://kubernetes-charts.storage.googleapis.com
-名称:rabbitmq
  版本:4.1.0
  资料库:https://kubernetes-charts.storage.googleapis.com

现在添加新的存储库并配置存储库推入和拉出。然后使用helm获取依赖项。

helm init --client-only https://cm.xxyyzz.com
头盔回购加cm
头盔插件安装https://github.com/chartmuseum/helm-push
头盔依赖更新

这会提取如下图表/子目录下的所有相关图表

覆盖父图表中的子图表值

父图表

覆盖Redis服务的子图表值

kube101-redis-chart:
  redis:
    规模:
      粉丝:3

子图表

redis:
  储存空间:1
  规模:
    组长:1
    追随者:2

资源:

https://github.com/helm/helm/blob/master/docs/using_helm.md#three-big-concepts
https://github.com/helm/helm/blob/master/docs/charts.md#chart-dependencies
https://github.com/chartmuseum/helm-push
https://github.qualcomm.com/Drekar-tools/public-charts/tree/master/charts/kube101-helm