Проблема Elasticsearch в кластере openshift "не удалось получить блокировки узлов, попытались [[/ usr / share /asticsearch / data]] с идентификатором блокировки [0]" - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь запустить Elasticsearch в режиме кластера внутри kubernets, и я получаю ошибку ниже, когда пытаюсь создать POD.

Я уже нашел много подходов к этой ошибке. К сожалению, никто из них не помог мне решить мою проблему. Я установил node.max_local_storage_nodes: 20, он также не работает

64-разрядный сервер OpenJDK Предупреждение о виртуальной машине: опция UseConcMarkSweepG C устарела в версии 9.0 и, вероятно, будет удалена в следующем выпуске. {"type": "server", "timestamp": "2020-01-15T17: 32: 21,100Z", "level": "WARN", "component": "oebElasticsearchUncaughtExceptionHandler", "cluster.name": "mih -dev "," node.name ":" es-cluster-0 "," message ":" необработанное исключение в потоке [main] "," stacktrace ": [" org.elasticsearch. bootstrap .StartupException: java .lang.IllegalStateException: не удалось получить блокировки узлов, попытался [[/ usr / share /asticsearch / data]] с идентификатором блокировки [0], возможно, эти местоположения недоступны для записи или несколько узлов были запущены без увеличения [node.max_local_storage_nodes] (был [1])? "," в org.elasticsearch. bootstrap .Elasticsearch.init (Elasticsearch. java: 163) ~ [asticsearch-7.4.1.jar: 7.4.1] "," в org .elasticsearch. bootstrap .Elasticsearch.execute (Elasticsearch. java: 150) ~ [asticsearch-7.4.1.jar: 7.4.1] "," в org.elasticsearch.cli.EnvironmentAwareCommand.execute (EnvironmentAwareCommand. java: 86) ~ [asticsearch-7.4.1.jar: 7.4.1] "," в org.elasticsearch.cli.Command.mainWithoutErrorHandling (Command. java: 125) ~ [asticsearch-cl i-7.4.1.jar: 7.4.1] "," в org.elasticsearch.cli.Command.main (Command. java: 90) ~ [asticsearch-cli-7.4.1.jar: 7.4.1] "," ... еще 6 "," Вызвано: java .io.IOException: не удалось получить блокировку на / usr / share / эластичный поиск / данные / узлы / 0 "," в org.elasticsearch.env.NodeEnvironment $ NodeLock. (NodeEnvironment. java: 221) ~ [asticsearch-7.4.1.jar: 7.4.1] "," в org.elasticsearch.env.NodeEnvironment. (NodeEnvironment. java: 269) ~ [asticsearch -7.4.1.jar: 7.4.1] "," ... еще 6 "," Причина: java .nio.file.NoSuchFileException: / usr / share /asticsearch / data / node / 0 / node. Блокировка ) ~ [?:?] "," at sun.nio.fs.UnixException.rethrowAsIOException (UnixException. java: 116) ~ [?:?] "," ... еще 6 "," Подавлено: java .nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes/0/node.lock "," \ tat sun.nio.fs.UnixException.translateToIOException (UnixExce ption. java: 90) ~ [?:?] "," \ tat sun.nio.fs.UnixException.rethrowAsIOException (UnixException. java: 111) ~ [?:?] "," \ tat sun. nio.fs.UnixException.rethrowAsIOException (UnixException. java: 116) ~ [?:?] "," \ tat sun.nio.fs.UnixFileSystemProvider.newByteChannel (UnixFileSystemProvider. java: 219) ~ [?:? ] ",

Вот мой набор Openshift Stateful YAML

kind: StatefulSet
apiVersion: apps/v1
metadata:
  name: es-cluster
  namespace: mih-dev
  generation: 1
  labels:
    app: elasticsearch
spec:
  replicas: 3
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: elasticsearch
    spec:
      containers:
        - resources:
            limits:
              cpu: '1'
            requests:
              cpu: 100m
          terminationMessagePath: /dev/termination-log
          name: elasticsearch
          env:
            - name: cluster.name
              value: mih-dev
            - name: node.name
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: discovery.seed_hosts
              value: >-
                es-cluster-0.elasticsearch,es-cluster-1.elasticsearch,es-cluster-2.elasticsearch
            - name: cluster.initial_master_nodes
              value: elasticsearch
            - name: ES_JAVA_OPTS
              value: '-Xms512m -Xmx512m'
          ports:
            - name: rest
              containerPort: 9200
              protocol: TCP
            - name: inter-node
              containerPort: 9300
              protocol: TCP
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: data
              mountPath: /usr/share/elasticsearch/data
          terminationMessagePolicy: File
          image: 'docker.elastic.co/elasticsearch/elasticsearch:7.5.1'
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  volumeClaimTemplates:
    - metadata:
        name: data
        creationTimestamp: null
        labels:
          app: elasticsearch
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 5Gi
        storageClassName: gp2
      status:
        phase: Pending
  serviceName: elasticsearch
  podManagementPolicy: OrderedReady
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      partition: 0
  revisionHistoryLimit: 10
...