es.yaml
# pv和pvc apiVersion: v1 kind: PersistentVolume metadata: name: es-pv spec: capacity: storage: 5Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: es-host hostPath: path: /data/es-data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: es-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi storageClassName: es-host --- apiVersion: v1 kind: ConfigMap metadata: name: es data: elasticsearch.yml: | cluster.name: my-cluster node.name: node-1 node.max_local_storage_nodes: 3 network.host: 0.0.0.0 http.port: 9200 discovery.seed_hosts: ["127.0.0.1", "[::1]"] cluster.initial_master_nodes: ["node-1"] http.cors.enabled: true http.cors.allow-origin: /.*/ --- apiVersion: apps/v1 kind: Deployment metadata: name: elasticsearch spec: selector: matchLabels: name: elasticsearch replicas: 1 template: metadata: labels: name: elasticsearch spec: initContainers: - name: init-sysctl image: busybox command: - sysctl - -w - vm.max_map_count=262144 securityContext: privileged: true containers: - name: elasticsearch image: elasticsearch:7.6.2 imagePullPolicy: IfNotPresent resources: limits: cpu: 1000m memory: 2Gi requests: cpu: 100m memory: 1Gi env: - name: ES_JAVA_OPTS value: -Xms512m -Xmx512m ports: - containerPort: 9200 - containerPort: 9300 volumeMounts: - name: elasticsearch-data mountPath: /usr/share/elasticsearch/data/ - name: es-config mountPath: /usr/share/elasticsearch/config/elasticsearch.yml subPath: elasticsearch.yml volumes: - name: elasticsearch-data persistentVolumeClaim: claimName: es-pvc # hostPath: # path: /data/es - name: es-config configMap: name: es --- apiVersion: v1 kind: Service metadata: name: elasticsearch labels: name: elasticsearch spec: type: NodePort ports: - name: web-9200 port: 9200 targetPort: 9200 protocol: TCP nodePort: 30105 - name: web-9300 port: 9300 targetPort: 9300 protocol: TCP nodePort: 30106 selector: name: elasticsearch
验证
curl -XGET 'http://172.30.4.218:9200' #可以先pod再service