elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch,elasticsearch,kubernetes,amazon-eks,elasticsearch,Kubernetes,Amazon Eks" /> elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch,elasticsearch,kubernetes,amazon-eks,elasticsearch,Kubernetes,Amazon Eks" />

elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch

elasticsearch 无法在AWS kubernetes群集上启动Elasticsearch,elasticsearch,kubernetes,amazon-eks,elasticsearch,Kubernetes,Amazon Eks,我在运行kubernetes 1.10的AWS EKS上运行kubernetes群集。 我遵循本指南在集群中部署elasticsearch 我第一次部署它时,一切正常。现在,当我重新部署时,它给出了以下错误 ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2018-08-2

我在运行kubernetes 1.10的AWS EKS上运行kubernetes群集。 我遵循本指南在集群中部署elasticsearch

我第一次部署它时,一切正常。现在,当我重新部署时,它给出了以下错误

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2018-08-24T18:07:28,448][INFO ][o.e.n.Node               ] [es-master-6987757898-5pzz9] stopping ...
[2018-08-24T18:07:28,534][INFO ][o.e.n.Node               ] [es-master-6987757898-5pzz9] stopped
[2018-08-24T18:07:28,534][INFO ][o.e.n.Node               ] [es-master-6987757898-5pzz9] closing ...
[2018-08-24T18:07:28,555][INFO ][o.e.n.Node               ] [es-master-6987757898-5pzz9] closed
这是我的部署文件

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: es-master
  labels:
    component: elasticsearch
    role: master
spec:
  replicas: 3
  template:
    metadata:
      labels:
        component: elasticsearch
        role: master
    spec:
      initContainers:
      - name: init-sysctl
        image: busybox:1.27.2
        command:
        - sysctl
        - -w
        - vm.max_map_count=262144
        securityContext:
          privileged: true
      containers:
      - name: es-master
        image: quay.io/pires/docker-elasticsearch-kubernetes:6.3.2
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CLUSTER_NAME
          value: myesdb
        - name: NUMBER_OF_MASTERS
          value: "2"
        - name: NODE_MASTER
          value: "true"
        - name: NODE_INGEST
          value: "false"
        - name: NODE_DATA
          value: "false"
        - name: HTTP_ENABLE
          value: "false"
        - name: ES_JAVA_OPTS
          value: -Xms512m -Xmx512m
        - name: NETWORK_HOST
          value: "0.0.0.0"
        - name: PROCESSORS
          valueFrom:
            resourceFieldRef:
              resource: limits.cpu
        resources:
          requests:
            cpu: 0.25
          limits:
            cpu: 1
        ports:
        - containerPort: 9300
          name: transport
        livenessProbe:
          tcpSocket:
            port: transport
          initialDelaySeconds: 20
          periodSeconds: 10
        volumeMounts:
        - name: storage
          mountPath: /data
      volumes:
          - emptyDir:
              medium: ""
            name: "storage"

我看到很多帖子都在谈论增加价值,但我不知道怎么做。任何帮助都将不胜感激

更新文件'/etc/docker/daemon.json'中的默认ulimit参数

  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Soft": 65536,
      "Hard": 65536
    }
  }

并重新启动docker守护进程。

更新文件'/etc/docker/daemon.json'中的默认ulimit参数

  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Soft": 65536,
      "Hard": 65536
    }
  }
然后重新启动docker守护进程。

只想附加到:

如果您在之前创建EKS群集,则可以将以下内容附加到节点组创建yaml:

 preBootstrapCommand:
      - "sed -i -e 's/1024:4096/65536:65536/g' /etc/sysconfig/docker"
      - "systemctl restart docker"
这将通过修复docker守护程序配置来解决新创建集群的问题。

只想附加到:

如果您在之前创建EKS群集,则可以将以下内容附加到节点组创建yaml:

 preBootstrapCommand:
      - "sed -i -e 's/1024:4096/65536:65536/g' /etc/sysconfig/docker"
      - "systemctl restart docker"

这将通过修复docker守护程序配置来解决新创建的集群的问题。

这是我使用EKS设置EFK堆栈唯一有效的方法。将其添加到
节点组:
下的节点组创建YAML文件中。然后创建节点组并在其上应用ES吊舱

preBootstrapCommands:
  - "sysctl -w  vm.max_map_count=262144"
  - "systemctl restart docker"

这是我使用EKS设置EFK堆栈唯一有效的方法。将其添加到
节点组:
下的节点组创建YAML文件中。然后创建节点组并在其上应用ES吊舱

preBootstrapCommands:
  - "sysctl -w  vm.max_map_count=262144"
  - "systemctl restart docker"

/etc/security/limits.conf
中的值是什么?根据docker,守护进程继承守护进程启动时定义的任何限制,因此如果该文件设置得太低,简单的答案可能是编辑
limits.conf
并重新启动
docker
我想我必须在运行时这样做,因为我在kubernetes集群中运行它,POD不是持久的。如何编辑上面的部署.yaml,以便在部署期间增加最大文件描述符?我想你忽略了我的问题问题:节点上的
limits.conf
中的值是什么(不是在容器中,而是在节点上)?该节点是docker守护程序所在的位置,因此它是由limits控制的节点。confIt是创建EKS工作节点的AWS AMI的一个问题。我必须在每个节点上执行sed-I-e's/1024:4096/65536:65536/g'/etc/sysconfig/docker,然后重新启动它以使其工作。
/etc/security/limits.conf
中的值是什么?根据docker,守护进程继承守护进程启动时定义的任何限制,因此如果该文件设置得太低,简单的答案可能是编辑
limits.conf
并重新启动
docker
我想我必须在运行时这样做,因为我在kubernetes集群中运行它,POD不是持久的。如何编辑上面的部署.yaml,以便在部署期间增加最大文件描述符?我想你忽略了我的问题问题:节点上的
limits.conf
中的值是什么(不是在容器中,而是在节点上)?该节点是docker守护程序所在的位置,因此它是由limits控制的节点。confIt是创建EKS工作节点的AWS AMI的一个问题。我必须在每个节点上执行sed-I-e's/1024:4096/65536:65536/g'/etc/sysconfig/docker,然后重新启动它以使其工作。