deploy-tmp.yaml 5.0 KB

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