官网:Helm | Docs
一、制作模板
1、创建一个 chart
helm create myapp
2、对 模版作修改,根据需求,只保留如下
[root@master helmfile]# tree myapp
myapp
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ └── service.yaml
└── values.yaml
3、自定义 deployment.yaml 模版内容
cd myapp
vim templates/deployment.yaml
# 内容
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
spec:
containers:
- name: {{ .Release.Name }}
image: hub.mshxuyi.com/xielong/myapp:v1
ports:
- containerPort: 80
4、自定义 Service.yaml 模版内容
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-svc
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 8081
targetPort: 8081
selector:
app: {{ .Release.Name }}
5、Chart.yaml
vim Chart.yaml
# 这里没作修改
apiVersion: v2
name: myapp
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: 1.16.0
6、values.yaml
replicaCount: 1
{{ .Release.name }} 会调用 Chart.yaml 中的 name
{{ .Values.replicaCount }} 会调用 value.yaml 中的 replicaCount
二、安装
1、安装
[root@master myapp]# helm install myapp .
NAME: myapp
LAST DEPLOYED: Fri Feb 26 04:21:39 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
2、查看 deployment
[root@master myapp]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
myapp default 1 2021-02-26 04:21:39.769831546 +0800 CST deployed myapp-0.1.0 1.16.0
3、查看 service
[root@master myapp]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 123d
myapp-svc ClusterIP 10.101.139.149 <none> 8081/TCP 3m56s
4、更新
vim values.yaml
# 修改副本数
replicaCount: 2
# 更新
helm upgrade myapp .
# 查看,deployment 变成 2
[root@master myapp]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
myapp 2/2 2 2 2m17s
5、删除
[root@master myapp]# helm uninstall myapp
release "myapp" uninstalled
[root@master myapp]#
打包命令
helm package