1. 查看仓库:

$ helm repo list
NAME URL
stable https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/
local http://127.0.0.1:8879
incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/

启动本地仓库:

$ helm serve&
[1] 15148
Regenerating index. This may take a moment.
Now serving you on 127.0.0.1:8879

2. 创建helm应用

helm create test-chart

结构如下:

├─test-chart
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ └── service.yaml
└── values.yaml

简单更改 values.yaml 配置如下

replicaCount: 

image:
repository: daemonza/test
tag: latest
pullPolicy: IfNotPresent service:
name: test
type: ClusterIP
internalport:
externalPort: resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi

更改Chart.yaml 配置如下

apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: test-chart
version: 0.1.

3. 将test-chart打包

$ helm package test-chart
Successfully packaged chart and saved it to: D:\zhuojian-projects\rubik-T\health-doc\详细设计\helm\test-chart-0.1..tgz

打包的同时,会拷贝一份生成的 tgz 文件到本地仓库。

4. 如法炮制2个 chart 包:test-chart2, test-chart3,且进行打包。

$ helm search test
NAME CHART VERSION APP VERSION DESCRIPTION
local/test-chart 0.2. 1.0 A Helm chart for Kubernetes
local/test-chart2 0.1. 1.0 A Helm chart for Kubernetes
local/test-chart3 0.2. 4.0 A Helm chart for Kubernetes

5. 假设test-chart依赖:0.1.0版本的test-chart2, 0.2.0版本的test-chart3,针对包依赖关系的描述,可以使用文件 requirements.yaml,内容如下:

dependencies:
- name: test-chart2
version: "0.1.0"
repository: http://127.0.0.1:8879
- name: test-chart3
version: "0.2.0"
repository: http://127.0.0.1:8879

chart 目录如下

├─test-chart
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ ├── requirements.yaml
│ └── service.yaml
└── values.yaml

然后执行以下命令,将对应的依赖包下载到test-chart的charts目录下:

$ helm dep update test-chart
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
...Successfully got an update from the "incubator" chart repository
Update Complete.
Saving charts
Downloading test-chart2 from repo http://127.0.0.1:8879
Downloading test-chart3 from repo http://127.0.0.1:8879
Deleting outdated charts

执行完之后,再次查看test-chart目录结构,会发现依赖包已经下载下来了:

├─test-chart
├── charts
│ ├── test-chart2-0.1..tgz
│ ├── test-chart3-0.2..tgz
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ ├── requirements.yaml
│ └── service.yaml
└── values.yaml

将 test-chart2-0.1.0.tgz 解压缩,会发现也是一个完整的 test-chart2 的实例。

然后可以使用 helm 将 test-chart 安装部署,至此,就完成了 helm 对具有复杂依赖关系的 kubernetes 应用的管理。

使用helm管理复杂kubernetes应用的更多相关文章

  1. Helm 安装部署Kubernetes的dashboard

    Kubernetes Dashboard 是 k8s集群的一个 WEB UI管理工具,代码托管在 github 上,地址:https://github.com/kubernetes/dashboard ...

  2. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  3. 如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理

    这篇文章介绍一下,如何使用VS2017给asp.net core添加容器支持,并发布镜像到私有docker hub,然后用chart管理容器镜像的操作流程. 话不多说,just do it. 新建项目 ...

  4. Docker集群管理工具 - Kubernetes 部署记录 (运维小结)

    一.  Kubernetes 介绍 Kubernetes是一个全新的基于容器技术的分布式架构领先方案, 它是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernete ...

  5. docker集群管理之kubernetes

    一.简介 kubernetes又叫做k8s,是Google开发的一款开源的docker集群管理工具,在这里对它的“发家史”,我不做过多的阐述,有时间大家可以自己去百度一下: 下面我要讲的就是容易混淆的 ...

  6. kubernetes:用kubeadm管理token(kubernetes 1.18.3)

    一,token的用途: 1,token是node节点用来连接master节点的令牌字串, 它和ca证书的hash值是把一台node节点加入到kubernetes集群时要使用的凭证 2, 通过kubea ...

  7. K8S各知识点整理

    一.k8s组成部分 Master 1.   kube-apiserver 封装了核心对象的增删改查操作,以REST API接口方式提供给外部和内部组件调用.它维护的REST对象将持久化到Etcd中 2 ...

  8. Kubernetes学习之路(二十五)之Helm程序包管理器

    目录 1.Helm的概念和架构 2.部署Helm (1)下载helm (2)部署Tiller 3.helm的使用 4.chart 目录结构 5.chart模板 6.定制安装MySQL chart (1 ...

  9. Helm - Kubernetes包管理专家

    What is Helm? - The package manager for kubernetes, Helm is the best way to find, share, and use sof ...

随机推荐

  1. Linux系统安装snmp服务

    Linux安装snmp详解 Snmp一种网络之间的传输协议,通过snmp可以采集很多指标比如cpu.内存及磁盘的信息,现在越来越多的网络设备基本上都支持snmp,本文介绍了snmp的安装过程. 二.安 ...

  2. 处理 unassigned shard

    #查看所有分片 GET _cat/shards curl  10.1.2.2:9200/_cat/indices/iis_log* #查看索引的分片状态 #查看第一个unassigned shard的 ...

  3. DjangoDRF总结

    思维导图xmind文件:https://files-cdn.cnblogs.com/files/benjieming/DRF%E6%A8%A1%E5%9D%97.zip

  4. linux命令之——grep详解

    grep命令用于查找文件里符合条件的字符串:也可以用于查找内容包含指定的范本样式的文件.它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输出含有该字符串的文 ...

  5. iOS7的十个更“佳”:简洁直观更受青睐

    转自:http://www.25pp.com/news/news_27792.html iOS7自发布以来一直是褒贬不一,虽然苹果还只是发布了第二个测试版,但普通用户早已经在纠结到底该不该升级iOS7 ...

  6. jQuery实现的全选、反选和获取当前所有选中的值功能

    链接: jQuery实现的全选.反选和获取当前所有选中的值功能 <ul id="list"> <li><label><input type ...

  7. Vue+element 修改样式的scoped穿透方法

    我们在修改element的一些样式的时候,在加了scoped的时候会不起作用,下面是解决方案: 解决方法:起一个类名将页面包裹起来,后面加 /deep/ <style scoped> 1 ...

  8. CDA数据分析【数据收集】

    一.机器收集数据 机器收集数据会从不同角度对数据进行抓取和采集,与之前手动收集数据不同,机器收集数据不再是用小样本.特定样本来采集和分析整体数据,而是采用大样本或整体数据进行分析,这打破了原来的数据分 ...

  9. ng-zorror-antd------Input输入框

    使用 ng-zorror-antd 来美化界面,带着问题挖掘技术: 一:基本使用 效果图: 问题一:如何人为控制输入框长度,如上效果图,让一个输入框长,一个输入框短?(注意:该输入框是最简单的输入框, ...

  10. Nginx服务加到systemctl

    当我们编译安装nginx服务后,可以用手执行启动脚本也可以作为服务的形式运行. 添加启动文件:vim /usr/lib/systemd/system/nginx.service [Unit] Desc ...