关键词:
chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。
单个的 chart 可以非常简单,只用于部署一个服务,比如 Memcached;chart 也可以很复杂,部署整个应用,比如包含 HTTP Servers、 Database、消息中间件、cache 等。
chart 将这些文件放置在预定义的目录结构中,通常整个 chart 被打成 tar 包,而且标注上版本信息,便于 Helm 部署。
下面我们将详细讨论 chart 的目录结构以及包含的各类文件。
chart 目录结构
以前面 MySQL chart 为例。一旦安装了某个 chart,我们就可以在 ~/.helm/cache/archive 中找到 chart 的 tar 包。
解压后,MySQL chart 目录结构如下:
目录名就是 chart 的名字(不带版本信息),这里是 mysql
,包含如下内容:
Chart.yaml
YAML 文件,描述 chart 的概要信息。
name
和 version
是必填项,其他都是可选。
README.md
Markdown 格式的 README 文件,相当于 chart 的使用文档,此文件为可选。
LICENSE
文本文件,描述 chart 的许可信息,此文件为可选。
requirements.yaml
chart 可能依赖其他的 chart,这些依赖关系可通过 requirements.yaml 指定,比如:
在安装过程中,依赖的 chart 也会被一起安装。
values.yaml
chart 支持在安装的时根据参数进行定制化配置,而 values.yaml 则提供了这些配置参数的默认值。
templates 目录
各类 Kubernetes 资源的配置模板都放置在这里。Helm 会将 values.yaml 中的参数值注入到模板中生成标准的 YAML 配置文件。
模板是 chart 最重要的部分,也是 Helm 最强大的地方。模板增加了应用部署的灵活性,能够适用不同的环境,我们后面会详细讨论。
templates/NOTES.txt
chart 的简易使用文档,chart 安装成功后会显示此文档内容。
与模板一样,可以在 NOTE.txt 中插入配置参数,Helm 会动态注入参数值。
下一节我们详细讨论 chart 模板的用法。
书籍:
1.《每天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
3.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
开发自己的chart-每天5分钟玩转docker容器技术(167)
...eatemychart 的命令创建chart mychart:Helm会帮我们创建目录 mychart,并生成了各类chart文件。这样我们就可以在此基础上开发自己的chart了。新建的chart默认包 查看详情
开发自己的chart-每天5分钟玩转docker容器技术(167)
...eatemychart 的命令创建chart mychart:Helm会帮我们创建目录 mychart,并生成了各类chart文件。这样我们就可以在此基础上开发自己的chart了。新建的chart默认包 查看详情
每天5分钟玩转容器技术整理目录
原 写在最前面-每天5分钟玩转容器技术(1)容器生态系统-每天5分钟玩转容器技术(2) 容器生态系统(续)-每天5分钟玩转容器技术(3)运行第一个容器-每天5分钟玩转容器技术(4)【视频】运行第一个容器-每天5分钟玩... 查看详情
helm架构-每天5分钟玩转docker容器技术(161)
在实践之前,我们先来看看Helm的架构。Helm有两个重要的概念:chart和release。chart是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。chart是应用部署的自包含逻辑单元。可以将chart... 查看详情
helm架构-每天5分钟玩转docker容器技术(161)
在实践之前,我们先来看看Helm的架构。Helm有两个重要的概念:chart和release。chart是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等。chart是应用部署的自包含逻辑单元。可以将chart... 查看详情
weave网络结构分析-每天5分钟玩转docker容器技术(64)
...我们安装并创建了Weave网络,本节将部署容器并分析网络结构。在host1中运行容器bbox1:eval$(weaveenv)dockerrun--namebbox1-itdbusybox 首先执行 eval$(weaveenv) 很重要,其作用是将后续的docker命令发给weaveproxy处理。如果要恢复之前... 查看详情
weave网络结构分析-每天5分钟玩转docker容器技术(64)
...我们安装并创建了Weave网络,本节将部署容器并分析网络结构。在host1中运行容器bbox1:eval$(weaveenv)dockerrun--namebbox1-itdbusybox 首先执行 eval$(weaveenv) 很重要,其作用是将后续的docker命令发给weaveproxy处理。如果要恢复之前... 查看详情
最小的镜像-每天5分钟玩转容器技术
...排如下:首先通过研究几个典型的镜像,分析镜像的内部结构。然后学习如何构建自己的镜像。最后介绍怎样管理和分发镜像。镜像的内部结构为什么我们要讨论镜像的内部结构?如果只是使用镜像,当然不需要了解,直接通过... 查看详情
最小的镜像-每天5分钟玩转容器技术
...排如下:首先通过研究几个典型的镜像,分析镜像的内部结构。然后学习如何构建自己的镜像。最后介绍怎样管理和分发镜像。镜像的内部结构为什么我们要讨论镜像的内部结构?如果只是使用镜像,当然不需要了解,直接通过... 查看详情
最小的镜像-每天5分钟玩转容器技术
...排如下:首先通过研究几个典型的镜像,分析镜像的内部结构。然后学习如何构建自己的镜像。最后介绍怎样管理和分发镜像。镜像的内部结构为什么我们要讨论镜像的内部结构?如果只是使用镜像,当然不需要了解,直接通过... 查看详情
docker的两类存储资源-每天5分钟玩转docker容器技术(38)
...。storagedriver在前面镜像章节我们学习到Docker镜像的分层结构,简单回顾一下。容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放在这些层中。这样的分层结构最大的特性是Copy-on 查看详情
calico的网络结构是什么?-每天5分钟玩转docker容器技术(68)
...我们部署了Calico网络,今天将运行容器并分析Calico的网络结构。在host1中运行容器bbox1并连接到cal_net1:dockercontainerrun--netcal_net1--namebbox1-tidbusybox查看bbox1的网络配置。cali0 是calicointerface,分配的IP为 192.168.119.2。cali0对应host... 查看详情
calico的网络结构是什么?-每天5分钟玩转docker容器技术(68)
上一节我们部署了Calico网络,今天将运行容器并分析Calico的网络结构。在host1中运行容器bbox1并连接到cal_net1:dockercontainerrun--netcal_net1--namebbox1-tidbusybox查看bbox1的网络配置。650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/u 查看详情
datavolume之bindmount-每天5分钟玩转docker容器技术(39)
...开始讨论DataVolume。DataVolume本质上是DockerHost文件系统中的目录或文件,能够直接被mount到容器的文件系统中。DataVolume有以下特点:DataVolume是目录或文件,而非没有格式化的磁盘(块设备)。容器可以读写volume中的数据。vo 查看详情
datavolume之bindmount-每天5分钟玩转docker容器技术(39)
...开始讨论DataVolume。DataVolume本质上是DockerHost文件系统中的目录或文件,能够直接被mount到容器的文件系统中。DataVolume有以下特点:DataVolume是目录或文件,而非没有格式化的磁盘(块设备)。容器可以读写volume中的数据。vo 查看详情
docker镜像小结-每天5分钟玩转docker容器技术(21)
...Docker镜像做个小结。这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用DockerHub和本地registry。下面是镜像的常用操作子命令:images 显示镜像列表history 显示镜像构建历史commit ... 查看详情
docker镜像小结-每天5分钟玩转docker容器技术(21)
...Docker镜像做个小结。这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用DockerHub和本地registry。下面是镜像的常用操作子命令:images 显示镜像列表history 显示镜像构建历史commit ... 查看详情
如何共享数据?-每天5分钟玩转docker容器技术(41)
...式有所区别。对于bindmount是非常明确的:直接将要共享的目录mount到容器。具体请参考前面httpd的例子,不再赘述。dockermanagedvolume就要麻烦点。由 查看详情