我试图把ES部署到kubernetes,我在申请kube之前做了这些步骤
我的本地机器上的
docker run -d --net devnet \
--name my-elastic \
--env ES_JAVA_OPTS="-Xms512m -Xmx512m" \
--env ES_PROTOCOL="http" \
--env discovery.type=single-node \
--env xpack.security.enabled=false \
--env ELASTIC_APM_VERIFY_SERVER_CERT=false \
--env XPACK_LICENSE_SELF_GENERATED_TYPE="basic" \
-p 9200:9200 -p 9300:9300 -it asia.gcr.io/my-project/elasticsearch:latest我使用JVM堆大小512 m,因为它不是用于生产的,所以我禁用了cert & xpack安全性,并使用了http协议,因为仍然在运行well
H 218G 219apiVersion: v1
kind: PersistentVolume
metadata:
name: my-elasticsearch-pv
spec:
storageClassName: ""
capacity:
storage: 10G
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
claimRef:
namespace: default
name: my-elasticsearch-pvc
gcePersistentDisk:
pdName: es-disk
fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-elasticsearch-pvc
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G我已经创建并应用了服务
apiVersion: v1
kind: Service
metadata:
name: my-elastic
spec:
ports:
- name: http-port
port: 9200
targetPort: es-port
selector:
app: my-elastic
type: ClusterIPapiVersion: apps/v1
kind: Deployment
metadata:
name: my-elastic
spec:
replicas: 1
selector:
matchLabels:
app: my-elastic
template:
metadata:
labels:
app: my-elastic
spec:
containers:
- name: my-elastic
resources:
requests:
memory: 1Gi
image: asia.gcr.io/my-project/elasticsearch:latest
env:
- name: ES_JAVA_OPTS
value: -Xms512m -Xmx512m
- name: ES_PROTOCOL
value: http
- name: discovery.type
value: single-node
- name: XPACK_LICENSE_SELF_GENERATED_TYPE
value: basic
- name: xpack.security.enabled
value: 'false'
- name: xpack.monitoring.enabled
value: 'false'
ports:
- name: es-port
containerPort: 9200
volumeMounts:
- name: my-elasticsearch-data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: my-elasticsearch-data
persistentVolumeClaim:
claimName: my-elasticsearch-pvc在应用部署之后,我得到了CrashLoopBackOff,这是我的集群的条件。我是不是在配置上漏掉了什么?

这是原木
"log.level":"ERROR", "message":"uncaught exception in thread [main]", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"main","log.logger":"org.elasticsearch.bootstrap.ElasticsearchUncaughtExceptionHandler","elasticsearch.node.name":"alodokter-emr-es-5cbd4cd95-bfvld","elasticsearch.cluster.name":"docker-cluster","error.type":"org.elasticsearch.bootstrap.StartupException","error.message":"java.lang.IllegalStateException: failed to obtain node locks, tried [/usr/share/elasticsearch/data]; maybe these locations are not writable or multiple nodes were started on the same data path?"发布于 2022-06-17 08:54:59
使Elasticsearch (UID:1000)拥有来自initContainer的数据目录/usr/share/elasticsearch/data。
$ chown -R 1000:1000 /usr/share/elasticsearch/dataapiVersion: apps/v1
kind: Deployment
metadata:
name: my-elastic
spec:
replicas: 1
selector:
matchLabels:
app: my-elastic
template:
metadata:
labels:
app: my-elastic
spec:
initContainers:
- name: busybox
image: busybox:1.28
command: ['sh', '-c', "chown -R 1000:1000 /usr/share/elasticsearch/data"]
volumeMounts:
- name: my-elasticsearch-data
mountPath: /usr/share/elasticsearch/data
containers:
- name: my-elastic
resources:
requests:
memory: 1Gi
image: asia.gcr.io/my-project/elasticsearch:latest
env:
- name: ES_JAVA_OPTS
value: -Xms512m -Xmx512m
- name: ES_PROTOCOL
value: http
- name: discovery.type
value: single-node
- name: XPACK_LICENSE_SELF_GENERATED_TYPE
value: basic
- name: xpack.security.enabled
value: 'false'
- name: xpack.monitoring.enabled
value: 'false'
ports:
- name: es-port
containerPort: 9200
volumeMounts:
- name: my-elasticsearch-data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: my-elasticsearch-data
persistentVolumeClaim:
claimName: my-elasticsearch-pvchttps://stackoverflow.com/questions/72654220
复制相似问题