statefulset.yaml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. ---
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. labels:
  6. app: loki
  7. name: default-loki
  8. namespace: onecloud
  9. ---
  10. apiVersion: rbac.authorization.k8s.io/v1
  11. kind: Role
  12. metadata:
  13. labels:
  14. app: loki
  15. name: default-loki
  16. namespace: onecloud
  17. rules:
  18. - apiGroups:
  19. - extensions
  20. resourceNames:
  21. - loki
  22. resources:
  23. - podsecuritypolicies
  24. verbs:
  25. - use
  26. ---
  27. apiVersion: rbac.authorization.k8s.io/v1
  28. kind: RoleBinding
  29. metadata:
  30. labels:
  31. app: loki
  32. name: default-loki
  33. namespace: onecloud
  34. roleRef:
  35. apiGroup: rbac.authorization.k8s.io
  36. kind: Role
  37. name: loki
  38. subjects:
  39. - kind: ServiceAccount
  40. name: loki
  41. ---
  42. apiVersion: v1
  43. kind: ConfigMap
  44. metadata:
  45. name: default-loki
  46. namespace: onecloud
  47. labels:
  48. app: loki
  49. data:
  50. loki.yaml: |
  51. auth_enabled: false
  52. chunk_store_config:
  53. max_look_back_period: 0
  54. ingester:
  55. chunk_block_size: 262144
  56. chunk_idle_period: 3m
  57. chunk_retain_period: 1m
  58. lifecycler:
  59. ring:
  60. kvstore:
  61. store: inmemory
  62. replication_factor: 1
  63. limits_config:
  64. enforce_metric_name: false
  65. reject_old_samples: true
  66. reject_old_samples_max_age: 168h
  67. schema_config:
  68. configs:
  69. - from: "2018-04-15"
  70. index:
  71. period: 168h
  72. prefix: index_
  73. object_store: filesystem
  74. schema: v9
  75. store: boltdb
  76. server:
  77. http_listen_port: 3100
  78. storage_config:
  79. boltdb:
  80. directory: /data/loki/index
  81. filesystem:
  82. directory: /data/loki/chunks
  83. table_manager:
  84. retention_deletes_enabled: false
  85. retention_period: 0
  86. ---
  87. apiVersion: v1
  88. kind: Service
  89. metadata:
  90. name: default-loki-headless
  91. namespace: onecloud
  92. spec:
  93. clusterIP: None
  94. ports:
  95. - name: http-metrics
  96. port: 3100
  97. protocol: TCP
  98. targetPort: http-metrics
  99. selector:
  100. app: loki
  101. type: ClusterIP
  102. ---
  103. apiVersion: v1
  104. kind: Service
  105. metadata:
  106. name: default-loki
  107. namespace: onecloud
  108. spec:
  109. ports:
  110. - name: http-metrics
  111. port: 3100
  112. protocol: TCP
  113. targetPort: http-metrics
  114. selector:
  115. app: loki
  116. type: ClusterIP
  117. ---
  118. apiVersion: apps/v1
  119. kind: StatefulSet
  120. metadata:
  121. name: default-loki
  122. namespace: onecloud
  123. labels:
  124. app: loki
  125. spec:
  126. podManagementPolicy: OrderedReady
  127. replicas: 1
  128. selector:
  129. matchLabels:
  130. app: loki
  131. serviceName: default-loki-headless
  132. updateStrategy:
  133. type: RollingUpdate
  134. volumeClaimTemplates:
  135. - metadata:
  136. name: storage
  137. spec:
  138. accessModes:
  139. - ReadWriteOnce
  140. resources:
  141. requests:
  142. storage: 100Gi
  143. storageClassName: local-path
  144. volumeMode: Filesystem
  145. template:
  146. metadata:
  147. labels:
  148. app: loki
  149. annotations:
  150. prometheus.io/port: http-metrics
  151. prometheus.io/scrape: "true"
  152. spec:
  153. serviceAccount: default-loki
  154. serviceAccountName: default-loki
  155. terminationGracePeriodSeconds: 4800
  156. securityContext:
  157. fsGroup: 10001
  158. runAsGroup: 10001
  159. runAsNonRoot: true
  160. runAsUser: 10001
  161. volumes:
  162. - name: config
  163. configMap:
  164. defaultMode: 420
  165. name: default-loki
  166. containers:
  167. - name: loki
  168. image: grafana/loki:v1.2.0
  169. imagePullPolicy: IfNotPresent
  170. args:
  171. - -config.file=/etc/loki/loki.yaml
  172. volumeMounts:
  173. - mountPath: /etc/loki
  174. name: config
  175. - mountPath: /data
  176. name: storage
  177. ports:
  178. - name: http-metrics
  179. containerPort: 3100
  180. protocol: TCP
  181. livenessProbe:
  182. failureThreshold: 3
  183. httpGet:
  184. path: /ready
  185. port: http-metrics
  186. scheme: HTTP
  187. initialDelaySeconds: 45
  188. periodSeconds: 10
  189. successThreshold: 1
  190. timeoutSeconds: 1
  191. readinessProbe:
  192. failureThreshold: 3
  193. httpGet:
  194. path: /ready
  195. port: http-metrics
  196. scheme: HTTP
  197. initialDelaySeconds: 45
  198. periodSeconds: 10
  199. successThreshold: 1
  200. timeoutSeconds: 1
  201. securityContext:
  202. procMount: Default
  203. readOnlyRootFilesystem: true