122 lines
3.5 KiB
YAML
122 lines
3.5 KiB
YAML
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: {ProjectName}
|
||
spec:
|
||
minReadySeconds: 2
|
||
replicas: 1
|
||
strategy:
|
||
rollingUpdate:
|
||
maxSurge: 1
|
||
maxUnavailable: 0
|
||
type: RollingUpdate
|
||
selector:
|
||
matchLabels:
|
||
app: {ProjectName}
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: {ProjectName}
|
||
prometheus: {PROMETHEUS}
|
||
logging: '{LOGGING}'
|
||
spec:
|
||
affinity:
|
||
nodeAffinity:
|
||
requiredDuringSchedulingIgnoredDuringExecution:
|
||
nodeSelectorTerms:
|
||
- matchExpressions:
|
||
- key: work
|
||
operator: In
|
||
values:
|
||
- {nodeSelector}
|
||
podAntiAffinity:
|
||
preferredDuringSchedulingIgnoredDuringExecution:
|
||
- podAffinityTerm:
|
||
labelSelector:
|
||
matchExpressions:
|
||
- key: app
|
||
operator: In
|
||
values:
|
||
- {ProjectName}
|
||
topologyKey: kubernetes.io/hostname
|
||
weight: 100
|
||
terminationGracePeriodSeconds: 60 ##k8s将会给应用发送SIGTERM信号,可以用来正确、优雅地关闭应用,默认为30秒
|
||
containers:
|
||
- name: {ProjectName}
|
||
image: registry.cn-hangzhou.aliyuncs.com/axzo-k8s/{namespace}-{ProjectName}:{BUILD_ID}
|
||
imagePullPolicy: Always
|
||
livenessProbe: #该pod是存活的,不存活则需要重启
|
||
httpGet:
|
||
path: /checkDeath
|
||
port: {port}
|
||
scheme: HTTP
|
||
initialDelaySeconds: 60 ## equals to the maximum startup time of the application + couple of seconds
|
||
timeoutSeconds: 5
|
||
successThreshold: 1
|
||
failureThreshold: 5
|
||
readinessProbe: #kubernetes认为该pod是启动成功的
|
||
httpGet:
|
||
path: /checkDeath
|
||
port: {port}
|
||
scheme: HTTP
|
||
initialDelaySeconds: 30 ## equals to minimum startup time of the application
|
||
timeoutSeconds: 5
|
||
successThreshold: 1
|
||
failureThreshold: 5
|
||
volumeMounts:
|
||
- name: tz-config
|
||
mountPath: /etc/localtime
|
||
- name: jmx-exporter
|
||
mountPath: /data
|
||
env:
|
||
- name: NACOS_HOST
|
||
value: {NACOS_HOST}
|
||
- name: NACOS_PORT
|
||
value: "{NACOS_PORT}"
|
||
- name: NACOS_NAMESPACE_ID
|
||
value: {NACOS_NAMESPACE_ID}
|
||
- name: NACOS_PROFILES_ACTIVE
|
||
value: {NACOS_PROFILES_ACTIVE}
|
||
- name: MY_POD_NAME
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: metadata.name
|
||
- name: MY_POD_NAMESPACE
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: metadata.namespace
|
||
- name: POD_IP
|
||
valueFrom:
|
||
fieldRef:
|
||
fieldPath: status.podIP
|
||
ports:
|
||
- containerPort: {port}
|
||
resources:
|
||
limits:
|
||
memory: {limitMemory}
|
||
requests:
|
||
memory: {requestsMemory}
|
||
imagePullSecrets:
|
||
- name: aliyun
|
||
volumes:
|
||
- name: tz-config
|
||
hostPath:
|
||
path: /usr/share/zoneinfo/Asia/Shanghai
|
||
- name: jmx-exporter
|
||
persistentVolumeClaim:
|
||
claimName: jmx
|
||
|
||
---
|
||
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: {ProjectName}
|
||
spec:
|
||
ports:
|
||
- name: tcp
|
||
port: {port}
|
||
clusterIP: None
|
||
selector:
|
||
app: {ProjectName}
|