? Helm是一个Kubernetes的包管理工具,就像Linux的包管理器。如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上面
? 一个命令行客户端工具,主要用于Kubernetes的应用chart的创建
、打包
、发布
和管理
? 应用描述
,一系列用于描述k8s资源相关(yaml)文件的集合
? 基于Chart的部署实体
,一个chart被Helm运行后将会生成对应的一个release;将在k8s中创建出真实运行的资源对象.应用级别的版本管理
helm repo add 仓库名称 仓库地址
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add stable https://charts.helm.sh/stable
helm search repo xxx名称(weave)
# 安装
helm install 安装之后的名称 搜索之后应用名称
# 查看安装之后的状态
helm list
helm status 安装之后的名称
kubectl edit svc ui-weave-scope
### 创建chart
helm create chartname
创建之后会有以下主要文件和目录
Chart.yaml
:当前chart属性配置文件templates
:编写yaml文件放在这个目录values.yaml
:yaml文件可以使用全局变量helm insatll web1 mychart
helml upgrade web1 mychart
实现yaml高效复用,通过传递参数,动态渲染模板,yaml内容动态传入参数生成
在chart有values.yaml
文件,定义yaml文件全局变量
{{.Values.变量名称}}
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web1
name: {{.Release.Name}}-deploy
spec:
replicas: 1
selector:
matchLabels:
app: {{.Values.label}}
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: {{.Values.label}}
spec:
containers:
- image: {{.Values.image.repository}}
name : nginx
resources: {}
status: {}
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: {{.Values.label}}
name: {{.Release.Name}}-svc
spec:
ports:
- port: {{.Values.service.port}}
protocol: TCP
targetPort: {{.Values.service.port}}
selector:
app: {{.Values.label}}
status:
loadBalancer: {}
原文:https://www.cnblogs.com/wuzhixuan/p/15228375.html