--- apiVersion: v1 kind: PersistentVolume metadata: name: elastic-tcs-0 spec: storageClassName: elastic-tcs capacity: storage: 30Gi accessModes: - ReadWriteOnce local: path: /data/elastic-tcs/es_data claimRef: kind: PersistentVolumeClaim namespace: tcs name: elastic-tcs-elastic-0 nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - bfs-k8snode-10-2-1-14.hetzner.base.drillinsight.com --- apiVersion: v1 kind: PersistentVolume metadata: name: elastic-tcs-1 spec: storageClassName: elastic-tcs capacity: storage: 30Gi accessModes: - ReadWriteOnce local: path: /data/elastic-tcs/es_data claimRef: kind: PersistentVolumeClaim namespace: tcs name: elastic-tcs-elastic-1 nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - bfs-k8snode-10-2-1-15.hetzner.base.drillinsight.com --- apiVersion: v1 kind: PersistentVolume metadata: name: elastic-tcs-2 spec: storageClassName: elastic-tcs capacity: storage: 30Gi accessModes: - ReadWriteOnce local: path: /data/elastic-tcs/es_data claimRef: kind: PersistentVolumeClaim namespace: tcs name: elastic-tcs-elastic-2 nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - bfs-k8snode-10-2-1-16.hetzner.base.drillinsight.com --- apiVersion: apps/v1 kind: StatefulSet metadata: name: elastic spec: serviceName: elastic replicas: 3 selector: matchLabels: app: elastic template: metadata: labels: app: elastic spec: securityContext: fsGroup: 100 nodeSelector: app.kubernetes.io/name: tcs initContainers: - name: init image: busybox imagePullPolicy: IfNotPresent command: ["/bin/sh", "-c", "sysctl -w vm.max_map_count=262144;chown -R 1000:1000 /usr/share/elasticsearch/data"] securityContext: privileged: true volumeMounts: - name: elastic-tcs mountPath: /usr/share/elasticsearch/data containers: - name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3 imagePullPolicy: IfNotPresent ports: - containerPort: 9200 name: restful - containerPort: 9300 name: transport env: - name: cluster.name value: bfs-elastic-tcs-1 - name: network.host value: 0.0.0.0 - name: node.name valueFrom: fieldRef: fieldPath: metadata.name - name: discovery.seed_hosts value: "elastic-0.elastic,elastic-1.elastic,elastic-2.elastic" - name: cluster.initial_master_nodes value: "elastic-0,elastic-1,elastic-2" - name: xpack.security.enabled value: "false" - name: xpack.monitoring.collection.enabled value: "false" - name: ES_JAVA_OPTS value: "-Xms2048m -Xmx2048m" - name: ELASTIC_PASSWORD value: "changeme" resources: limits: cpu: 2 memory: 8Gi requests: cpu: 100m memory: 512Mi volumeMounts: - name: elastic-tcs mountPath: /usr/share/elasticsearch/data volumeClaimTemplates: - metadata: name: elastic-tcs spec: accessModes: ['ReadWriteOnce'] storageClassName: "elastic-tcs" resources: requests: storage: 30Gi --- apiVersion: v1 kind: Service metadata: name: elastic-internel labels: app: elastic spec: ports: - name: restful port: 9200 targetPort: 9200 type: ClusterIP selector: app: elastic --- apiVersion: v1 kind: Service metadata: name: elastic labels: app: elastic spec: ports: - name: restful port: 9200 - name: transport port: 9300 clusterIP: None selector: app: elastic