在templates目录中创建Kubernetes文件,文件中的使用values.yaml和_helpers.tpl中定义的变量。在此例中,原rc换成deployment,原来挂载iscsi的共享存储换成pvc。
| helm包中service如果为nodeport,必须指定nodeport端口号,且不能跟平台内已有端口号冲突,建议端口范围30000~32767。 |
xwiki-deployment.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ .Values.name }}
labels:
app: {{ .Values.appName }}
chart: {{ template "chartName" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicasCount }}
selector:
matchLabels:
app: {{ .Values.appName }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Values.appName }}
release: {{ .Release.Name }}
spec:
containers:
- name: {{ .Values.containerName }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
{{toYaml .Values.env | indent 12}}
ports:
- containerPort: 21260
resources:
{{toYaml .Values.resources | indent 12}}
volumeMounts:
- mountPath: /etc/localtime
name: time
- mountPath: /usr/local/xwiki
name: devopscloud-xwiki-data
securityContext:
privileged: true
nodeSelector:
{{toYaml .Values.nodeSelector | indent 8}}
volumes:
- name: time
hostPath:
path: /etc/localtime
- name: devopscloud-xwiki-data
persistentVolumeClaim:
claimName: {{ .Values.pvc.data.name }}
terminationGracePeriodSeconds: 5
xwiki-service.yaml
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.serviceName }}
labels:
app: {{ .Values.appName }}
chart: {{ template "chartName" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}
ports: #ports下端口名称(name)键值不能超过15个字符
{{toYaml .Values.ports | indent 2}}
selector:
app: {{ .Values.appName }}
release: {{ .Release.Name }}
xwiki-data-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Values.pvc.data.name }}
labels:
app: {{ .Values.appName }}
chart: {{ template "chartName" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.pvc.data.size | quote}}
xwiki-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{.Values.name}}-version-{{.Values.version}} #若需要在配置管理中进行展示,需要以-version-对名称和版本拼接
namespace: {{ .Release.Namespace }}
annotations:
cm-name: {{.Values.name}} #若需要在配置管理中进行展示,需要添加cm-name
labels:
app: {{.Values.appName}}
chart: {{template"chartName".}}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
data:
demo: demo
| 目前支持的Kubernetes资源体:Deployment、Statefulset、Service、secret和configmap。 |