--- apiVersion: apps/v1 kind: StatefulSet metadata: name: es namespace: qa spec: serviceName: elasticsearch replicas: 3 selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: terminationGracePeriodSeconds: 180 initContainers: - name: init image: hub.evbj.easou.com/dev/busybox command: ["/bin/sh", "-c"] args: - chmod 777 -R /data; sysctl -w vm.max_map_count=262144; ulimit -n 65536 imagePullPolicy: Always volumeMounts: - name: volume mountPath: /data securityContext: privileged: true containers: - name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2 resources: limits: cpu: 1000m requests: cpu: 100m ports: - containerPort: 9200 name: rest protocol: TCP - containerPort: 9300 name: inter-node protocol: TCP volumeMounts: - name: volume mountPath: /data/elasticsearch env: - name: cluster.name value: k8s-es-logs - name: node.name valueFrom: fieldRef: fieldPath: metadata.name - name: cluster.initial_master_nodes value: "es-0,es-1,es-2" - name: discovery.zen.minimum_master_nodes value: "2" - name: discovery.seed_hosts value: "elasticsearch" - name: ES_JAVA_OPTS value: "-Xms2048m -Xmx2048m" - name: network.host value: "0.0.0.0" volumeClaimTemplates: - metadata: name: volume spec: accessModes: [ "ReadWriteOnce" ] storageClassName: rbd resources: requests: storage: 100Gi --- apiVersion: v1 kind: Service metadata: name: elasticsearch namespace: qa labels: app: elasticsearch spec: selector: app: elasticsearch clusterIP: None ports: - port: 9200 name: rest - port: 9300 name: inter-node --- apiVersion: v1 kind: Service metadata: name: elasticsearch-cs namespace: qa labels: app: elasticsearch spec: type: NodePort ports: - port: 9200 name: client nodePort: 30029 selector: app: elasticsearch