apiVersion: v1 kind: Service metadata: { name: elasticsearch, namespace: elastic } spec: ports: - { name: http, port: 9200, targetPort: 9200 } - { name: transport, port: 9300, targetPort: 9300 } selector: { app: elasticsearch } --- apiVersion: apps/v1 kind: StatefulSet metadata: { name: elasticsearch, namespace: elastic } spec: serviceName: elasticsearch replicas: 1 selector: { matchLabels: { app: elasticsearch } } template: metadata: { labels: { app: elasticsearch } } spec: nodeSelector: { node: hetzner-2 } containers: - name: es image: docker.elastic.co/elasticsearch/elasticsearch:8.14.0 env: - { name: discovery.type, value: single-node } - { name: xpack.security.enabled, value: "false" } - { name: ES_JAVA_OPTS, value: "-Xms2g -Xmx2g" } ports: - { containerPort: 9200 } - { containerPort: 9300 } volumeMounts: - { name: data, mountPath: /usr/share/elasticsearch/data } volumeClaimTemplates: - metadata: { name: data } spec: accessModes: ["ReadWriteOnce"] storageClassName: local-ssd-hetzner resources: { requests: { storage: 80Gi } }