es-statefulset.yaml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. # RBAC authn and authz
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. name: elasticsearch-logging
  6. namespace: logging
  7. labels:
  8. k8s-app: elasticsearch-logging
  9. addonmanager.kubernetes.io/mode: Reconcile
  10. ---
  11. kind: ClusterRole
  12. apiVersion: rbac.authorization.k8s.io/v1
  13. metadata:
  14. name: elasticsearch-logging
  15. labels:
  16. k8s-app: elasticsearch-logging
  17. addonmanager.kubernetes.io/mode: Reconcile
  18. rules:
  19. - apiGroups:
  20. - ""
  21. resources:
  22. - "services"
  23. - "namespaces"
  24. - "endpoints"
  25. verbs:
  26. - "get"
  27. ---
  28. kind: ClusterRoleBinding
  29. apiVersion: rbac.authorization.k8s.io/v1
  30. metadata:
  31. name: elasticsearch-logging
  32. labels:
  33. k8s-app: elasticsearch-logging
  34. addonmanager.kubernetes.io/mode: Reconcile
  35. subjects:
  36. - kind: ServiceAccount
  37. name: elasticsearch-logging
  38. namespace: logging
  39. apiGroup: ""
  40. roleRef:
  41. kind: ClusterRole
  42. name: elasticsearch-logging
  43. apiGroup: ""
  44. ---
  45. # Elasticsearch deployment itself
  46. apiVersion: apps/v1
  47. kind: StatefulSet
  48. metadata:
  49. name: elasticsearch-logging
  50. namespace: logging
  51. labels:
  52. k8s-app: elasticsearch-logging
  53. version: v7.10.2
  54. addonmanager.kubernetes.io/mode: Reconcile
  55. spec:
  56. serviceName: elasticsearch-logging
  57. replicas: 1
  58. selector:
  59. matchLabels:
  60. k8s-app: elasticsearch-logging
  61. version: v7.10.2
  62. template:
  63. metadata:
  64. labels:
  65. k8s-app: elasticsearch-logging
  66. version: v7.10.2
  67. spec:
  68. serviceAccountName: elasticsearch-logging
  69. containers:
  70. - image: registry.cn-beijing.aliyuncs.com/dotbalo/elasticsearch:v7.10.2
  71. name: elasticsearch-logging
  72. imagePullPolicy: IfNotPresent
  73. resources:
  74. # need more cpu upon initialization, therefore burstable class
  75. limits:
  76. cpu: 1000m
  77. memory: 3Gi
  78. requests:
  79. cpu: 100m
  80. memory: 3Gi
  81. ports:
  82. - containerPort: 9200
  83. name: db
  84. protocol: TCP
  85. - containerPort: 9300
  86. name: transport
  87. protocol: TCP
  88. livenessProbe:
  89. tcpSocket:
  90. port: transport
  91. initialDelaySeconds: 30
  92. timeoutSeconds: 10
  93. readinessProbe:
  94. tcpSocket:
  95. port: transport
  96. initialDelaySeconds: 30
  97. timeoutSeconds: 10
  98. volumeMounts:
  99. - name: elasticsearch-logging
  100. mountPath: /data
  101. env:
  102. - name: "NAMESPACE"
  103. valueFrom:
  104. fieldRef:
  105. fieldPath: metadata.namespace
  106. - name: "MINIMUM_MASTER_NODES"
  107. value: "1"
  108. volumes:
  109. - name: elasticsearch-logging
  110. emptyDir: {}
  111. # Elasticsearch requires vm.max_map_count to be at least 262144.
  112. # If your OS already sets up this number to a higher value, feel free
  113. # to remove this init container.
  114. initContainers:
  115. - image: registry.cn-beijing.aliyuncs.com/dotbalo/alpine:3.6
  116. command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"]
  117. name: elasticsearch-logging-init
  118. securityContext:
  119. privileged: true