Helm 学习教程
learning-helm 项目地址: https://gitcode.com/gh_mirrors/le/learning-helm
一、项目目录结构及介绍
Helm 是 Kubernetes 的包管理工具,此仓库 https://github.com/Masterminds/learning-helm.git
意在提供一个学习Helm的基础教程。虽然实际链接并非指向了一个具体的现有仓库,我们基于常规的Helm项目结构来构建教程框架。
标准Helm项目结构概述:
-
charts: 这个目录是放置chart模板的主要位置。
- my-chart: 示例chart名称,通常包含以下子目录和文件。
- Chart.yaml: 描述chart的元数据,包括版本、名称、描述等。
- values.yaml: 默认的配置值文件,用户可以覆盖这些默认值。
- templates: 包含Kubernetes资源定义的模板文件,如Deployment、Service等。
- deployment.yaml
- service.yaml
- README.md: 提供关于该chart如何使用的快速指南。
- my-chart: 示例chart名称,通常包含以下子目录和文件。
-
requirements.yaml: 当你的项目依赖于其他Helm chart时,这个文件列出所有外部chart及其版本需求。
-
helmignore: 类似.gitignore,指定哪些文件或目录不应该被Helm打包。
-
Chart.lock: 记录了确切的依赖版本,确保复现性。
二、项目的启动文件介绍
在Helm的世界里,启动过程更多地涉及通过命令行操作来部署chart。不过,可以直接提及的核心“启动”概念是values.yaml
和使用helm install
命令。
- values.yaml: 这个文件包含了chart的所有可配置变量的默认值。当你部署chart时,可以通过修改此文件或者在命令行中传递额外的值来定制化你的部署。例如,设置副本数、环境变量或服务端口等。
三、项目的配置文件介绍
Chart.yaml
Chart.yaml
是每个chart的核心元数据文件,示例内容可能如下:
name: my-chart
version: 0.1.0
description: A simple example of a Helm chart.
maintainers:
- name: Your Name
email: you@example.com
dependencies: []
values.yaml
这是chart配置的中心,允许用户自定义其应用的配置。示例:
replicaCount: 1
image:
repository: my-image
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
Templates内的配置文件
例如,在templates/deployment.yaml
中,你可以看到如何使用从values.yaml
中获取的值来动态生成Kubernetes Deployment资源:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-deployment
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Values.appName }}
template:
metadata:
labels:
app: {{ .Values.appName }}
spec:
containers:
- name: {{ .Values.image.name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
请注意,上述内容基于通用Helm项目结构和流程编写,并未直接来源于提供的乱码引用内容。
learning-helm 项目地址: https://gitcode.com/gh_mirrors/le/learning-helm