其他分享
首页 > 其他分享> > helm K8s打包介绍

helm K8s打包介绍

作者:互联网

目录

Helm介绍

Helm 是 Kubernetes 的包管理器,诞生于2015年,2018年加入CNCF。

Helm安装

二进制版本安装

备注:获取下载链接之后,使用wget命令下载。

包管理器下载

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

备注:目前linux系统并不自带helm的源。

三大概念

chart:chart即helm包,包含了在k8s中运行应用程序或服务需要的所有资源定义。可以把它看成centos中的rpm。

repository:仓库,用来存放charts的地方。可以把它看成docker中的docker hub。

release:运行在k8s中的chart实例,一个chart包通常可以在同一集群安装多次。

Helm资源安装顺序

创建charts

基础命令

# 初始化charts包
helm create chart-name
# 修改charts包中配置
# 打包charts
helm package chart-name
# 安装chart
helm install chart-name chart-name-{version}.tgz

文件结构

这里是helm2.16.9初始化的文件结构,与其它版本可能会有些差异,不过大同小异。

chart-name
	charts/								# 包含chart依赖的其他chart
	Chart.yaml							# 包含了chart信息的YAML文件
	templates/							# 模板目录
		deployment.yaml					# deployment声明文件
		ingress.yaml					# ingress声明文件
		serviceaccount.yaml				# serviceaccount声明文件
		tests/							# 测试文件夹
			test-connection.yaml
		_helpers.tpl
		NOTES.txt						# 包含简要使用说明的纯文本文件
		service.yaml					# service 声明文件
	values.yaml							# chart 默认的配置值

Chart.yaml文件是chart包的必需文件,初始时包含如下信息:

apiVersion: chart API 版本 (必需)
appVersion: 包含的应用版本(可选)。不需要是语义化,建议使用引号
description: 一句话对这个项目的描述(可选)
name: chart名称 (必需)
version: 语义化2 版本(必需)

其余可添加信息:

kubeVersion: 兼容Kubernetes版本的语义化版本(可选)
type: chart类型 (可选)
keywords:
  - 关于项目的一组关键字(可选)
home: 项目home页面的URL (可选)
sources:
  - 项目源码的URL列表(可选)
dependencies: # chart 必要条件列表 (可选)
  - name: chart名称 (nginx)
    version: chart版本 ("1.2.3")
    repository: (可选)仓库URL ("https://example.com/charts") 或别名 ("@repo-name")
    condition: (可选) 解析为布尔值的yaml路径,用于启用/禁用chart (e.g. subchart1.enabled )
    tags: # (可选)
      - 用于一次启用/禁用 一组chart的tag
    import-values: # (可选)
      - ImportValue 保存源值到导入父键的映射。每项可以是字符串或者一对子/父列表项
    alias: (可选) chart中使用的别名。当你要多次添加相同的chart时会很有用
maintainers: # (可选)
  - name: 维护者名字 (每个维护者都需要)
    email: 维护者邮箱 (每个维护者可选)
    url: 维护者URL (每个维护者可选)
icon: 用做icon的SVG或PNG图片URL (可选)
deprecated: 不被推荐的chart (可选,布尔值)
annotations:
  example: 按名称输入的批注列表 (可选).

注意:除此之外,不要添加其它信息,从helm3.3.2之后,不容许有其它额外字段。如果一定有需要,需要在annotation中添加自定义的元数据。

Helm官方中文教程:https://helm.sh/zh/docs/

标签:name,chart,charts,yaml,helm,Helm,K8s,打包
来源: https://www.cnblogs.com/52why/p/16248887.html