Helm 安装/使用
创建 helm chart 模板文件
[gitlab-runner@Gitlab-Runner ~]$ helm create demo
[gitlab-runner@Gitlab-Runner ~]$ ll demo/
charts
Chart.yaml
templates
values.yaml ## 此文件用来设置默认值
rm -rf demo/templates/*
自定义 values.yaml
[gitlab-runner@Gitlab-Runner ~]$ cat > demo/values.yaml << ERIC
replicaCount: 1
deployment:
serverIp: ''
serverPort: ''
image:
repository: ''
pullPolicy: Always
tag: ''
annotations:
id: ''
ERIC
创建部署k8s的模板文件
[gitlab-runner@Gitlab-Runner ~]$ cat > demo/templates/deployment.yaml << ERIC
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}
labels:
app: {{ .Release.Name }}
version: v1
spec:
replicas: {{ .Values.replicaCount }}
minReadySeconds: 5
selector:
matchLabels:
app: {{ .Release.Name }}
version: v1
template:
metadata:
labels:
app: {{ .Release.Name }}
version: v1
annotations:
id: "{{ .Values.annotations.id }}"
spec:
terminationGracePeriodSeconds: 60
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: 8080
protocol: TCP
resources:
limits:
cpu: '2'
memory: 2Gi
requests:
cpu: '2'
memory: 2Gi
env:
- name: SERVER_IP
value: '{{ .Values.deployment.serverIp }}'
- name: SERVER_PORT
value: '{{ .Values.deployment.serverPort }}'
ERIC
生成 chart包
[gitlab-runner@Gitlab-Runner ~]$ helm package demo/ --version 0.0.1
Successfully packaged chart and saved it to: /home/gitlab-runner/test/demo-0.0.1.tgz
测试
helm template mssp-web-temp ./demo-0.0.1.tgz --output-dir . \
--namespace mssp \
--set image.repository=nginx \
--set image.tag=1.19.0 \
--set deployment.serverIp=172.1.1.1 \
--set deployment.serverPort=8088
参数对照
helm template 这里是 .Release.Name ./demo-0.0.1.tgz --output-dir . \
--namespace 这里是 .Release.Namespace \
--set image.repository=这里是 .Values.image.repository \
--set image.tag=这里是 .Values.image.tag \
--set deployment.serverIp=这里是 .Values.deployment.serverIp \
--set deployment.serverPort=这里是 .Values.deployment.serverPort
自定义父、子 Helm Chart 包
关注后解锁
测试运行
helm install my-test-chart parentchart/ --dry-run --debug