用helm一个通用模板,包括deployment和service,一个value.yaml为一个微服务
时间: 2023-06-18 22:06:09 浏览: 53
可以尝试以下通用模板:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.serviceName }}-deployment
spec:
selector:
matchLabels:
app: {{ .Values.serviceName }}
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app: {{ .Values.serviceName }}
spec:
containers:
- name: {{ .Values.serviceName }}-container
image: {{ .Values.image }}
ports:
- containerPort: {{ .Values.containerPort }}
env:
# 可以根据需要添加或修改环境变量
- name: ENV_VAR_1
value: {{ .Values.envVar1 }}
- name: ENV_VAR_2
value: {{ .Values.envVar2 }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.serviceName }}-service
spec:
selector:
app: {{ .Values.serviceName }}
ports:
- protocol: TCP
port: {{ .Values.servicePort }}
targetPort: {{ .Values.containerPort }}
type: {{ .Values.serviceType }}
```
其中,`values.yaml` 文件中应该包含以下值:
```yaml
serviceName: # 服务名
image: # 镜像名
replicaCount: # 副本数
containerPort: # 容器监听的端口
servicePort: # Service 暴露的端口
serviceType: # Service 的类型(ClusterIP/NodePort)
envVar1: # 环境变量 1
envVar2: # 环境变量 2
# 可以根据需要添加或修改其他值
```
使用 Helm 部署时,可以通过以下命令来指定 `values.yaml` 文件:
```bash
helm install my-service -f values.yaml ./my-service-chart
```
其中,`my-service` 为部署的 Helm release 名称,`./my-service-chart` 为 Helm chart 所在的目录路径。