deploy-tmp.yaml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. ---
  2. apiVersion: apps/v1
  3. kind: StatefulSet
  4. metadata:
  5. name: offline-process-schedule
  6. namespace: pro
  7. labels:
  8. app: offline-process-schedule
  9. spec:
  10. serviceName: offline-process-schedule
  11. replicas: 1
  12. selector:
  13. matchLabels:
  14. app: offline-process-schedule
  15. template:
  16. metadata:
  17. labels:
  18. app: offline-process-schedule
  19. spec:
  20. terminationGracePeriodSeconds: 30
  21. dnsPolicy: None
  22. dnsConfig:
  23. nameservers:
  24. - 223.5.5.5
  25. - 10.108.30.101
  26. - 10.26.22.50
  27. initContainers:
  28. - name: init
  29. image: hub.evbj.easou.com/dev/busybox
  30. command: [ "chmod","777","-R","/data" ]
  31. imagePullPolicy: IfNotPresent
  32. volumeMounts:
  33. - name: volume
  34. mountPath: /data
  35. #nodeSelector:
  36. # app.touchrs: touchrs
  37. # affinity:
  38. # podAntiAffinity:
  39. # preferredDuringSchedulingIgnoredDuringExecution:
  40. # - weight: 100
  41. # podAffinityTerm:
  42. # labelSelector:
  43. # matchExpressions:
  44. # - key: app
  45. # operator: In
  46. # values:
  47. # - offline-process-schedule
  48. # topologyKey: kubernetes.io/hostname
  49. containers:
  50. - name: offline-process-schedule
  51. image: hub.evbj.easou.com/pro/offline-process-schedule:r199845
  52. imagePullPolicy: IfNotPresent
  53. env:
  54. - name: MY_NODE_NAME
  55. valueFrom:
  56. fieldRef:
  57. fieldPath: spec.nodeName
  58. - name: MY_POD_IP
  59. valueFrom:
  60. fieldRef:
  61. fieldPath: status.podIP
  62. - name: MY_POD_NAME
  63. valueFrom:
  64. fieldRef:
  65. fieldPath: metadata.name
  66. - name: MY_POD_NAMESPACE
  67. valueFrom:
  68. fieldRef:
  69. fieldPath: metadata.namespace
  70. - name: JAVA_OPTS
  71. value: "-server -Xmx2g -Xms2g -Xss512k -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=product"
  72. ports:
  73. - containerPort: 8080
  74. name: port
  75. - containerPort: 8001
  76. name: "jvm-debug"
  77. volumeMounts:
  78. - name: volume
  79. mountPath: /data
  80. lifecycle:
  81. preStop:
  82. exec:
  83. command: ["/bin/sh","-c","curl -H 'loginName:admin' -H 'password:ea1so2ua3dm4in5' -X POST 127.0.0.1:8080/actuator/shutdown"]
  84. livenessProbe:
  85. httpGet:
  86. path: /actuator/health
  87. port: 8080
  88. httpHeaders:
  89. - name: loginName
  90. value: admin
  91. - name: password
  92. value: ea1so2ua3dm4in5
  93. initialDelaySeconds: 40 #60s后启动第一次探测
  94. periodSeconds: 15 # 每隔10s启动一次探测
  95. timeoutSeconds: 3 # 超时时间3s
  96. successThreshold: 1 # 成功1次即表示容器健康
  97. failureThreshold: 5 # 连续5次失败,则判定容器不健康,默认3次
  98. readinessProbe:
  99. tcpSocket:
  100. port: 8080
  101. initialDelaySeconds: 40
  102. periodSeconds: 15
  103. # - image: hub.evbj.easou.com/pro/filebeat:7.13.3
  104. # imagePullPolicy: IfNotPresent
  105. # name: filebeat
  106. # volumeMounts:
  107. # - name: volume #日志同时挂载在nginx和filebeat中
  108. # mountPath: /data
  109. # - name: filebeat-config
  110. # mountPath: /usr/share/filebeat/filebeat.yml
  111. # subPath: filebeat.yml
  112. # volumes:
  113. # - name: filebeat-config
  114. # configMap:
  115. # name: filebeat-config-offline-process-schedule
  116. # items:
  117. # - key: filebeat.yml
  118. # path: filebeat.yml
  119. volumeClaimTemplates:
  120. - metadata:
  121. name: volume
  122. spec:
  123. accessModes: [ "ReadWriteOnce" ]
  124. storageClassName: rbd
  125. resources:
  126. requests:
  127. storage: 100Gi
  128. ---
  129. apiVersion: v1
  130. kind: Service
  131. metadata:
  132. name: offline-process-schedule-svc
  133. namespace: pro
  134. labels:
  135. app: offline-process-schedule-svc
  136. spec:
  137. type: NodePort
  138. ports:
  139. - port: 80
  140. targetPort: 8080
  141. name: "main"
  142. selector:
  143. app: offline-process-schedule
  144. ---
  145. apiVersion: networking.k8s.io/v1
  146. kind: Ingress
  147. metadata:
  148. name: offline-process-schedule-ingress
  149. namespace: pro
  150. spec:
  151. rules:
  152. - host: pro-offline-process-schedule.ieasou.cn
  153. http:
  154. paths:
  155. - path: /
  156. pathType: Prefix
  157. backend:
  158. service:
  159. name: offline-process-schedule-svc
  160. port:
  161. number: 8080
  162. ingressClassName: nginx
  163. ---
  164. apiVersion: v1
  165. kind: ConfigMap
  166. metadata:
  167. name: filebeat-config-offline-process-schedule
  168. namespace: pro
  169. data:
  170. filebeat.yml: |
  171. filebeat.inputs:
  172. - type: log
  173. enabled: true
  174. #多行合并
  175. multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}'
  176. multiline.negate: true
  177. multiline.match: after
  178. multiline.timeout: 30
  179. fields:
  180. log_topic: offline-process-schedule
  181. fields_under_root: true
  182. paths:
  183. - "/data/logs/app/*.log"
  184. - "/data/logs/*.log"
  185. output.kafka:
  186. version: 2.0.0
  187. enable: true
  188. hosts: ["kafka-0.kafka-headless.pro.svc.cluster.local:9093", "kafka-1.kafka-headless.pro.svc.cluster.local:9093", "kafka-2.kafka-headless.pro.svc.cluster.local:9093"]
  189. topic: 'offline-process-topic'
  190. required_acks: 1
  191. partition.round_robin:
  192. reachable_only: false
  193. compression: gzip
  194. max_message_bytes: 1000000