deepflow-ebpf-spring-demo.yaml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. ---
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: deepflow-ebpf-spring-demo
  6. ---
  7. apiVersion: v1
  8. kind: ConfigMap
  9. metadata:
  10. name: demo-config
  11. namespace: deepflow-ebpf-spring-demo
  12. data:
  13. REDIS_HOST: redis-master
  14. ---
  15. apiVersion: v1
  16. kind: Service
  17. metadata:
  18. labels:
  19. app: redis
  20. release: redis
  21. name: redis-master
  22. namespace: deepflow-ebpf-spring-demo
  23. spec:
  24. type: ClusterIP
  25. selector:
  26. app: redis
  27. release: redis
  28. role: master
  29. ports:
  30. - name: redis
  31. port: 6379
  32. protocol: TCP
  33. targetPort: redis
  34. ---
  35. apiVersion: apps/v1 # apps/v1beta2
  36. kind: StatefulSet
  37. metadata:
  38. labels:
  39. app: redis
  40. chart: redis-3.0.2
  41. release: redis
  42. name: redis-master
  43. namespace: deepflow-ebpf-spring-demo
  44. spec:
  45. podManagementPolicy: OrderedReady
  46. replicas: 1
  47. revisionHistoryLimit: 10
  48. selector:
  49. matchLabels:
  50. app: redis
  51. release: redis
  52. role: master
  53. serviceName: redis-master
  54. template:
  55. metadata:
  56. labels:
  57. app: redis
  58. release: redis
  59. role: master
  60. spec:
  61. affinity:
  62. podAntiAffinity:
  63. preferredDuringSchedulingIgnoredDuringExecution:
  64. - weight: 100
  65. podAffinityTerm:
  66. labelSelector:
  67. matchExpressions:
  68. - key: app
  69. operator: In
  70. values:
  71. - loo-svc
  72. - foo-svc
  73. - bar-svc
  74. - loadgenerator
  75. - redis
  76. topologyKey: "kubernetes.io/hostname"
  77. containers:
  78. - name: redis-master
  79. env:
  80. - name: REDIS_DISABLE_COMMANDS
  81. value: FLUSHDB,FLUSHALL
  82. - name: REDIS_REPLICATION_MODE
  83. value: master
  84. - name: ALLOW_EMPTY_PASSWORD
  85. value: "yes"
  86. image: bitnami/redis:4.0.9
  87. imagePullPolicy: IfNotPresent
  88. livenessProbe:
  89. exec:
  90. command:
  91. - redis-cli
  92. - ping
  93. failureThreshold: 5
  94. initialDelaySeconds: 30
  95. periodSeconds: 10
  96. successThreshold: 1
  97. timeoutSeconds: 5
  98. ports:
  99. - containerPort: 6379
  100. name: redis
  101. protocol: TCP
  102. readinessProbe:
  103. exec:
  104. command:
  105. - redis-cli
  106. - ping
  107. failureThreshold: 5
  108. initialDelaySeconds: 5
  109. periodSeconds: 10
  110. successThreshold: 1
  111. timeoutSeconds: 1
  112. volumeMounts:
  113. - mountPath: /bitnami/redis/data
  114. name: redis-data
  115. dnsPolicy: ClusterFirst
  116. restartPolicy: Always
  117. securityContext:
  118. fsGroup: 1001
  119. # runAsUser: 1001
  120. # https://github.com/bitnami/bitnami-docker-redis/issues/106#issuecomment-388884372
  121. runAsUser: 0
  122. terminationGracePeriodSeconds: 30
  123. volumes:
  124. - emptyDir: {}
  125. name: redis-data
  126. updateStrategy:
  127. rollingUpdate:
  128. partition: 0
  129. type: RollingUpdate
  130. ---
  131. apiVersion: v1
  132. kind: Service
  133. metadata:
  134. namespace: deepflow-ebpf-spring-demo
  135. name: foo-svc
  136. labels:
  137. app: foo-svc
  138. spec:
  139. ports:
  140. - port: 80
  141. targetPort: http
  142. protocol: TCP
  143. name: http
  144. selector:
  145. app: foo-svc
  146. ---
  147. apiVersion: apps/v1
  148. kind: Deployment
  149. metadata:
  150. name: foo-svc
  151. namespace: deepflow-ebpf-spring-demo
  152. spec:
  153. selector:
  154. matchLabels:
  155. app: foo-svc
  156. replicas: 1
  157. template:
  158. metadata:
  159. labels:
  160. app: foo-svc
  161. spec:
  162. affinity:
  163. podAntiAffinity:
  164. preferredDuringSchedulingIgnoredDuringExecution:
  165. - weight: 100
  166. podAffinityTerm:
  167. labelSelector:
  168. matchExpressions:
  169. - key: app
  170. operator: In
  171. values:
  172. - loo-svc
  173. - foo-svc
  174. - bar-svc
  175. - loadgenerator
  176. - redis
  177. topologyKey: "kubernetes.io/hostname"
  178. containers:
  179. - name: foo-svc
  180. image: chanjarster/spring-boot-istio-jaeger-demo-foo-svc:0.1.0
  181. imagePullPolicy: Always
  182. ports:
  183. - containerPort: 8080
  184. name: http
  185. env:
  186. - name: JVM_OPTS
  187. value: "-Xms256m -Xmx256m"
  188. envFrom:
  189. - configMapRef:
  190. name: demo-config
  191. ---
  192. apiVersion: v1
  193. kind: Service
  194. metadata:
  195. namespace: deepflow-ebpf-spring-demo
  196. name: bar-svc
  197. labels:
  198. app: bar-svc
  199. spec:
  200. ports:
  201. - port: 8080
  202. targetPort: http
  203. protocol: TCP
  204. name: http
  205. selector:
  206. app: bar-svc
  207. ---
  208. apiVersion: apps/v1
  209. kind: Deployment
  210. metadata:
  211. name: bar-svc
  212. namespace: deepflow-ebpf-spring-demo
  213. spec:
  214. selector:
  215. matchLabels:
  216. app: bar-svc
  217. replicas: 1
  218. template:
  219. metadata:
  220. labels:
  221. app: bar-svc
  222. spec:
  223. affinity:
  224. podAntiAffinity:
  225. preferredDuringSchedulingIgnoredDuringExecution:
  226. - weight: 100
  227. podAffinityTerm:
  228. labelSelector:
  229. matchExpressions:
  230. - key: app
  231. operator: In
  232. values:
  233. - loo-svc
  234. - foo-svc
  235. - bar-svc
  236. - loadgenerator
  237. - redis
  238. topologyKey: "kubernetes.io/hostname"
  239. containers:
  240. - name: bar-svc
  241. image: chanjarster/spring-boot-istio-jaeger-demo-bar-svc:0.1.0
  242. imagePullPolicy: Always
  243. ports:
  244. - containerPort: 8080
  245. name: http
  246. env:
  247. - name: JVM_OPTS
  248. value: "-Xms256m -Xmx256m"
  249. envFrom:
  250. - configMapRef:
  251. name: demo-config
  252. ---
  253. apiVersion: v1
  254. kind: Service
  255. metadata:
  256. namespace: deepflow-ebpf-spring-demo
  257. name: loo-svc
  258. labels:
  259. app: loo-svc
  260. spec:
  261. ports:
  262. - port: 8080
  263. targetPort: http
  264. protocol: TCP
  265. name: http
  266. selector:
  267. app: loo-svc
  268. ---
  269. apiVersion: apps/v1
  270. kind: Deployment
  271. metadata:
  272. name: loo-svc
  273. namespace: deepflow-ebpf-spring-demo
  274. spec:
  275. selector:
  276. matchLabels:
  277. app: loo-svc
  278. replicas: 1
  279. template:
  280. metadata:
  281. labels:
  282. app: loo-svc
  283. spec:
  284. affinity:
  285. podAntiAffinity:
  286. preferredDuringSchedulingIgnoredDuringExecution:
  287. - weight: 100
  288. podAffinityTerm:
  289. labelSelector:
  290. matchExpressions:
  291. - key: app
  292. operator: In
  293. values:
  294. - loo-svc
  295. - foo-svc
  296. - bar-svc
  297. - loadgenerator
  298. - redis
  299. topologyKey: "kubernetes.io/hostname"
  300. containers:
  301. - name: loo-svc
  302. image: chanjarster/spring-boot-istio-jaeger-demo-loo-svc:0.1.0
  303. imagePullPolicy: Always
  304. ports:
  305. - containerPort: 8080
  306. name: http
  307. env:
  308. - name: JVM_OPTS
  309. value: "-Xms256m -Xmx256m"
  310. envFrom:
  311. - configMapRef:
  312. name: demo-config
  313. ---
  314. apiVersion: apps/v1
  315. kind: Deployment
  316. metadata:
  317. name: loadgenerator
  318. namespace: deepflow-ebpf-spring-demo
  319. labels:
  320. app: loadgenerator
  321. spec:
  322. replicas: 1
  323. selector:
  324. matchLabels:
  325. app: loadgenerator
  326. template:
  327. metadata:
  328. labels:
  329. app: loadgenerator
  330. spec:
  331. affinity:
  332. podAntiAffinity:
  333. preferredDuringSchedulingIgnoredDuringExecution:
  334. - weight: 100
  335. podAffinityTerm:
  336. labelSelector:
  337. matchExpressions:
  338. - key: app
  339. operator: In
  340. values:
  341. - loo-svc
  342. - foo-svc
  343. - bar-svc
  344. - loadgenerator
  345. - redis
  346. topologyKey: "kubernetes.io/hostname"
  347. containers:
  348. - name: curl
  349. image: docker.io/litmuschaos/curl:latest
  350. imagePullPolicy: IfNotPresent
  351. command:
  352. - /bin/sh
  353. - -exc
  354. - |
  355. while true
  356. do
  357. curl -i foo-svc
  358. sleep 3
  359. done