簡體   English   中英

Elasticsearch 無法在 AWS kubernetes 集群上啟動

[英]Elasticsearch fails to start on AWS kubernetes cluster

我在運行 kubernetes 1.10 的 AWS EKS 上運行我的 kubernetes 集群。 我正在按照本指南在我的集群elasticsearch 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"

我看到很多帖子都在談論增加價值,但我不知道該怎么做。 任何幫助,將不勝感激。

只想補充這個問題

如果您通過eksctl創建 EKS 集群,那么您可以附加到 NodeGroup 創建 yaml:

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

這將通過修復 docker daemon 配置來解決新創建的集群的問題。

更新文件 '/etc/docker/daemon.json' 中的 default-ulimit 參數

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

並重新啟動 docker 守護進程。

這是使用 EKS 設置 EFK 堆棧的唯一方法。 將此添加到nodeGroups:下的節點組創建 YAML 文件中。 然后創建您的節點組並在其上應用您的 ES pod。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM